java 访问修饰符

对于类成员(字段和方法)的访问权限来说,
[b]public[/b]:所有类都可访问。
[b]protected[/b]:继承访问权限。基类通过protected把访问权限赋予派生类而不是所有类,
另外,protected也提供包访问权限,也就是说,相同包内的其他类可以访问protected元素。
[b]默认[/b]为包访问权限,即包内的类对其有访问权限。
[b]private[/b]:除了包含这个成员的类外,其他任何类都无法访问这个成员。


对于类访问权限来说,
仅有两个选择:包访问权限或public。
类既不可以是private的,也不可以是protected的,但[b]内部类[/b]是个特例,一个内部类可以是private或protected的。
### Java 访问修饰符详解 #### 私有访问修饰符 `private` `private` 是最严格的访问级别。被声明为 private 的成员(方法或变量)只能在其所属的类内部访问[^4]。 ```java class Example { private int data; public void setData(int d) { this.data = d; } private void processData() { } } ``` #### 默认访问修饰符 (包级私有) 当未指定任何访问修饰符时,默认情况下,该成员可以在同一个包内的所有类中访问。 ```java // 文件位于 com.example 包下 package com.example; class DefaultExample { String message; // 默认访问级别 } class AnotherClassInSamePackage { void useDefaultExample() { DefaultExample ex = new DefaultExample(); ex.message = "Hello"; // 可以直接访问message属性 } } ``` #### 受保护访问修饰符 `protected` 带有 `protected` 关键字的方法或字段不仅能在同一包内访问,在不同包下的子类也可以继承并使用这些受保护的成员。 ```java package parent.package.name; public class Parent { protected String info = "Parent Info"; protected void showInfo() { System.out.println(info); } } package child.package.name; import parent.package.name.Parent; public class Child extends Parent { @Override protected void showInfo() { super.showInfo(); // 子类可以调用父类中的protected方法 } } ``` #### 公共访问修饰符 `public` 这是最为宽松的一种访问控制方式。只要程序能够触及到定义了此成员的地方就可以对其进行操作。 ```java public class PublicExample { public static final double PI = 3.1415926; public void displayPiValue() { System.out.printf("The value of Pi is %.7f%n", PI); } } ``` Java 提供这四个级别的访问控制主要是为了实现封装这一面向对象编程的核心原则之一——隐藏不必要的细节而只暴露必要的接口给外部使用者。合理运用不同的访问修饰符可以帮助开发者更好地管理代码结构,提高软件的安全性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值