访问控制权限由四种组成:public、protected、默认不写、private。
1.Test01和User类在一个包下:
public class User {
private int id;
protected int age;
public int weight;
String name;
}
public class Test01 {
public static void main(String[] args) {
User u = new User();
System.out.println(u.id);
System.out.println(u.age);
System.out.println(u.weight);
System.out.println(u.name);
}
}
此时的运行结果:
说明private修饰的变量只能在本类中进行调用。
2.Test01和User类不在一个包下:
package com.javase;
import com.javase02.User;
public class Test01 {
public static void main(String[] args) {
User u = new User();
System.out.println(u.age);
System.out.println(u.weight);
System.out.println(u.name);
}
}
package com.javase02;
public class User {
//private int id;
protected int age;
public int weight;
String name;
}
此时只有public可以引用。
3.protected修饰的变量,可以是不在一个包下,但必须是有着继承关系。
package com.javase02;
public class User {
protected int age = 17;
}
package com.javase03;
import com.javase02.User;
public class Vip extends User {
public void shopping(){
System.out.println(this.age);
}
}
package com.javase03;
public class Test {
public static void main(String[] args) {
Vip v = new Vip();
v.shopping();
}
}
此时protected修饰的age是可以访问的。
最后总结成一个表格:
访问的范围从大到小:public > protected > 默认 >private