面向对象
1.面向对象的三大特征有:封装性、继承性、多态性。
2.类: 包含两个部分:
成员变量(属性):将变量位置直接定义在类中,在方法外,即为成员变量。
成员方法(行为):将普通的方法去掉static关键字,即为成员方法。
3.根据类创建对象的格式:
类名称 对象名 = new 类名称();
4.使用它们的格式如下:
使用成员变量:对象名.成员变量名
调用成员方法:对象名.成员方法名(参数)
5.对象的名称其实就是一个局部变量,里面存放的是地址值。真正new出来的对象在堆内存当中,而且成员方法保存的是方法区中的地址。
6.区分局部变量与成员变量
- 定义的位置不同:
- 局部变量定义在方法内
- 成员变量定义在方法外,直接在类中
- 内存的位置不同:
- 局部变量是在栈内存中的
- 成员变量是在堆内存中的
- 生命周期不同:
- 局部变量随着方法进栈而出现,随着方法出栈而消失
- 成员变量随着对象被创建而出现,随着对象被回收而消失
- 默认值不同:
- 局部变量没有默认值,必须赋值之后才能使用
- 成员变量如果没有赋值,那么会有默认值
7.private关键字
如果类当中有一些成员不希望被外界直接访问,那么可以使用private关键字进行修饰,从而达到确保数据安全的目的。
private关键字是面向对象三大特征(封装、继承、多态)之一封装性的重要体现。
8.this关键字
如果成员变量和局部变量重名,那么方法中会根据就近原则优先使用局部变量。此时可以通过this关键字进行二者的区分:
this.成员变量名
9.构造方法
构造方法是指在类当中专门用于创建对象的方法,定义格式:
修饰符 构造方法名(参数类型 参数名称) {
方法体
// return; // 最后一行return通常省略
}
当通过new关键字创建对象的时候,实际上就是在调用构造方法。
注意事项:
- 构造方法根本不写返回值类型,连void都不写。
- 构造方法的名称和所在的类名称必须完全一样,连大小写都要一样
- 构造方法也是可以进行重载的。
- 构造方法如果没有自定义,那么将会默认赠送一个。如果自定义了至少一个,那么就不再赠送默认的。
10.如何定义一个标准的POJO类:
- 所有的成员变量都用private修饰
- 为每一个成员变量编写一对儿Getter Setter方法
- 编写一个无参数的构造方法
- 编写一个全参数的构造方法
11.布尔类型的Getter方法
setXxx规则不变,而getXxx需要写成isXxx的形式