Java的访问修饰符

Java访问权限详解

参考
https://blog.youkuaiyun.com/u010876691/article/details/72724415
https://blog.youkuaiyun.com/leilu2008/article/details/6719591

Java中提供了四个关键字在类的内部设置边界,控制类的访问权限,分别是:public、protected、default(friendly、package)、private,这些访问的指定词决定了紧跟其后的被定义的东西可以被谁使用。

  • public:表示其后的元素对任何人都可以使用
  • protected:提供一个从包外部访问包(有限制)的方法
    • 继承的类可以访问protected修饰的元素
    • 同包中的其他类元素也可以访问
  • default(friendly、package):Java还有一种默认的访问权限,在不指定任何关键字的情况下,这种权限将发挥作用,它是一种包的访问权限(包指文件夹哦),即在当前包中的任何元素可以访问
  • private:表示其后的元素除了类型的创建者和内部的方法之外任何人都不能访问
    在这里插入图片描述

注意:
所谓的访问,可以分为两种不同方式:

  • 第一,通过对象实例访问
  • 第二,直接访问

比如说,某父类protected权限的成员子类是可以直接访问的,换一种说话是子类其实继承父类的除了private成员外的所有成员包括protected成员,所以与其说是子类访问了父类的protected成员,不如说 子类访问了自己的从父类继承来的protected成员

另一方面,如果该子类与父类不在同一个包里,那么通过父类的对象实例不能访问父类的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、付费专栏及课程。

余额充值