温馨提示×

温馨提示×

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

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

Java Field的访问权限有哪些

发布时间:2026-01-05 05:30:47 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在Java中,字段(Field)的访问权限可以通过访问修饰符(Access Modifiers)来控制。Java提供了四种访问修饰符,分别是:

  1. public:公共访问级别,被声明为public的字段可以在任何地方被访问。

  2. protected:受保护访问级别,被声明为protected的字段可以被同一个包内的类以及不同包中的子类访问。

  3. default(没有修饰符):默认访问级别,也称为包级私有。如果字段没有指定访问修饰符,则默认为default。这样的字段只能被同一个包内的类访问。

  4. private:私有访问级别,被声明为private的字段只能在声明它的类内部被访问。

下面是一个简单的例子,展示了这四种访问修饰符的使用:

public class AccessModifiersExample {
    public int publicField = 1;
    protected int protectedField = 2;
    int defaultField = 3; // 没有修饰符,默认为default
    private int privateField = 4;

    public void accessFields() {
        System.out.println("Accessing fields from within the same class:");
        System.out.println("publicField: " + publicField);
        System.out.println("protectedField: " + protectedField);
        System.out.println("defaultField: " + defaultField);
        System.out.println("privateField: " + privateField);
    }
}

class SamePackageClass {
    void accessFields(AccessModifiersExample example) {
        System.out.println("Accessing fields from a class in the same package:");
        System.out.println("publicField: " + example.publicField);
        System.out.println("protectedField: " + example.protectedField);
        System.out.println("defaultField: " + example.defaultField);
        // System.out.println("privateField: " + example.privateField); // 编译错误,无法访问private字段
    }
}

class DifferentPackageSubclass extends AccessModifiersExample {
    void accessFieldsFromSubclass() {
        System.out.println("Accessing fields from a subclass in a different package:");
        System.out.println("publicField: " + publicField);
        System.out.println("protectedField: " + protectedField);
        // System.out.println("defaultField: " + defaultField); // 编译错误,无法访问default字段
        // System.out.println("privateField: " + privateField); // 编译错误,无法访问private字段
    }
}

在这个例子中,AccessModifiersExample 类定义了四种不同访问级别的字段。SamePackageClass 类与 AccessModifiersExample 在同一个包中,因此可以访问 publicprotecteddefault 字段,但不能访问 private 字段。DifferentPackageSubclass 类继承自 AccessModifiersExample,位于不同的包中,因此只能访问 publicprotected 字段,不能访问 defaultprivate 字段。

向AI问一下细节

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

AI