1.包
IDEA配置自动导包:
2.权限修饰符
同一个类中的,【private、缺省、protected、public】都可以访问
同一个包中的其他类,【private】不可以访问,【缺省、protected、public】都可以访问
不同包下的无关类,【private、缺省、protected】都不可以访问,只有【public】可以访问
不同包下(继承)的子类,【private、缺省】不可以访问,【protected、public】都可以访问
3.final (final:代表已经绝育了!!!)
3.1 final修饰的类,不能被extends
3.2 final修饰的方法,方法不能被重写
3.3 final修饰变量,总规则:变量有且仅能被赋值一次
3.3.1 final修饰局部变量
final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。
3.3.2 final修饰静态成员变量
3.3.3 final修饰实例成员变量
以上创建多个实例,会导致所有的实例对象的name都叫“猪刚鬣”。
4.常量
4.1 常量概述和基本作用
在编译阶段会进行“宏替换”:把使用常量的地方全部替换成真实的字面量。
这样做的好处:让使用常量的程序的执行性能,像直接使用字面量一样。
4.2 常量做信息标志和分类
这里oop-app2目录下,为大家已经准备了一个代码,模拟控制“上”、“下”、“左”、“右”四个方向。
但是上述改成1、2、3、4是硬编码,可读性不好,代码质量不高,总之不是一种优雅的设计方式,所以可以用常量来做信息的标志和分类
5.枚举
常量做信息标志和分类:
虽然可以实现可读性,但是入参值不受约束,代码相对不够严谨。
枚举做信息标志和分类:
代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术!建议使用!
5.1 枚举的概述
我们这里先对原.java文件进行编译,然后对编译后的.class文件进行反编译,看下反编译后的文件内容:
5.2 枚举的使用场景演示
5.2.1 那么常量作为信息标志,存在什么问题呢?
5.2.2 枚举做信息标志和分类: 代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术!
不过,实际项目中,还是有很多公司的开发,会选择常量来作为信息标志和分类的。
(主要原因还是这样写比较简单吧,外加还可以额外增加一些bug修复的工作量,毕竟大家都是按工时发工资的,多一些工时,就多一些工资,外加加班多了,有考勤绩效奖励哈~)
6.抽象类
6.1 抽象类概述
- 1.类有的东西,抽象类都有。
- 2.抽象类中可以没有抽象方法,但是有抽象方法的类,必须是抽象类。
- 3.一个类继承了抽象类,必须重写抽象类的全部抽象方法,否则这个类必须定义成抽象类。(一个类实现了接口,必须重写全部接口的全部抽象方法,否则这个类也必须定义成抽象类。)
- 4.抽象类不能创建对象。(【最重要的特征】:得到了抽象方法,失去了创建对象的能力 (有得有失))
- 5.不能用abstract修饰变量、代码块、构造器。
- (抽象类,就像一个半成品的图纸,是一个不完整的设计图,为子类完成某些行为,而将这类行为定义成抽象方法,以供子类继承,并重写使用)
6.1.1 抽象的使用场景
6.1.2 注意事项:
- 抽象方法只有方法签名,不能声明方法体。
- 一个类中如果定义了抽象方法,这个类必须声明成抽象类,否则报错。
还有一种方式,利用快捷键:(直接写个run,一回车就可以了)
6.2 抽象类的案例
案例中,关于银卡的代码,自行补充哈
6.3 抽象类的特征、注意事项
一个类继承了抽象类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
抽象类,不能创建对象。
final和abstract是什么关系?
6.4 抽象类的应用知识:模板方法模式
【案例】理解模板方法:写作文案例
模板方法我们是建议使用final修饰的,这样会更专业,那么为什么呢?(加了final,可以防止被子类重写该方法)
7.接口
7.1 接口概述、特点
接口就是一种约定俗成的规范,约束对方只能按照一定的标准进行设计。
7.2 接口的基本使用:被实现
一个类实现了接口,必须重写全部接口的全部抽象方法,否则这个类也必须定义成抽象类。
7.3 接口与接口的关系:多继承
接口多继承的作用:规范合并,整合多个接口为同一个接口,便于子类实现。
上述继承接口如果太多了,就会写老长,很繁琐。
修改如下:
7.4 JDK8开始接口新增方法
第一种:默认方法(实例方法) (注意:接口的默认方法必须用default修饰,且需用接口的实现类的对象来调用。)
第二种:静态方法 (注意:接口的静态方法必须用本身的接口名来调用。)
第三种:私有方法(实例方法) (注意:接口的私有方法必须用private修饰,且只能在本类中被其他的默认方法或者私有方法访问。)
我们可以改下jdk的版本,看下
7.5 使用接口的注意事项
1、接口不能创建对象 (接口是更加彻底的抽象)
【接口无法直接创建对象,但是实现了接口的类可以创建对象,我们实现了某一个接口,就相当于创建了这个接口的一个子类,接口就是这个类的父类】
2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。
3、一个类继承了父类,同时又实现了接口,父类中和接口有同名方法,默认用父类的。(因为父类离他更近,从伦理学上,现有亲爸再有干爹)
(因为父类离他更近,从伦理学上,现有亲爸再有干爹,所以类都是先继承,再实现)
4、 一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法即可。
5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
8.总结:(总结.avi)
标签:常量,接口,抽象,抽象类,方法,final From: https://www.cnblogs.com/SuperLee017/p/18137441接口和抽象类都不能创建对象。