JAVA基础学习——面型对象进阶

1 static

 

2 继承

2.0 封装

2.1 什么是继承 extends 、继承的好处

2.2 什么时候用继承

2.3 继承后子类的特点

2.4 继承的特点

2.5 子类可以继承父类中的那些内容?(内存图)

2.5.1 非私有成员变量的使用内存图

2.5.2 私有成员变量的使用内存图

2.5.3 非私有成员方法的继承 内存图

2.6 继承中成员变量和成员方法的访问特点

2.6.1 继承中成员变量访问特点

2.6.2 继承中成员方法访问特点

2.6.2.1 重写方法

2.6.3 总结

2.7 构造方法的访问特点

2.8 this、super关键字

2.9 多态

2.9.1 多态中调用成员变量的特点

2.9.1 多态优势和弊端

 

3 包和final

3.1 包

3.2 final关键字

3.2.1 常量

3.2.2 final 总结

 

4 权限修饰符和代码块

4.1 权限修饰符

4.2 代码块

4.2.1 局部代码块

4.2.2 构造代码块

4.2.3 静态代码块

4.2.4 代码块 总结

 

5 抽象类和抽象方法

5.1 抽象类的作用

5.2 抽象类和抽象方法的格式

5.3 继承抽象类注意事项

5.4 总结 

 

6 接口

7 适配器设计模式

8 内部类

 9 程序打包


 

 

1 static

1.1 内存图

静态对象是随着类加载,非静态对象随着对象来的:

 引用类型初始化时null值。

 

1.2 static 静态变量、静态方法

 

1.3 总结

 

 ① 静态方法中没有this,非静态方法中有

静态的一般用于共享,不面向某一个对象,所以没有this;

而非静态的一般面向一个对象,所以有this。

 

② 静态方法只能访问静态

因为静态方法中没有this,所以静态方法不能调用非静态的东西。

 

③ 非静态方法可以访问所有

因为对象也可以访问共享的数据(也就是static修饰的数据),而非静态方法中有this。

 

1.4 main方法

 

 

 

 

2 继承

2.0 封装

2.1 什么是继承 extends 、继承的好处

2.2 什么时候用继承

2.3 继承后子类的特点

2.4 继承的特点

2.5 子类可以继承父类中的那些内容?(内存图)

2.5.1 非私有成员变量的使用内存图

2.5.2 私有成员变量的使用内存图

2.5.3 非私有成员方法的继承 内存图

2.6 继承中成员变量和成员方法的访问特点

2.6.1 继承中成员变量访问特点

2.6.2 继承中成员方法访问特点

2.6.2.1 重写方法

2.6.3 总结

2.7 构造方法的访问特点

2.8 this、super关键字

2.9 多态

2.9.1 多态中调用成员变量的特点

2.9.1 多态优势和弊端

 

 面向对象三大特征:封装、继承、多态

2.0 封装

2.1 什么是继承 extends 、继承的好处

 

 

 

 2.2 什么时候用继承

 

 2.3 继承后子类的特点

 

2.4 继承的特点

     

 

2.5 子类可以继承父类中的那些内容?(内存图)

非私有修饰的(构造方法、成员变量、成员方法)是否可以继承 & 私有修饰的(构造方法、成员变量、成员方法)是否可以继承

 

 

2.5.1 非私有成员变量的使用内存图

非私有修饰的成员变量可以被继承 & 直接被使用

 2.5.2 私有成员变量的使用内存图

私有修饰的成员变量可以被继承 & 不能被直接使用(用set、get方法去调用)

(红色标记的代码是报错代码)

 2.5.3 非私有成员方法的继承 内存图

虚方法表:

内存图:

 

2.6 继承中成员变量和成员方法的访问特点

2.6.1 继承中成员变量访问特点


2.6.2 继承中成员方法访问特点

 

2.6.2.1 重写方法

 

 

2.6.3 总结

 

2.7 构造方法的访问特点

 

2.8 this、super关键字

 

 

 

2.9 多态

多态 例:

多态 总结:

 

2.9.1 多态中调用成员变量的特点

 

1)调用成员变量,编译看左边,运行看左边 例子:打印动物而不是狗。

调用成员变量name时,运行中,看变量a是Animal类型数据,则先去看Animal类型中是否有变量name,若Animal中没有则看Animal的父类中是否有。

 

2)调用成员方法,编译看左边,运行看右边 例子:

调用成员方法show时,运行中,看虚方法表中是否存在该方法,注意子类的虚方法表中会覆盖父类的虚方法。

 

2.9.1 多态优势和弊端

1)多态优势

 

2)多态弊端

 

note:新特性

 

3)总结

 

 

 

 

 

3 包和final

3.1 包

3.2 final关键字

3.2.1 常量

3.2.2 final 总结

 

3 包和final

3.1 包

 

3.2 final关键字

 

3.2.1 常量

 final修饰的变量不可改变地址值,例子:

 知识点:string是不可变的,和final有关

 3.2.2 final 总结

 

 

 

 

 

4 权限修饰符和代码块

4.1 权限修饰符

4.2 代码块

4.2.1 局部代码块

4.2.2 构造代码块

4.2.3 静态代码块

4.2.4 代码块 总结

 

 

4 权限修饰符和代码块

4.1 权限修饰符

 

 

4.2 代码块

 4.2.1 局部代码块

以下 红色大括号 方式已淘汰:

局部代码块 例子:

 

 4.2.2 构造代码块

例子:

结合局部代码块 例子:(已淘汰,因为不够灵活。所有有了升级)

↓(升级)

 

4.2.3 静态代码块

 

4.2.4 代码块 总结

 

 

 

5 抽象类和抽象方法

5.1 抽象类的作用

5.2 抽象类和抽象方法的格式

5.3 继承抽象类注意事项

5.4 总结 

 

5 抽象类和抽象方法

 继承:

 

5.1 抽象类的作用

 

5.2 抽象类和抽象方法的格式

 

5.3 继承抽象类注意事项

 

 

5.4 总结

 

 

6 接口

 

 

7 适配器设计模式

 

 

8 内部类

 

静态内部类:

局部内部类: 

 匿名内部类:

 

 9 程序打包

 

 

posted @ 2023-09-21 21:36  1900_SD  阅读(3)  评论(0编辑  收藏  举报