概述: 个人学习日记,对于层次的模块不清晰,只是包含一些要点,并不包含所涉及的全部知识点。不推荐系统学习,推荐查缺补漏。
知识碎片
I D E A 常 用 快 捷 键 \color{pink}{IDEA常用快捷键} IDEA常用快捷键
概述:可以通过 File -> Setting -> Keymap -> 搜索,可指定快捷键【也就是说在IDEA所有快捷键都可自定义】
Ctrl + C 复制当前行到下一行
Ctrl + D 删除当前行
Ctrl + / 快速添加和取消注释
Ctrl + Alt + L 格式化代码【规范化】
Alt + R 快速运行程序【已经加载过的程序】
Alt + Enter 快速导包 【前提是已经在autopackage中勾选了功能】
Ctr + H 查看继承关系
Ctrl + B 快速定位方法定义的位置
- 快速生成构造方法和Get、Set方法
鼠标右键 -> Generate,Constructor,按需选择参数 【生成构造器】
鼠标右键 -> Generate,Getter and Setter, 按需选择参数【生成Get、Set方法】
- 灵活使用小技巧
(1) .var 快速生成变量名【一般用在创建对象时】
(2)鼠标右键 -> diagram -> show diagram 可以查看图
(3)利用Random类生成随机数,例如生成一个0、1、 2 的随机数
我们知道,random在默认情况下可以生成0-1的随机小数
Random random = new Random;
int number = random.nextInt(3);
通过nextInt完成了强制类型转换。
包 \color{pink}{包} 包
1.包的本质:创建文件夹保存各种类文件
2.包的作用:
(1)区分相同名字的类
(2)可以很好的管理类
(3)控制访问范围
3.包的命名规则:
只能由小写字母、数字、下划线、小圆点组成,不能以数字开头,而且不能出现关键字和保留字。
4.包的命名规范:
在大多数公司中都会采用类似下面的包的命名规范
com.公司名.项目名.业务模块名
5.包的访问权限只能为公有或默认。
lang 包会自动导入到源程序中。
可以通过小圆点来对包进行分级。
封 装 \color{pink}{封装} 封装
1.封装可以用来隐藏细节,可以对数据进行验证,保证安全合理
2.实现封装的步骤:
(1)将属性进行私有化
(2)提供一个公共的set方法,用于对属性判断并赋值
(3)提供一个公共的get方法,用于获取属性的值
3.在set方法中可以对输入的数据进行控制,在get方法中,可以设置获取数据的权限(这两种都属于业务逻辑)
如果想要保留业务逻辑,也可在构造方法中调用set方法。
继 承 \color{pink}{继承} 继承
(1)子类继承了父类所有的属性和方法,但是只有非私有的属性和方法能被子类直接访问
(2)要通过父类提供的公共方法去访问父类的私有属性或私有方法
(3)自类必须调用父类的构造器,完成父类的初始化
(4)创建子类对象时,无论使用子类的哪个构造器,默认情况下都会调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类中用super去指定父类使用哪个构造器来完成父类的初始化工作,否则编译器无法通过
(6)指定父类使用哪个构造器时,要显式的用super去调用
(7)super只能在构造器中使用,而且要在调用它的构造器的第一行
(8)super和this不能同时在一个构造器中使用【因为单独出现在构造器的时候,都要放在第一行】
(9)在JAVA中,所有的类都是Object的子类
(10)按照查找关系返回信息:现在子类中查找,子类没有去它父类中找,直道object类,如果找到了并且可以访问就返回,没找到就报错。
s u p e r \color{pink}{super} super
(1)super可以用来访问父类的属性和方法,除私有的
(2)可以访问父类的构造器
(3)调用父类构造器的好处: 父类属性由父类构造器初始化,子类的属性由子类初始化;当父类和子类中有重名的属性或方法时,要通过super才能访问到父类的这些属性和方法,默认访问的是子类的这些属性和方法。
(4)super访问遵从就近原则,当父类没有,就去它祖父中找
方 法 覆 盖 / 重 写 \color{pink}{方法覆盖/重写} 方法覆盖/重写
1.方法覆盖的形式:
主要应用在继承的时候,子类的方法在方法名称、返回类型、参数列表完全相同,这样就可以说子类覆盖了父类的方法。
2.方法重写的重点:
(1)子类的返回类型要和父类的返回类型一样,或者子类的返回类型是父类返回类型的子类
(2)子类方法不能缩小父类的访问权限