1.面向对象思想
- 现实世界 = 对象 + 对象之间相互作用
- 对象 = 属性 + 方法
- 对象的规范 = 属性定义 + 方法定义
类和对象:
- 对象是一个变量(具体的东西)
- 类是类型(是规范,是定义)
- 类规定了对象应该有的属性和方法
- 对象是类的具体实现 例如:土豆丝菜谱是类,一盘土豆丝是对象
面向对象语言特点:
- 识认性
- 类别性
- 多态性
- 继承性
2. Java类和对象
A obj = new A()
obj可以看作是内存中一个对象的句柄
在C/C++中,obj称为指针,在Java中称为Reference
对象赋值是reference赋值,而基本类型是直接值拷贝
类成员变量有初值,函数临时变量必须初始化
3. 构造函数
在对象产生时给成员变量赋值
public class A{
int id;
public A(int id2){
id = id2;
}
}
//A obj = new A(10)
constructor function:
- 名称必须和类名一样,且没有返回值
- Java只有构造函数,没有析构函数(构造函数是制造对象的过程,析构函数是清除对象的过程)
- 每个变量都是有生命周期的,只能存储在离它最近的一对{}中
- 变量创建时,变量将占据内存;变量消亡时,系统将回收内存
- Java具有内存自动回收机制(对象回收效率依赖于垃圾回收器GC)
- 每个Java类都必须有构造函数,如果没有显示定义构造函数,Java编译器将自动为该类产生一个空的无形参构造函数
- 每个子类的构造函数的第一句话都默认调用父类的无形参构造函数super(),除非子类的构造函数第一句话是super,且super语句放在第一条
- 一个类可以有多个构造函数,只要形参列表不同即可
4. 信息隐藏和this
面向对象法则:信息隐藏
- 类的成员属性,是私有的private
- 类的方法是公有public的,通过方法修改成员属性的值
this指针:
- 负责指向本类中的成员变量、成员方法,可以代替本类的构造函数