补充:
1、 OO:面向对象
OOA:面向对象分析
OOD:面向对象设计(需要经验)
OOAD:面向对象分析与设计
OOP:面向对象编程(刚开始)
2、高质量代码的要求:
复用性、扩展性、维护性、移植性、可读性、健壮性、效率
一、面向过程和面向对象:
1、面向过程:以方法为单位来解决问题,比较适合简单的业务(大象装冰箱、去银行取钱)
2、面向对象:以对象为单位来解决问题,比较适合复杂的业务
二、类和对象
类:类型/类别/模版/模子:代表一类个体
对象:现实生活中真实存在的单个个体。
软件中的对象:软件中真实存在的单个个体。
三、类和对象的创建
类的定义:
class类名{
类体(成员变量类型 变量名称)
... ...
修饰词 返回值类型 方法名称(【参数列表】){
方法体
}
}
类中可以包含:
1.对象的属性/特征/数据,设计为成员变量
2.对象的行为/动作/功能,设计为方法
四、创建对象
类定义完成后,可以使用new关键字创建对象。创建对象的过程通常称为实例化。
new运算的语法为:
new 类名()
例如:new Student()可以创建一个对象。
引用类型变量
为了能够对实例化的对象进行访问控制,需要使用一个特殊的的变量--引用。
Student(数据类型)zs(引用类型变量) =(指向)new(创建) Student()(对象);
访问对象的成员变量或调用方法
Student zs = new Student(); zs.name = "张三"; zs.age = 24; zs.className = "jsd2304"; zs.stuId = "001"; zs.study(); zs.sayHi(); zs.playWith("李四");
this关键字的作用:
this关键字只能用在方法中,方法中访问成员变量之前默认都有this.
this指代当前对象,那个对象调用方法,他指的就是那个对象
五、构造方法
作用:给成员变量赋初始值
语法:与类同名,没有返回值类型(连void都没有)
调用:在创建(new)对象时被自动调用;
特点:若自己不写构造方法,则编译器默认提供一个无参构造方法
若自己写了构造方法,则不在默认提供(构造方法可以重载)
规定:成员变量和局部变量是可以同名的,访问时默认采取的是就近原则
当成员变量与局部变量同名时,若想访问成员变量则this不能省略
内存管理:
由JVM来管理的
堆:new出来的对象(包括成员变量、数组的元素、方法的地址)
栈:局部变量(包括方法的参数)
方法区:.class字节码文件(包括所有的方法、静态变量)