obj作业2-修饰符访问权限

obj作业2-修饰符访问权限
在这里插入图片描述

Java中有四种访问权限修饰符,分别为public、protected、default(默认,无关键字)和private,它们决定了类、接口、方法和变量在不同范围内的可见性,且不同修饰符修饰的内容有所不同,具体如下: - **public**:可修饰类、接口、方法和变量。被public修饰的成员可以被任何类访问,无论这些类是否在同一个包中,是访问权限最宽泛的修饰符- **protected**:不能用来修饰外部类,只能用来修饰内部类、方法和变量。被protected所修饰的成员会被位于同一package中的所有类访问到,同时,该类的所有子类(包括同一个package或者不同的package中的子类)都能继承并访问这些成员。在不同包且非子类的情况下,无法直接访问被protected修饰的资源 [^2][^3]。 - **default(默认)**:可修饰类、接口、方法和变量。使用默认修饰符时,成员只能被同一个包中的类访问。 - **private**:可修饰方法和变量。被private修饰的成员只能在定义它们的类内部被访问,其他类无法直接访问,是访问权限最严格的修饰符 [^1]。 访问控制在设计时也有一些建议,例如最小化访问范围,尽可能减少成员的可访问性,以遵循信息隐藏原则,提高代码的安全性和可维护性;谨慎使用public,仅在需要被广泛访问的情况下使用,否则优先使用protected或default;使用private修饰符封装类的内部数据,并提供公共方法来控制对这些数据的访问;合理设计包结构,以便使用default访问控制来共享包内成员,同时隐藏实现细节 [^4]。 ### 代码示例 ```java // 定义一个公共类 public class PublicClass { public int publicVar; // 公共变量 protected int protectedVar; // 受保护变量 int defaultVar; // 默认访问权限变量 private int privateVar; // 私有变量 // 公共方法 public void publicMethod() { System.out.println("This is a public method."); } // 受保护方法 protected void protectedMethod() { System.out.println("This is a protected method."); } // 默认访问权限方法 void defaultMethod() { System.out.println("This is a default method."); } // 私有方法 private void privateMethod() { System.out.println("This is a private method."); } } // 同一个包中的类 class SamePackageClass { public static void main(String[] args) { PublicClass obj = new PublicClass(); obj.publicVar = 1; obj.protectedVar = 2; obj.defaultVar = 3; // obj.privateVar = 4; // 报错,无法访问私有变量 obj.publicMethod(); obj.protectedMethod(); obj.defaultMethod(); // obj.privateMethod(); // 报错,无法访问私有方法 } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值