java - 在 java 方法中省略 public 修饰符

标签 java class methods subroutine

<分区>

我正在学习 Java,有一些事情困扰着我,教科书没有解释。

我知道您使用修饰符在类和所有类中声明方法。但是我突然进入了一个声明为

static void(){
}

为什么没有 public 或 private 修饰符,它仍然有效?我可以避免在其他任何地方使用 public 修饰符吗?或者它是如何工作的?我知道 static 意味着类的成员并且 void 它不返回值。然而,为什么不公开或不公开呢。

最佳答案

为了便于解释,术语“函数”和“方法”可以互换使用。它们之间存在细微差别,有关更多信息,请询问 Google。

Java中没有显式指定修饰符的方法默认是package-private的,所以该方法对与该类在同一个package中的所有类可见声明方法的位置。

公共(public) 函数可由有权访问该类(即您的整个项目)的所有类调用,私有(private) 方法只能在编写该方法的类中调用.还有protected修饰符,指定函数只能被该类、其所有子类在同一个包中的类访问。

“为什么这很重要?”,您可能会问。好问题!

你应该使用修饰符来隐藏其他类的方法/属性,这些类可能(滥用)使用它们或者在糟糕的情况下可能导致意外行为(不一定在技术上,但在语义上......一些方法只需要更多的隐私就像我们一样)。所以一个好的起点是private,这意味着只有声明它的类才能调用它。通常情况下,您需要授予其他类访问方法的权限,这就是为什么使用 package-privateprotectedpublic 修饰符存在。

数据封装是编程中的一个重要范例,这些修饰符可以帮助您实现这一点。

关于java - 在 java 方法中省略 public 修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447678/

相关文章:

C#动态类属性问题

c++ - 让用户创建自己的类实例

java - Java 掷骰子分配 : Calling a Method

java - 如何只关闭一个awt框架而不关闭其他框架?

java - 让 Jackson 对输入 JSON 更友好

python - 如何使用派生自 Python 列表类的类

c# - 通过调用计算taxAmount的方法只能得到$0

java - 具有多个参数的方法的 Autowiring spring 注释

java - 从文件系统导入eclipse项目,然后在服务器上运行

java - "java.security.AccessControlException: access denied"执行签名的 Java Applet