Java初学笔记7
- 1.java实现石头剪刀布
- 2.匿名对象
- 3.IDEA自用快捷键与模板
- 4.包
- 5.访问修饰符
- 6.封装
- 7.继承
- 8.继承的本质
- 9.super
- 10.this与super的对比
- 11.方法的重写
- 12.方法的重写与重载
1.java实现石头剪刀布
2.匿名对象
只在堆中建立对象空间,且只能使用一次,使用后被销毁。
new 类名( ) ;
3.IDEA自用快捷键与模板
4.包
(1)本质:创建不同的文件夹,来保存类文件
(2)可区分相同名字的类,便于管理
(3)控制访问范围
(4)常用的包:
java.lang.* 默认引入 ; java.util.* 工具类的包
java.net.* 网络开发的包 ;java.awt.* java界面开发的包
(5)导入包时,需要什么类就导入什么类(建议)
包的命名规则与规范
5.访问修饰符
6.封装
(1)隐藏了内部细节,调用只需要传入参数
(2)
- 属性先私有化
- 提供一个公共的setXxx方法,用于对外来数据的判断,并且赋值给属性
- 提供一个公共的getXxx方法,用于获取属性的值
- 构造器与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继承的内存布局原理图
继承练习题
9.super
(1)代表父类的引用,可访问父类的属性、方法、构造器
(2)私有部分子类无法访问
(3)访问父类构造器,该语句只能放在构造器中,且必须为第1条语句。访这样可以达到,各自分工,子类与父类各自用各自的构造器进行初始化。
(4)super的访问不受限于父类,也可访问爷类等等,但遵循就近原则
super从子类开始找方法、属性的顺序
10.this与super的对比
11.方法的重写
(1)子类的方法在方法名、参数上与父类必须一样,而在返回类型上要么与父类一样,要么返回的类型是父类返回类型的子类
(2)子类不能缩小父类的访问权限
12.方法的重写与重载
部分图片来自B站韩顺平老师