一、权限修饰符
权限修饰符 | 同一个类中 | 同一个包中 子类、无关类 | 不同包的 子类 | 不同包的 无关类 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
注:√表示是否可以访问
二、状态修饰符
1、final
- final关键字是最终的意思,可以修饰成员方法、成员变量、类
- 被final修饰的方法不能被重写(最终方法)
- 被final修饰的变量不能被赋值(常量)
- 被final修饰的类不能被继承(最终类)
final修饰局部变量:
- 变量是基本类型,final修饰指的是基本类型的数据集不发生改变
final int age = 20;
age = 50;//该语句将报错
- 变量是引用类型,final修饰指的是引用类型的地址值不发生改变,但地址里的内容可以发生改变
final Student s = new Student();
s.age = 50;//该语句是允许的,地址值不能改变,但是内容可以改变
2、static
- 静态修饰符,可以修饰成员方法,成员变量
- 被类的所有对象共享
//university 被定义为 public static String university;
Student s1 = new Student();
s1.university = "CUST";
Student s2 = new Student();
上述示例中,s1.university 和 s2.university均为CUST;
- 可以通过类名调用
//university 被定义为 public static String university;
//类名是Student
Student.university = "CUST";
3、静态成员方法和非静态成员方法的访问特点
非静态成员方法的访问特点
- 可以访问静态的成员变量
- 可以访问非静态的成员变量
- 可以访问静态的成员方法
- 可以访问非静态的成员方法
静态成员方法的访问特点
- 可以访问静态的成员变量
- 可以访问静态的成员方法
即静态成员方法只能访问静态成员,非静态成员方法可以访问静态和非静态的成员。