面向对象
面向对象
oop面向对象编程






\
构造器



总结
- 类与对象
类是一个模板:抽象,对象是一个具体的实例 - 方法
定义、调用! - 对应的引用
- 引用类型:基本类型(8)
- 对象是通过引用来操作的:栈-->堆
- 属性:字段Field 成员变量
- 默认初始化:
- 数字:0 0.0
- char: u0000
- boolean: false
- 引用:null
- 修饰符 属性类型 属性名 = 属性值!
- 对象的创建和使用
- 必须使用new 关键字创造对象,构造器 person fan = new person();
- 对象的 属性 fan.name
- 对象的方法 fan.sleep()
- 类
- 静态的属性 属性
- 动态的行为 方法
封装、继承、多态
- 封装

- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统可维护增加了
2.继承

public class Students extends Person{
}
public class Students {
Person person;
//public
//protected
//default
//private私有无法继承
ctrl + H打开编辑器
在java中,所有的类都默认直接继承或间接继承object类
调用父类的构造器,必须在子类构造器 的第一行
super
- super是调用父类的构造方法,必须在构造方法中的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
VS this:
代表的对象不同:
- this:本省调用这个对象
- super:代表父类对象的应用
前提
- this:没有继承也可以使用
- super:只能在继承条件才能使用
构造方法
- this();本类的构造
- super();父类的构造!
继承

- 重写是方法的重写,和属性无关
静态方法和非静态方法区别很大
- 静态方法:方法的调用只和左边,定义的数据类型有关
- 非静态:重写
重写:总结
-
需要有继承关系,子类重写父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大:public>Protected>Default>private
- 抛出的异常:范围可以被缩小,但不能扩大:ClassNotFoundEcception -->Exception(大)
重写,子类的方法和父类必要一致:方法体不同
- 为什么需要重写:
- 父类的功能,子类不一定需要,或者不一定满足!
- Alt+Insert : override;
多态


多态注意;
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系 类型转换异常! ClassCastExsception
- 存在条件 : 继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();
那些方法不能被重写
- static 方法,属于类,他不属于类;
- final 常量;
- private 方法;

类型之间的转化:父转子
高转低
Person obj = new student();
((Student)obj).go();

子类转化为父类(向下转型需要强制转换)
可能丢失自己本来的一些方法
方便方法的调用,减少重复的代码!简洁
static
-
static只执行一次
-
![image-20250922105728902]()
-
匿名代码块
![image-20250922105805861]()
输出一个随机数
Math.random()
或
加入import java.lang.Math;在调用random();
或(静态导入包)
import java.lang.Math.random;



浙公网安备 33010602011771号