Java中的公共(public)与受保护(protected)访问修饰符的区别

Java中的公共(public)与受保护(protected)访问修饰符的区别

public 和 protected 访问修饰符决定如何访问类或方法的成员。修饰符在声明时附加到成员上。我们知道这些访问修饰符在 Java oops 概念(如封装、多态性和继承)中发挥着重要作用。它有助于防止滥用会员提供的功能。我们将尝试通过示例程序来理解 Java 中的 public 和 protected 访问修饰符。

Java 中的访问修饰符

公共访问修饰符

Java 不限制公共成员的可访问性。任何声明为 public 的东西都可以在任何地方访问,这意味着我们可以在类内、类外、包内和包外访问它们。您可能已经注意到,Java 中的 main() 方法始终定义为公共方法,以便当前程序任何范围之外的 JVM 都可以调用它。

公共访问修饰符的一些示例 -

public int i1 = 108;
public double d2 = 6.55;

这里,变量被声明为公共。

示例

以下示例说明了包成员在 Java 中的工作原理。

class Pack {  
   public void prnt() { 
      // method declared as public 
      String msg = "I am inside a public method";
      System.out.print(msg);
   }  
}  
public class ClassShow extends Pack { 
   // public child class
   public static void main(String args[]) { 
      // creating object of child class
      ClassShow obj = new ClassShow();  
      // method calling through object of child class
      obj.prnt();
   }  
}  

输出

I am inside a public method

在上面的代码中,“Pack”类是“ClassShow”的父类。在父类中,我们声明了一个名为“prnt()”的公共方法来打印一条简单的消息。在子类的main()方法中,我们定义了子类“ClassShow”的对象来调用公共方法“prnt()”。在这里,子类也是公共的。

受保护的访问修饰符

多用于继承的情况下,控制父类成员和对应子类成员的访问。它允许在当前包之外访问元素,但只能访问类的直接子类。在这里,包是保存一组类的容器。

受保护访问修饰符的一些示例 -

protected int data1 = 5;
protected double data2 = 5.55;

这里,变量被声明为受保护的。

示例

以下示例说明了 Java 中受保护方法的使用。

class Pack {  
   protected void prnt() {
      String msg = "Tutorials Point!!";
      System.out.print("Welcome to " + msg);
   }  
}  
public class ClassShow extends Pack {  
   public static void main(String args[]) { 
      // creating object of child class
      ClassShow obj = new ClassShow();  
      // method calling through object of child class
      obj.prnt();  
   }  
}  

输出

Welcome to Tutorials Point!!

在上面的代码中,“Pack”类是“ClassShow”的父类。在父类中,我们声明了一个名为“prnt()”的受保护方法来打印一条简单的消息。在子类的main()方法中,我们定义了子类‘ClassShow’的对象来调用受保护的方法‘prnt()’。

公共与受保护的访问修饰符

从上面的讨论中,我们可以得出公共和私有访问修饰符之间的以下区别 -

公开

受保护

我们需要使用关键字“public”来指定成员公开。

我们使用“protected”关键字来指定成员受到保护。

我们可以将任何类定义为公共类。

类不能被定义为受保护的。

公共成员可以被包内和包外的任何类访问。

受保护的成员可以在包内以及其他包中访问。但对于其他包,它只能被继承的类访问。

顶级和会员均适用。

仅适用于会员级别。

结论

我们首先定义了 public 和 protected 访问修饰符,在后面的部分中,我们通过各自的示例详细解释了它们。最后,我们讨论了它们之间的一些差异。

以上就是Java中的公共(public)与受保护(protected)访问修饰符的区别的详细内容,更多请关注其它相关文章!