目标:成员变量的分类和访问语法研究
成员变量按照有无static修饰分为:静态成员变量,实例成员变量。
– 静态成员变量:有static修饰,属于类,与类一起加载,只有一份,直接用类名访问即可。
– 实例成员变量:无static修饰,属于类的每个对象的,与类的对象一起加载,对象有几个
实例成员变量就有几个,必须用类的对象来访问。
静态成员变量的访问格式:
– 类名.静态成员变量。
– 对象.静态成员变量。(不建议的)
实例成员变量的访问格式:
– 对象.实例成员变量。
小结:
静态成员变量只有一份,属于类,所以被类和类的全部对象共享访问。
注意:面试中如果发现有用对象访问静态成员变量,可以直接改成用类名访问再解答。
实例成员变量属于类的每个对象的,必须先创建对象,然后用对象访问。
public class Student {
// 实例成员变量 :无static修饰,属于类的每个对象的,必须用类的对象来访问。
private String name ;
private int age ;
// 静态成员变量:有static修饰,属于类,与类一起加载,只有一份,直接用类名访问即可。
public static String schoolName = "黑马";
public static void main(String[] args) {
// 1.静态成员变量: 类名.静态成员变量。
System.out.println(Student.schoolName);
// 注意:同一个类中访问静态成员变量可以省略类名不写
System.out.println(schoolName);
// 2.实例成员变量 :对象.实例成员变量。
// System.out.println(name); // 报错了
Student zzj = new Student();
zzj.name = "猪八戒";
System.out.println(zzj.name);
System.out.println(zzj.age);
// 3.静态成员变量:对象.静态成员变量。(不建议的)
System.out.println(zzj.schoolName);
}
}