【JAVA学习笔记】
JAVA学习笔记
介绍
本人是JAVA小白,由于时间仓促就学习了B站课程黑马程序员2026版Al+Java零基础全套视频课程,(学习过程中有跳过的课程,所以记录的是关于面向对象的一部分内容),然后下面是主要的注意事项和语法规范。
面向对象
一、Final关键字
可以修饰变量,类,方法。
类似于C/C++的 const ,他在修饰基本数据类型(int,float…)这种的时候不可以改变其内容,但是在修饰引用数据类型(int[ ],Student,Teacher…)这种的时候不可改变的是stu记录的内存地址,而对象里面的属性值是可以发生改变的。

结果就发生改变了,就是lisi,23了
二、枚举 enum

1、枚举项在底层其实就是常量,默认用public static final修饰
2、static表示我可以用类名.点的形式来调用
3、枚举类的构造方法必须是private修饰,不让外界创建本类的对象
4、编译器会给枚举类新增两个默认存在的方法:values(),valueOf()
三、继承 extends

1、设计一个多层级的父子类关系可以根本的梳理类的属性。
2、Java只支持单继承,不支持多继承,但支持多层继承
单继承:一个子类只能继承一个父类
不能多继承:子类不能同时继承多个父类
多层继承:可以有直接父类和间接父类
JAVA中默认所有的类继承于Object
3、Super 就近原则,谁离我近,我就用谁

在重名的情况下(成员变量name),子类向上(父类)获取成员变量的时候最多获取到父类,不能获取到爷类的成员变量。
4、方法重写:在子类中,把父类的方法再写一遍,方法申明保持一致。
使用场景:如果父类的方法不能满足子类的要求了,子类中可以把该方法再重写一遍。
@override给虚拟机看的
重写方法的名称、形参列表必须与父类中的一致,方法体按照实际需求书写。
子类重写父类方法时,访问权限子类必须大于等于父类,返回值类型子类必须小于等于父类。
5、final修饰类为最终类,里面所有的方法不能被重写。
6、private私有方法、static静态方法、final最终方法不能被重写
7、父类中的构造方法不会被子类继承,只能通过super关键字调用

8、如果想要访问父类的带参构造,super(参数)必须手动写上,不能省略

9、在创建对象的时候,先执行父类的构造方法,再执行子类的构造方法
10、子类构造方法第一行,有一个默认的super,如果我们没有书写,JVM也会自动加上。
也就是说,子类空参构造继承父类的时候不加super()也没事,JVM默认是加上的。
11、this和super关键字

A、如果子类中有多个构造方法的时候,不能用this()循环调用,一定要预留一个调用父类的构造方法
B、如果构造方法当中写上了this(),就不能再写super(),JVM也不会自动添加super();
也就是说,空参构造中可以用this()来调用有参构造来进行类的初始化,但是此时有参构造里就只能用super()了(也可以不写任何this(…)和super(…),此时编译器会自动隐式添加无参的super(),作为构造方法的第一条语句,用于调用父类的空参构造。),不可以用this()来循环调用了,然后就是无论哪个构造方法里this()和super()都只能存在一个(更准确的说法是:this(…)和super(…)都必须作为构造方法的第一条语句,因此二者无法共存(一个方法的第一条语句只能有一个)。)。
12、子类继承父类的成员变量和方法,父类中有的get/set方法不需要子类再去重复写了。
13、子类对父类的继承和调用
14、权限修饰符

15、多态
多态的前提:
A:有继承/实现关系(必须)
B:有父类引用指向子类(必须)
C:对象有方法重写(可选)
Fu f = new Zi();
变量调用:
编译看左边,运行也看左边
方法调用:
编译看左边,运行看右边
16、instanceof关键字
判断左边的「对象实例」是否是右边的「类 / 接口」(或其子类、接口实现类)的实例,最终返回一个 boolean 类型的值(true 或 false)。
- 一般在一个类中使用了一个父类作为参数调用了之后,不能确定这个父类里面是哪一个子类,而且父类不可以调用子类的方法,所以这个时候可以用instanceof的if语句来判断是哪一个子类,然后用强制类型转换来将父类对象转换为子类对象来调用子类方法。

17、多态的好处
A、方法中,使用父类型作为参数,可以接收所有子类对象
B、根据传递不同的对象,调用子类不同的方法
18、抽象类和抽象方法abstract
- 注意事项



更多推荐


所有评论(0)