目录
一、权限修饰符
- Java规定的4种权限(从小到大排列):private、缺省、protected、public
- 4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类
- 4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
- 修饰类只能使用:缺省、public
二、状态修饰符
(一)final(最终态)
final 关键字是最终的意思,可以修饰成员变量、成员方法、类。
1. final 修饰的特点
- 修饰变量:表明该变量是常量,不能再次被赋值
- 修饰方法:表明该方法是最终方法,不能被重写
- 修饰类:表明该类是最终类,不能被继承
2. final修饰局部变量
- 变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
- 变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
(二)static(静态)
static 关键字是静态的意思,可以修饰成员变量,成员方法。
static 可以用来修饰:属性、方法、代码块、内部类
1. static 修饰属性
public class StaticTest {
public static void main (String[] args){
Chinese c1 = new Chinese();
c1.name = "小明";
c1.age = 18;
Chinese c2 = new Chinese();
c2.name = "小龙";
c2.age = 17;
c1.nation = "CHN";
System.out.println(c2.nation); //输出CHN;
/*
或者
c1.nation = "CHN";
c2.nation = "CHINA";
System.out.println(c1.nation); //输出CHINA
*/
}
}
class Chinese{
String name;
int age;
static String nation;
使用 static 修饰属性:静态变量(类变量)
属性:按是否使用 static 修饰,又分为静态属性和非静态属性(实例变量)
实例变量:创建类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。
静态变量:创建类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是调用已经修改过了的。
- 静态变量随着类的加载而加载。可以通过 " 类.静态变量 " 的方式进行调用
- 静态变量的加载要早于对象的创建
- 类只会加载一次,所以静态变量在内存中也只会存在一份:存在方法区的静态域中
2. static 修饰方法
静态方法随着类的加载而加载,可以通过 " 类.静态方法 " 的方式进行调用
总结:
非静态的成员方法
- 能访问静态的成员变量
- 能访问非静态的成员变量
- 能访问静态的成员方法
- 能访问非静态的成员方法
静态的成员方法
- 能访问静态的成员变量
- 能访问静态的成员方法
静态成员方法只能访问静态成员
注意:在静态的方法内,不能使用this关键字、super关键字