访问控制权限
1.访问控制权限都有哪些?4个
- private:私有
- protected:受保护
- public:公开
- 默认
package se.control;
public class User {
//给一些属性
//私有的
private int id;
//受保护的
protected int age;
//公开的
public int weight;
//什么也没有,默认
String name;
}
package se.control;
public class Test01 {
public static void main(String[] args) {
User user = new User();
//private修饰的元素只能在本类中使用
//System.out.println(user.id);报错,id是private修饰的,访问不了
System.out.println(user.age);
System.out.println(user.weight);
System.out.println(user.name);
}
}
package se.control2;//换了个包
import se.control.*;
public class Test02 {
public static void main(String[] args) {
User user = new User();
//报错,protected在这里不行
//System.out.println(user.age);
System.out.println(user.weight);//可以,公开的,在哪都行
//报错,默认在这里也不行
//System.out.println(user.name);报错
}
}
package se.control3;//包又变化了
import se.control.User;
/*
User在se.control包下
Vip在se.control3包下
user和Vip不在同一个包下
但是Vip是User的子类
*/
public class Vip extends User {
//实例方法
public void shopping(){
//this表示当前对象
//protected可以
System.out.println(this.age);
//System.out.println(this.name);报错,默认不行
}
}
2.控制的范围
private:表示私有的,只能在本类中访问
public:表示公开的,在任何位置都可以访问
“默认”表示只能在本类以及同包下访问
protected表示只能在本类、同包、子类中访问
以上用一张表来概括如下:
| 访问控制修饰符 | 本类 | 同包 | 子类 | 任意位置 |
|---|---|---|---|---|
| public | 可以 | 可以 | 可以 | 可以 |
| protected | 可以 | 可以 | 可以 | 不行 |
| 默认 | 可以 | 可以 | 不行 | 不行 |
| private | 可以 | 不行 | 不行 | 不行 |
范围从大到小排序:public > protected > 默认 > private
3.访问控制权限修饰符可以修饰什么?
- 属性(4个都能用)
- 方法(4个都能用)
- 类(public和默认都能用,其他不行)
- 接口(public和默认都能用,其他不行)
- …

本文详细介绍了Java中的四种访问控制权限:private、protected、public及默认权限,并通过具体代码示例展示了这些权限在不同情况下的使用范围,包括同一类、同一包、子类以及任意位置的访问情况。
427

被折叠的 条评论
为什么被折叠?



