js css html

JavaSE进阶(面向对象,接口)

2023-07-27  本文已影响0人  扶光_

一,包

相同包下的类可以直接访问
不同包下的类必须先导入才能使用
如果不同包下相同的类名,只能导入一个包,另一个需要全名访问


二,(包)权限修饰符

用来控制一个成员能访问的范围
可以修饰成员变量,方法,构造器,内部类.
四种(由小到大)private>缺省>protected>public

修饰符 同一个类中 同一个包中其他类 不同包下的子类 不同包下无关类
private 可以 不可以 不可以 不可以
缺省 可以 可以 不可以 不可以
protected 可以 可以 可以 不可以
public 可以 可以 可以 可以

final(最终)

修饰类:最终类,不能被继承
修饰方法:最终方法,不能被重写
修饰变量:最终变量,不能再被赋值 ,相当于前端中的const

注意:
修饰的变量是基本类型,那么变量存储的数据值不变
修饰的变量是引用类型,那么变量存储的地址值不能改变,其内容是可以改变

四、常量

常量是使用public static final修饰的成员变量,必须有初始值,且执行过程中不能改变
用法,比如我们开发一个名为果仁app,那么在这个项目的上百个地方都需要用到这个名字,如果公司有一天要求改为果仁有限责任公司,那么改起来就会十分麻烦

命名规范,全部大写,每个单词之间用下划线连接

public static final String COMPANY_NAME = "果仁";

在编译阶段会进行宏替换,优化了性能
代码可读性好,软编码

五,抽象类

关键字 abstract
abstract修饰类就是抽象类,修饰方法就是抽象方法(不能写方法体代码)
一个类中定义了抽象方法,其类必须声明为抽象类


得到了抽象方法,失去了创建对象的能力

final(修饰类不能被继承)和abstract(肯定被继承)是什么关系,互斥关系

模板方法模式

当系统中出现同一个功能多处再开发,而该功能大部分代码都是一样的,只有部分可能不同。

模板方法实现步骤

例 我们学生分为高年级和低年级两类,他们都要早上和晚上做操,而其余时间可以自己安排
模板的公有方法用final修饰 ,避免被子类重写

六,接口

格式 public interface 接口名{常量(public static final String NAME=‘张三’),常量方法}
接口就是一种规范 ,比如充电器都是type-c口
规范都得是公开的所以public 和 abstract开头省略不写

接口如何被使用
接口是用来被类实现(implements)的,实现接口的类称为实现类,可以理解为子类
格式

修饰符 class 实现类 implements 接口1,接口2,接口3{}

一个类实现接口,必须重写完全部接口的抽象方法,否则这个类需要定义成抽象类
类和类的关系|:单继承(extends)
类和接口的关系:多实现
接口和接口的关系:多继承,一个借口可以同时继承多个接口
比如我们要实现多个接口,就需要将后面implements 接口1,接口2,接口3写很多,便于简便我们就可以将一个接口继承所有接口,并用子类去实现这个接口就ok


从jdk8开始,java对接口的成员方法进行了新增,便于以后新增功能的实现,可以在接口中写方法体

注意事项
1 接口不能创建对象
2 一个类实现多个接口,多个接口中有相同的静态方法不冲突,因为接口静态方法只能接口自己调用
3 一个类继承了父类同时又实现了接口,父类和接口中有同名方法默认用父类的
4 一个类实现多个接口,多个接口中存在同名的默认方法,不冲突重写这个方法即可
5 一个类继承了多个接口,是没有问题的,如果多个接口存在规范冲突则不能多继承

上一篇 下一篇

猜你喜欢

热点阅读