0.面向对象进阶
1.static静态关键字
1.1 static是什么,static修饰成员变量的用法
Java 成员变量 成员方法
Python 类(对象)属性 类(对象)方法
-
static修饰成员变量的应用:在线人数统计
1.2 static修饰成员变量的内存原理
1.3 static修饰成员方法的基本用法
1.4 static修饰成员方法的内存原理
(见视频 --03、static:修饰成员方法、内存机制.mp4)
类,会加载到方法区; (study)
静态方法,优先加载到方法区;(getMax()、main())
方法,会加载到栈内存里面跑
1.5 static的注意事项
2.static应用知识: 工具类
- 视频中后半部分这里,代码和上面的代码不连贯,貌似不是一期的
3.static应用知识:代码块
3.1 代码块的分类、作用
静态代码块,属于类,可以直接执行;
实例代码块,属于对象,创建对象后才会被对象调用执行。(实例代码块,用的比较少,不常见)
3.2 静态代码块的应用案例
4.static应用知识:单例
4.1 饿汉单例模式
饿汉单例设计模式:在用类获取对象的时候,对象已经提前为你创建好了。
4.2 懒汉单例模式
懒汉单例设计模式:在真正需要该对象的时候,才去创建一个对象(延迟加载对象)。
5.面向对象三大特征之二:继承
5.1 继承概述、使用继承的好处
5.2 继承的设计规范、内存运行原理
5.2.1 继承的设计规范
5.2.2 内存运行原理
5.3 继承的特点
就像你爸有一辆车,他可以开,也可以共享给你开。(但是,自始至终,父类的静态成员只有一份。所以是共享,并非继承。)
【补充】:Python是支持多继承的。在Python中,子类 可以拥有 多个父类,并且具有 所有父类 的 属性 和 方法
例如:孩子 会继承自己 父亲 和 母亲 的 特性
class 子类名(父类名1, 父类名2...)
pass
5.4 继承后:成员变量、成员方法的访问特点
5.5 继承后:方法重写
5.5.1 @Override重写注解
@Override重写注解 (重点)
子类重写父类方法,建议权限和父类保持一致。
子类不能重写父类的静态方法。(静态方法,属于父类本身,所以子类不谈覆盖、重写它)
5.6 继承后:子类构造器的特点
5.7 继承后:子类构造器访问父类有参构造器
添加 Getter and Setter方法:
添加 有参构造器:
添加 无参构造器:
在开发过程中,有时我们想节省代码,直接传参实现属性的设置,怎么做呢?
上述操作还是不行,那怎么实现呢?
5.8 this、super使用总结
提供 Getter and Setter方法:
提供 有参构造器:
还要提供 无参构造器:
this(…) 调用本类其他构造器 (this借用兄弟构造器)
this(…) 和 super(…) 都只能放在构造器的第一行,所以二者不能共存在同一个构造器中。
因为this借用的兄弟构造器第一行默认有super(),所以调的时候还是先调的父类的构造器
6.总结:(static、工具类、单例、继承.mp4)