如何理解 Java 的 public access modifier

发布时间:2025-02-08 23:24:05 作者:小樊
来源:亿速云 阅读:99

在Java中,访问修饰符(access modifier)决定了类、变量、方法和构造函数的可见性。public是Java中最宽泛的访问级别,它有以下特点:

  1. 公开访问:被声明为public的类、方法、变量或构造函数可以从任何其他类访问,无论这些类是在同一个包内还是在不同的包内。

  2. 包内访问:如果没有使用public修饰符,那么类、方法或变量只能在同一个包内的其他类访问。

  3. 默认访问级别(也称为包私有):如果既没有使用public修饰符也没有使用其他访问修饰符(如private或protected),则默认为包私有。这意味着它们只能在同一个包内的类访问。

  4. 受保护访问级别(protected):protected修饰符允许类、方法或变量被同一个包内的类以及所有子类访问,无论这些子类是否在同一个包内。

下面是一个简单的例子来说明不同访问修饰符的效果:

// 文件名:Example.java
package com.example;

public class Example {
    public int publicVar = 10; // 可以在任何地方访问
    int defaultVar = 20;   // 只能在同一个包内的类访问
}

package com.example.subpackage;

import com.example.Example;

class SubpackageClass extends Example {
    void accessMembers() {
        publicVar = 30; // 正确:可以访问public成员
        defaultVar = 40; // 错误:不能在子类中直接访问默认访问级别的成员
    }
}

package com.otherpackage;

import com.example.Example;

class OtherPackageClass {
    void accessMembers() {
        Example example = new Example();
        example.publicVar = 50; // 正确:可以访问public成员
        // example.defaultVar = 60; // 错误:不能在不同包的类中访问默认访问级别的成员
    }
}

在这个例子中,Example类有一个public变量publicVar和一个默认访问级别的变量defaultVarSubpackageClassExample的子类,位于同一个包内,它可以访问publicVar但不能直接访问defaultVarOtherPackageClass位于不同的包内,它可以访问publicVar但不能访问defaultVar

推荐阅读:
  1. 语音识别,语义理解一站式解决之二(android,olami)
  2. 语音识别,语义理解一站式解决(android平台&olami sdk)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java 中 access modifier 有哪些作用

下一篇:Java private access modifier 的特点是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》