Amupu

在Java编程语言中,类的三种访问权限的区别

在Java编程语言中,类可以用public、protected或private关键字来指定访问权限。这三种访问权限有如下区别:


在Java编程语言中,类的三种访问权限的区别

1. public访问权限:


使用public关键字表示该类的成员可以被任何其他类访问。对于public成员变量和成员函数,其他类可以直接访问和调用,不需要继承该类也可以使用。一般来说,public访问权限用于指定开放的API,能够方便其他开发人员使用。


2. protected访问权限:


使用protected关键字表示该类的成员可以被该类的子类和同一包中的其他类访问。使用protected访问权限的成员只能在本类和其子类中访问,在同一包中的其他类也可以访问该成员。使用protected访问权限能够实现类成员的限制和封装,并且也不会过度暴露使用细节。


3. private访问权限:


使用private关键字表示该类的成员只能被该类的成员访问。private访问权限被用于强制实现类的封装特性,使得除了改变私有成员的类之外,没有其他任何代码可以访问或修改私有成员。在类的内部和嵌套类中可以访问private成员,而在其他类中,private成员无法被访问。


总结来说,public、protected和private访问权限是三种不同的访问级别,可以根据需要选择合适的访问级别来限制和保护类的成员。这样可以实现更好的封装,让代码更加安全和可靠。


下面是示例代码演示三种访问权限之间的区别:


public class ExampleClass {
   
    public int publicVar;       // 公有成员变量
    protected int protectedVar; // 受保护的成员变量
    private int privateVar;     // 私有成员变量
   
    public ExampleClass() {
        publicVar = 1;
        protectedVar = 2;
        privateVar = 3;
    }
   
    public void publicMethod() {
        System.out.println("This is a public method");
    }
   
    protected void protectedMethod() {
        System.out.println("This is a protected method");
    }
   
    private void privateMethod() {
        System.out.println("This is a private method");
    }
}
public class ChildClass extends ExampleClass {
   
    public ChildClass() {
        super();
    }
   
    // 覆盖父类的protected方法
    @Override
    protected void protectedMethod() {
        System.out.println("This is a protected method in child class");
    }
}
public class TestClass {
   
    public static void main(String[] args) {
       
        ExampleClass obj = new ExampleClass();
       
        // 访问公有成员变量和成员方法
        System.out.println(obj.publicVar);
        obj.publicMethod();
       
        // 访问受保护的成员变量和成员方法
        obj.protectedVar = 10;
        obj.protectedMethod();
       
        // 私有成员无法在外部类中直接访问
        // obj.privateVar = 20;
        // obj.privateMethod();
       
        ChildClass childObj = new ChildClass();
       
        // 这里访问父类的受保护的成员变量和成员方法,因为ChildClass继承自ExampleClass,
        // 所以ChildClass可以在自己的方法和构造函数中通过super关键字访问超类的受保护成员
        childObj.protectedVar = 30;
        childObj.protectedMethod();
    }
}


在上面的代码中,我们定义了一个ExampleClass,并将其中的成员分别声明为public、protected和private,然后创建了一个ChildClass作为ExampleClass的子类。在TestClass中,我们创建了一个ExampleClass的对象obj,并分别访问了ExampleClass中的public、protected和private成员,结果表明:公有成员变量和成员方法可以被其他类直接访问,受保护的成员变量和成员方法只能在继承类中或者和ExampleClass在同一包内的类中访问,而私有成员则只能在同一个类的成员函数中访问,无法被其他类直接访问。最后我们还创建了ChildClass类,并覆盖了ExampleClass中的protectedMethod方法,并通过super关键字访问了ExampleClass的受保护成员。

搜索
分类最新
    分类最新,为您呈现各领域的最新动态和热点话题。无论您关注科技、财经、创业还是生活,这里都能满足您的需求。我们精选最新文章,提供最新鲜、全面的内容,掌握最新的知识和趋势,保持与时俱进的步伐。
分类热门
    分类热门栏目,汇聚了各类热门话题的精华文章,无论是科技、云计算、生活还是时尚,都能在这里找到最新鲜、最热门的内容。我们精选优质文章,为您呈现一个丰富多彩的信息世界,让您在轻松阅读中领略不同领域的魅力,感受时代的脉搏。
  • 作文热门
  • 情感热门
  • 生活热门
分类猜你喜欢
    分类猜你喜欢栏目,根据您的阅读偏好和兴趣,为您精准推荐热门文章。我们运用智能算法,为您呈现最符合您口味的精彩内容。无论是深度解析、趣味科普还是心灵鸡汤,这里都有您喜欢的文章,让您在阅读中享受乐趣,发现更多精彩。
  • 作文分类!
  • 情感分类!
  • 生活分类!
© Copyright Amupu.Z-Blog.Some Rights Reserved.