java的四个访问权限修饰符的作用范围

本文深入探讨了信息技术领域的最新趋势,涵盖了从前端到后端,从移动开发到游戏开发等多个方面,提供了丰富的技术细节和实用案例,是了解当前IT行业不可或缺的资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

转载于:https://www.cnblogs.com/LLD-3/p/9692502.html

### Java 四个访问修饰符详解 Java 中的四个访问修饰符(`public`、`private`、`protected` 和 `default`)用于控制类、方法、构造函数和变量的访问权限。以下是每个修饰符的详细解释及其用法。 #### 1. `public` `public` 是 Java 中访问限制最宽的修饰符,被其修饰的类、属性或方法可以被任何其他类访问,无论这些类是否在同一包中[^1]。 - **适用范围**:跨包访问。 - **示例代码**: ```java public class PublicExample { public String message = "This is a public variable."; public void display() { System.out.println("This is a public method."); } } ``` #### 2. `private` `private` 是 Java 中对访问权限限制最窄的修饰符,被其修饰的类、属性或方法只能在声明它的类内部访问。子类无法访问 `private` 成员,即使它们在同一个包中也不行。 - **适用范围**:仅限于本类内部。 - **示例代码**: ```java public class PrivateExample { private String secret = "This is a private variable."; public void showSecret() { System.out.println("Private variable: " + secret); } } ``` #### 3. `protected` `protected` 介于 `public` 和 `private` 之间,被其修饰的类、属性或方法可以被以下三类访问[^1]: - 同一包中的其他类; - 不同包中的子类; - 该类自身。 即使子类位于不同的包中,仍然可以访问 `protected` 成员。 - **适用范围**:同一包内或不同包中的子类。 - **示例代码**: ```java public class ProtectedExample { protected String info = "This is a protected variable."; } class SubClass extends ProtectedExample { public void displayInfo() { System.out.println("Protected variable: " + info); } } ``` #### 4. `default`(无修饰符) 如果一个类、方法或变量没有显式地使用 `public`、`private` 或 `protected` 修饰符,则它具有默认访问权限,也称为包级访问权限[^3]。这种情况下,只有同一包中的类可以访问该成员。 - **适用范围**:仅限于同一包内的类。 - **示例代码**: ```java class DefaultExample { String data = "This is a default access variable."; void printData() { System.out.println("Default access method."); } } ``` ### 总结表 | 访问修饰符 | 同一类 | 同一包内其他类 | 子类(不同包) | 不同包非子类 | |------------|---------|-----------------|----------------|---------------| | `public` | ✔️ | ✔️ | ✔️ | ✔️ | | `protected`| ✔️ | ✔️ | ✔️ | ❌ | | `default` | ✔️ | ✔️ | ❌ | ❌ | | `private` | ✔️ | ❌ | ❌ | ❌ |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值