Java面试准备五:Java中的访问修饰符、修饰符

时间:2022-10-03 21:06:08

这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢。

转自Java修饰符类型(public,protected,private,friendly)

  1. Java修饰符public,protected,private,friendly
  2. 类的访问修饰符、修饰符
  3. 变量的访问修饰符、修饰符
  4. 方法的访问修饰符、修饰符
  5. 接口的访问修饰符、修饰符

1. Java修饰符public,protected,private,friendly

Java面试准备五:Java中的访问修饰符、修饰符

图1

上图是针对类、类属变量及方法来说的。
对上图的一些补充说明:
protected:protected的类、类属变量及方法,包内的任何类及包外的那些继承了此类的子类才能访问。
friendly(默认):默认类型的类、类属变量及方法,包内的任何类都可以访问它,而包外的任何类都不能访问它(包括它的子类)。

2. 类的访问修饰符、修饰符
类:
访问修饰符 修饰符 class类名称 extends 父类名称 implements 接口名称
(访问修饰符与修饰符的位置可以互换)
Java面试准备五:Java中的访问修饰符、修饰符

Java面试准备五:Java中的访问修饰符、修饰符

3. 变量的访问修饰符、修饰符

  • Java中没有全局变量,只有方法变量、实例变量(类中的非静态变量)、类变量(类中的静态变量)。
  • 方法中的变量不能够有访问修饰符。所以下面访问修饰符表仅针对在类中定义的变量
  • 生命实例变量时,如果没有赋初值,将被初始化为null(引用类型)或者0或者false(原始类型)。
  • 可以通过实例变量初始化器来初始化比较复杂的实例变量,实例变量初始化器是一个用{}包含的语句块,在类的构造器被调用时运行,运行与父类构造器之后,构造器之前。
  • 类变量(静态变量)也可以通过类变量初始化器来进行初始化,类变量初始化器是是一个用static{}包含的语句块,只可能被初始化一次。

    变量的访问修饰符参考图一

Java面试准备五:Java中的访问修饰符、修饰符

4. 方法的访问修饰符、修饰符
访问修饰符 修饰符 返回类型 方法名称(参数列表) throws 违例列表

  • 类的构造器方法不能够有修饰符、返回类型和throws字句
  • 类的构造器方法被调用时,它首先调用父类的构造器方法,然后运行实例变量和静态变量的初始化器,然后才运行构造器本身。
  • 如果构造器方法没有显示的调用一个父类的构造器,那么编译器会自动为它加上一个默认的super(),而如果父类又没有默认的无参构造器,编译器就会报错。super必须是构造器方法的第一个字句。
  • 注意理解private构造器方法的使用技巧。

    方法的访问修饰符可以参考图一

Java面试准备五:Java中的访问修饰符、修饰符

5. 接口的访问修饰符、修饰符
接口
访问修饰符 interface 接口名称 extends 接口列表

  • 接口不能够定义其声明的方法的任何实现
  • 接口中的变量总是需要定义为“public static final 接口名称”,但可以不包含这些修饰符,编译器默认就是这样,显示的包含修饰符主要是为了程序清晰。

    Java面试准备五:Java中的访问修饰符、修饰符