面向对象
1.面向过程和面向对象的对比
⑴面向过程:当需要实现一个功能的时候,每一个过程中的细节步骤和细节都需要亲力亲为
⑵面向对象:当需要实现一个功能的时候,不关心详细的步骤细节,而是找人帮我做事
2.类和对象的关系
⑴类是抽象的,通常不能直接使用,就好比是一张手机设计图
⑵对象是具体的,根据类创建一个对象使用,就好比是根据图纸创造一个手机
3.如何定义一个类: 成员变量 成员方法
⑴成员变量:直接定义在类当中,在方法外面
⑵成员方法:去掉static关键字,其他和此前的普通方法一样
4.如何根据类创建对象
格式: 类名称 对象名 = new 类名称( );
5.如何使用对象
⑴使用成员变量: 对象名 . 成员变量;
⑵使用成员方法: 对象名 . 成员方法(参数);
6.内存对象示意图
⑴一个内存对象:
⑵多个内存对象:
⑶同一个内存对象
7.局部变量和成员变量的区别
⑴定义的位置不同: 局部变量定义在方法内部 成员变量定义在类当中
⑵内存中的位置不同: 局部变量在栈(Stack)内存当中 成员变量在堆(Heap)内存当中
⑶生命周期不同: 局部变量随着方法的进栈而出现,随着方法的出栈而消失
成员变量随着对象被创建而存在,随着对象被JVM回收而消失
⑷默认的值不同: 局部变量没有默认值,必须赋值后才能使用
成员变量如果没有赋值,那么将会有一个默认值
8.private关键字的用法:
直接写在成员变量的前面,类外面不能直接访问,确保安全性。需要"间接访问"
间接访问:编写一堆 Getter Setter 方法 (特例:不过是boolean类型,getXxx必须写成isXxx)
9.this关键字的用法:
用来区分同名的成员变量和局部变量,在成员变量前面写上"this"前缀即可
格式: this . 成员变量
10.构造方法(constructor):
构造方法就是专门用来创建对象的方法。通过new关键字创建对象时,其实就是调用构造方法
定义构造方法 格式:
public 构造方法名 (参数类型 参数名称){
方法体
}
⑴构造方法不能写返回值类型,连void都不能写
⑵构造方法名必须和类名称完全一样,大小写也要一样
⑶构造方法也可以重载
⑷构造方法如果没有定义,默认送一个;如果定义了至少一个,那么默认的不再赠送
11.如何定义一个标准的POJO类(Plain Old Java Object)
⑴所有的成员变量都用private修饰
⑵为每一个成员变量编写一对 Getter Setter方法
⑶编写一个无参数的构造方法
⑷辨析一个全参数的构造方法