我开始学习java并在Eclipse中创建了我的第一个hello world函数。我注意到以下两个函数,都在我的java项目的src文件夹的默认包中,似乎做了同样的事情:
class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
和
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
两者都成功打印'Hello World!'到控制台。
我已经阅读了一些关于不同类类型的内容,但我不确定我将用第一个函数声明什么类型的类。这两个功能有什么区别? java是否会在第一种情况下公开我的hello world class?
答案 0 :(得分:10)
Class
未声明为public
为package protected
,这意味着class
只能在该包中访问。
stackoverflow上对acccess修饰符的非常有用的总结。更多oracle
示例:强>
因此,假设您有以下包结构:
com
stackoverflow
pkg1
public Class1
Class2
pkg2
OtherClass
Class2
只能由Class1
使用,但不能由OtherClass
答案 1 :(得分:1)
关于课堂知名度的全部内容!
可以使用修饰符public声明一个类,在这种情况下,该类对所有类都可见。如果一个类没有修饰符(默认值,也称为包私有),它只在自己的包中可见
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
答案 2 :(得分:1)
这花了我大约2秒钟在Google上找到:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
在回答您的问题时,默认修饰符为package protected
,这意味着它只能在包中访问,但下次请在发布问题之前进行一些研究,因为它花了您更多时间来编写问题是它必须搜索
答案 3 :(得分:0)
它是受保护的类,您无法在package
旁边访问该类。
如果您未通过默认受保护
指定任何内容