包、常量、final、常量、枚举、抽象类、接口、枚举权限修饰符(doy4)

  • 相同包下的类可以直接访问,不同包下的类必须导包,才可以使用!导包格式:import 包名.类名;

  • 假如一个类中需要用到不同类,而这个两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。

权限修饰符

有四种作用由小到大(private -> 缺省 -> protected -> public)

修饰符

同一 个类中

同一个包中其他类

不同包下的子类

不同包下的无关类

private

缺省

protected

public

final

final的作用

  • final关键字是最终的意思,可以修饰(类、方法、变量)。

  • 修饰类:表明该类是最终类,不能被继承。(可以用于工具类)

  • 修饰方法:表明该方法是最终方法,不能被重写。

  • 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。

final修饰变量的注意

  • final修饰的变量是基本类型:那么变量存储的数据值不能发生改变final修饰的变量是引用类型:那么变。

  • 量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。

常量

  • 常量是使用了public static final修饰的成员变量,必须有初始化值,而且执行的过程中其值不能被改变。

  • 常量的作用和好处:可以用于做系统的配置信息,方便程序的维护,同时也能提高可读性。

枚举

public enum Orien{
    UP,DOWN; //定义了两个枚举值,可以通过Orien.枚举值 调用
}

枚举的代码相对于常量可读性好更好,入参严谨,是最好的信息分类技术。

抽象类

//抽象类
public abstract class Animal{
	private abstract void ren(); // 抽象方法,不能写方法代码。
}
  • 在Java中abstract是抽象的意思,可以修饰类、成员方法。

  • abstract修饰类,这个类就是抽象类;修饰方法,这个方法就是抽象方法。

注意事项

  • 抽象方法只有方法签名,不能声明方法体。

  • 个类中如果定义了抽象方法,这个类必须声明成抽象类,否则报错。

  • 类有的成员(成员变量、方法、构造器)抽象类都具备。

  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类个类。

  • 一个继承了抽象类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。

  • 最重要的特征:得到了抽象方法,失去了创建对象的能力(有得有失)

  • final和abstract是互斥关系

使用场景

  • 抽象类可以理解成不完整的设计图,一般作为父类,让子类来继承。

接口

接口是一种规范(约束),规范一定是公开的(public abstract等可以省略不写)。

实现接口:implements 接口名1,接口名2(可以理解为可以有多个爸的子类)

基本小结

  • 类和类的关系:单继承。

  • 类和接口的关系:多实现。

  • 接口和接口的关系: 多继承,一个接口可以同时继承多个接口。(整合多个接口为一个接口,便于子类调用)

jdk8开始后新增了那些方法?

默认方法:default修饰,实现类对象调用

静态方法:static修饰,必须用当前接口名调用

私有方法:private修饰,jdk9开始才有的,只能在接口内部被调用

猜你喜欢

转载自blog.csdn.net/m0_74608954/article/details/128968345
今日推荐