一、面向对象程序设计的概念
定义:使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。
提示:类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)
二、类
- 类的内容:包含属性(用来描述对象的数据元素称为对象的属性名)和方法(对对象的属性进行的操作称为对象的方法)例:public class Student{
private int age ;——>属性
public void setAge(int _age) {——>方法
age = _age;
}
} - 类的构造器(构造方法)
- 定义:构造方法名称必须和类名称一致,一个类可以有多个构建器,但这些构造方法的参数列表必须不同
例:public class Dog {——>类名Dog
private int weight;
public Dog(int w) {——>构造方法
weight = w;
}
}
三、对象
- 概念:对象是类的实例,具有自己的动态特征(对象所表现的行为或功能即其所拥有的方法)和静态特征(某种数据的描述即其所拥有的变量)
- 对象的生命周期:创建阶段、应用阶段、不可视阶段、不可到达阶段、可收集阶段、终结阶段与释放阶段(销毁)
- 创建对象的方式:a. new语句创建创建对象b.利用反射机制,调用java.lang.Class的forName(对象的类)(得到java.lang.Class对象的实例)和java.lang.reflect.Constructor的newInstance()方法(得到该类的对象的实例)c.调用对象的clone()方法(clone()方法没有调用构造函数,创建一个复制的对象,属性与原对象完全相同,保存在不同的内存地址中) d.运用反序列化方法,调用java.io.ObjectInputStream类的readObject()方法 注意:a、b方法创建对象时会调用其构造方法,而c则不会
- 可收集阶段、终结阶段与释放阶段:对象执行完finazlie()方法后,垃圾回收器对该对象的所占用的内存空间进行回收或者再分配了,则该对象彻底消失了
3.信息的隐藏:指的是对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问
使用者对类内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。
隐藏前 :class Student{
public int age;
}
public int age;
}
public class StudentTest{
public static void main(String args[]){
Student s = new Student();
//合“法”但不合理的设置
s.age = 1000;//
}
}
隐藏后
:Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作
class Student{
public void setAge(int age){
public class StudentTest{
public static void main(String args[]){
Student s = new Student();
防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;