面向对象的总结
面向对象的三条主线:
- 类及类的成分 1)Java 程序是关注与类的设计。类从代码的角度:并列关系! 从执行、设计的角度:关联关系、继承关系、聚合关系
lass A{
} lass B{ A a = new A(); }
2)类的成分:属性 方法 构造器 代码块 内部类 2.1)属性:①变量的分类:成员变量(属性field) VS 局部变量(方法的形参、方法内部、代码块内部)
基本数据类型(8 种,不同的数据类型对应不同的默认初始化值) VS 引用数据类型(数组、类、接口默认初始化值为null)
②属性的声明格式:修饰符 数据类型 变量名 = 初始化值;//Java是强数据类型的语言
③对属性的赋值的操作:❶默认初始化;❷显式的初始化;❸代码块的初始化;❹构造器的初始化;❺调用方法、属性进行赋值
2.2)方法 ①格式:修饰符 (其他关键字:static/final/abstract) 返回值类型 方法名(形参列表) {//方法体}
②方法的重载(overload) VS 方法的重写(override overwrite)
2.3)构造器 ①构造器的作用: ❶创建类的对象;❷初始化对象的成员变量
②构造器也是可以重载的
2.4)代码块 主要作用:用来初始化类的成员变量
分类:静态的代码块 VS 非静态的代码块
2.5)内部类 ①分类:成员内部类(static 的成员 VS 非static的成员) VS 局部内部类(方法内部声明的类)②如何区分调用外部类、内部类的变量(尤其是变量重名时) ③局部内部类的使用
3)类的初始化(创建类的对象) 3.1)如何创建类的对象。如:Person p = new Person(); Date d = new Date(); 3.2)内存解析: ①栈:局部变量、对象的引用名、数组的引用名 堆:new 出来的东西 方法区:(字符串常量池) 静态域:存放类中静态的变量 ②如何理解创建的对象在内存中加载的过程(理解) 3.3)子类对象实例化的过程:SubClass sc = new SubClass();
-
面对对象的三大特性: 2.1)封装性: ①通过私有化类的成员变量,通过公共的getter和setter方法来调用和修改 ②还可以对类的其他结构进行“封装” ③ 权限修饰符:public protected 缺省 private
2.2)继承性: 通过让一个类 A 继承另一个类 B,就可以获取类 B 中的结构(主要的:属性、方法、构造器)。子类:类A 父类: 类B
Java中的类的继承性:单继承的。
2.3)多态性: ①体现:方法的重载与重写;子类对象的多态性 Person p = new Student(); ②子类对象多态性的使用:虚拟方法的调用。 ③向上转型 向下转型 Student s = (Student)p; //建议在向下转型之前:if(p instanceof Student) 避免出现 ClassCastException 的异常
- 其他关键字:
3.1)this:修饰属性、方法、构造器。表示对象或当前正在创建的对象
3.2)super:修饰属性、方法、构造器。显式调用父类的相应的结构,尤其是子父类有重名的方法、属性
3.3)static:修饰属性、方法、代码块。随着类的加载而加载!
3.4)final:修饰类、属性、方法。表示 最终的。
3.5)abstract:修饰类、方法。
3.6)interface:表示是一个接口,(接口是与类并列的一个结构)。类与接口之间同时“implements” 发生关系。
3.7)import package 。。。。。
abstract 不能修饰属性、构造器、不能与 final static private 共用。
- Bank 项目。
韧桂 2020-01-01