Java初学笔记7

Java初学笔记7

1.java实现石头剪刀布

Java初学笔记7
Java初学笔记7

2.匿名对象

只在堆中建立对象空间,且只能使用一次,使用后被销毁。
new 类名( ) ;

3.IDEA自用快捷键与模板

Java初学笔记7

4.包

(1)本质:创建不同的文件夹,来保存类文件
(2)可区分相同名字的类,便于管理
(3)控制访问范围
(4)常用的包:
java.lang.* 默认引入 ; java.util.* 工具类的包
java.net.* 网络开发的包 ;java.awt.* java界面开发的包
(5)导入包时,需要什么类就导入什么类(建议)

包的命名规则与规范
Java初学笔记7

5.访问修饰符

Java初学笔记7

6.封装

(1)隐藏了内部细节,调用只需要传入参数
(2)

  1. 属性先私有化
  2. 提供一个公共的setXxx方法,用于对外来数据的判断,并且赋值给属性
  3. 提供一个公共的getXxx方法,用于获取属性的值
  4. 构造器与setXxx,getXxx相结合,将setXxx,getXxx方法写入构造器中,达到防护的效果(可在setXxx,getXxx方法中加入具体的业务逻辑)

7.继承

一、概述
(1)解决了代码冗余的问题,提高复用性
(2)class 子类 extends 父类{
}
(3)提高代码的扩展性与维护性
二、细节
(1)子类继承所有属性和方法,但是私有属性和方法不能直接访问,要通过公共方法访问
(2)子类创建对象时,必须先调用父类的构造器,完成对父类的初始化 。super(),默认调用父类的无参构造器,若父类没有无参构造器,则在子类中必须要用super去指定父类的构造器;super(…)语句要放在子类构造器中的第1行,且super只能在构造器中使用。this() , super() 都要放在构造器中且放在第1条语句中使用,所以二者不能共存。
(3)所有类为object类的子类
(4)子类只能继承一个父类

8.继承的本质

(1)在方法区依次加载 object类,爷类,父类,子类信息
(2)在堆中开辟空间,从爷类往下依次为爷类、父类中的属性分配空间(此时不存在重名,因为地址空间各自独立)
(3)将堆中对象的地址返回给栈中main()的对象。

注:子类若继承了父类中的私有属性,则堆中依旧有,只是访问不了

继承的示意图

Java初学笔记7

java继承的内存布局原理图

Java初学笔记7

继承练习题

Java初学笔记7
Java初学笔记7

9.super

(1)代表父类的引用,可访问父类的属性、方法、构造器
(2)私有部分子类无法访问
(3)访问父类构造器,该语句只能放在构造器中,且必须为第1条语句。访这样可以达到,各自分工,子类与父类各自用各自的构造器进行初始化。
(4)super的访问不受限于父类,也可访问爷类等等,但遵循就近原则

super从子类开始找方法、属性的顺序

Java初学笔记7

10.this与super的对比

Java初学笔记7

11.方法的重写

(1)子类的方法在方法名、参数上与父类必须一样,而在返回类型上要么与父类一样,要么返回的类型是父类返回类型的子类
(2)子类不能缩小父类的访问权限

12.方法的重写与重载

Java初学笔记7

部分图片来自B站韩顺平老师

上一篇:super和static


下一篇:SQL 多条件查询去掉影响效率的where 1=1