当前位置: 首页 > 面试题库 >

在Java中,当您的方法具有未指定的可见性关键字时会发生什么?

尹冠宇
2023-03-14
问题内容

我从事android已有几年了,没有一次有老师或任何人告诉我该怎么做。我一直都在想这个问题。

当您有方法时,我通常会看到…

public void method(){
//Stuff
}

要么

private void method(){
//stuff
}

我知道void是没有返回值的方法,而public在某种程度上是该方法的可见性,但是如果我只是使用这种方法就很重要了…

void method(){
//stuff
}

因为那样的话,方法的可见性还是会成为默认设置吗?

我不知道我是否正确,指定“公开”还是“私有”只是一种好习惯?


问题答案:

不指定任何内容具有特定含义:

  • public -任何班级都可以访问该成员
  • protected -子类可以访问此成员(以及同一类或同一包中的代码)
  • private -只有同一个类中的代码才能访问此成员
  • 无(“默认”访问权限)-只有同一 程序包中的 代码才能访问此成员

可以说最后一种情况应该有自己的关键字,但是我们现在仍然坚持使用它。除非您真的打算使用默认可见性,否则它是不好的形式,不指定任何内容-
是出于某种原因确实需要程序包可见性,还是只是默认情况下对所有程序都具有程序包可见性?最佳实践是private对非公开成员明确使用,除非您需要其他成员之一。



 类似资料:
  • 这三个方法包含相同的参数,所以不应该重载。它们都有执行不同功能的代码。这怎么可能?java如何知道调用哪个方法?在命令行中通过java jar命令执行此代码时,我没有得到任何错误。

  • 如果在java中执行关闭挂钩期间引发了未捕获的异常,jvm是否会立即退出,而不运行其余已注册的关闭挂钩(如果有)?从javadocs: 未捕获的异常通过调用线程ThreadGroup对象的uncaughtException方法在关闭钩子中处理,就像在任何其他线程中一样。此方法的默认实现将异常的堆栈跟踪打印到System.err并终止线程;它不会导致虚拟机退出或停止。 似乎其他关机挂钩应该运行...

  • 问题内容: 我正在查看路径查找教程,并且注意到方法内的一条语句(class ,行126): 我是Java的新手。谁能告诉我为什么它在那里?据我所知,内部不允许使用void方法。 问题答案: 它只是在此时退出该方法。一旦执行,其余代码将不会执行。 例如。 请注意,编译器足够聪明,可以告诉您某些代码无法到达:

  • 问题内容: 就速度和内存效率而言,在函数内部导入Python模块和/或函数有什么优缺点? 它是否在每次运行该功能时重新导入,或者是否仅在运行一开始就重新导入一次? 问题答案: 每次运行该功能时都会重新导入吗? 没有; 确切地说,Python模块在每次导入时都会被缓存,因此导入第二(或第三或第四…)次实际上并不会迫使它们再次经历整个导入过程。1个 是否在开始时导入一次功能是否运行? 不可以,只有在执

  • 问题内容: Java中的原生关键字是什么? 问题答案: 述关键字被应用于方法,以指示该方法是在本机代码使用JNI(Java本地接口)来实现。

  • 问题内容: 如果在Java中没有指针这样的概念,为什么会得到一个异常调用? 问题答案: 是的,这是我在学习Java LOL时学到的第一批烦人的东西之一。正如paxdiablo所提到的,它实际上应该称为NullReferenceException,NoObjectException或DereferenceException。引用甚至不必在内部表示为指针,并且您不必关心。“大多数虚拟机包括Sun的使用