Java学习阶段性总结(下)

27 阅读5分钟

怎么调用父类构造方法的?

子类构造方法的第一行语句默认都是:super(),不写也存在,且必须在第一行。

如果想调用父类有参构造,必须手写super进行调用。

继承中构造方法的访问特点是什么?

1.子类不能继承父类的构造方法,但是可以通过super调用。

2.子类构造方法的第一行,有一个默认的super();

3.默认先访问父类中无参的构造方法,再执行自己。

4.如果想要方法文父类有参构造,必须手写书写。

this,super使用总结

this

理解为一个变量,表示当前方法调用者的地址值。

super

代表父类存储空间

微信图片_20260125143440_634_1.jpg

多态

什么是多态

对象的多种形态。

多态的前提

1.有继承/实现关系

2.有父类引用指向子类对象

3.有方法的重写

多态的好处

1.使用父类型作为参数,可以接受所有子类对象,体现多态的扩展性与便利。

2.体现多态的扩展性与便利。

多态调用成员的特点

变量调用:编译看左边,运行也看左边。

方法调用:编译看左边,运行看右边。

多态的优势

在多态形式下,右边对象可以实现解耦合,便于扩展和维护。

微信图片_20260125152028_635_1.jpg 定义方法的时候,使用父类型作为参数,可以接受所有子类对象,体现多态的扩展性与便利。

插入一个总结

1.多态的优势

方法中,使用父类型作为参数,可以接收所有子类对象。

多态的弊端是什么?

不能使用子类的特有功能

引用数据类型的类型转换,有几种方式?

自动类型转换。强制类型转换。

微信图片_20260125153007_636_1.jpg

强制类型转换能解决什么问题?

可以转换成真正的子类类型,从而调用子类独有功能。

转换类型与真是对象的类型不一致会报错。

转换的时候用instanceof关键字进行判断

什么是包?

包就是文件夹。用来管理各种不同功能的Java类,方便后期代码维护。

包名的规则

公司域名反写+包的作用,需要全部英文小写,见名知意。例如:com.itheima.domain

微信图片_20260125153711_637_1.jpg

使用其他类的规则

微信图片_20260125153822_638_1.jpg

微信图片_20260125154054_639_1.jpg

使用其他类的规则

1.使用同一个包中的类时,不需要导包。 2.使用java.lang包中的类时,不需要导包。 3.其他情况都需要导包 4.如果同时需要两个包中的同名类,需要用全类名。

包的总结(插入)

1.包的作用?

包就是文件夹,用来管理各位不同功能的Java类

2.包名书写的规则?

公司域名反写+包的作用,需要全部英文小写,见名知意

3.什么是全类名?

包名+类名

4.什么时候需要导包?什么时候不需要导包?

使用同一个包中的类时,不需要导包。

使用Java.lang包中的类时,不需要导包。

其他情况都需要导包。

如果同时使用两个包中的同类名,需要使用全类名。

final

final修饰方法;

表示该方法是最终方法,不能被重写。

final修饰类:

表明该类是最终类,不能被继承

final修饰变量

叫做常量,只能被赋值一次。

权限修饰符

权限修饰符:是用来控制一个成员变量能够被访问的范围的。

可以修饰成员变量,方法,构造方法,内部类。

微信图片_20260125160913_640_1.jpg

权限修饰符分类

微信图片_20260125161155_641_1.jpg

权限修饰符的使用规则

实际开发中,一般只用private和public

成员变量私有

方法公开

特例:如果方法中的代码是抽取其他方法中共性的代码,这个方法一般也私有。

代码块

局部代码块 构造代码块 静态代码块

局部代码块

微信图片_20260125161652_642_1.jpg

构造代码块

微信图片_20260125162942_643_1.jpg

静态代码块(重点)

格式:static{}

特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。

使用场景:在类加载的时候,做一些数据初始化的时候使用。

封装

对象代表什么,就得封装对应的数据,并提供数据对应的行为。

抽象方法

将共性的行为抽取到父类之后, 由于每一个子类执行的内容是不一样的, 所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。

抽象类

如果一个类中存在抽象方法,那么该类就必须声明为抽象类

抽象类和抽象方法的定义格式:

抽象方法的定义格式: public abstract 返回值类型 方法名(参数列表); 抽象类的定义格式: public abstract class 类名{}

抽象类和抽象方法的注意事项

抽象类不能实例化

抽象类中不一定有抽象方法,由抽象方法的类一定就是抽象类

可以有构造方法

抽象类的子类 要么重写抽象类中所有抽象方法 要么是抽象类

总结

1.抽象类的作用是什么样的?抽取共性时,无法确定方法体,就把方法定义为抽象的。强制让子类按照某种格式重写。抽象方法所在的类,必须是抽象类。

2.抽象类和抽象方法的格式?public abstract返回值类型方法名(参数列表);public abstract class 类名{}

3.继承抽象类有哪些要注意?要么重写抽象类中的所有抽象方法要么是抽象类