如许多地方所述,一个类产生一个包私有访问级别,这意味着这样的类只能被其他人访问是同一个包。我不知道很多关于包装的东西,但我想知道你添加包装x"在文件的开头是足够的知识提出我的问题。
我用类成分制作了一个文件。另一个文件包含
public class cooking{
public static void main(String[] args) {.....
任何地方都没有包裹声明。不过,我的程序成功编译了两个文件,并且也运行了。我错过了什么?烹饪班不应该看不到成分吗?
答案 0 :(得分:1)
你的IDE(比如netbeans或eclipse)编译代码,因为这两个类都在同一个项目中,并且“知道”你的意思是那个类。
答案 1 :(得分:1)
类可以在没有import语句的情况下查看同一目录中的其他类。包是组织代码的方法,实际上只是应用程序文件夹中的目录。所有类都可以在不需要导入的情况下查看同一类中的其他类,当定义了不同的包时,例如您的结构是:
src
|
+- Cooking.java
|
+- utilities
|
+- Ingredient.java
当然,您的Ingredient文件将以package utilities;
开头,如果您尝试从烹饪中访问它,除非您在文件中有import utilities.Cooking;
,否则会收到错误。 Package-private只是意味着包(或文件夹)之外的类无法查看或访问该文件或它的Package-private属性。
答案 2 :(得分:1)
如果你没有向java类添加一个package语句,那么这些类在同一个包中=所谓的“默认”包。因此,无论您是否将类定义为公共类,这些类都可以相互访问。
public class A
=此类A在所有包中都可见
class B
=此类B仅由与B
相同的包中的类可见答案 3 :(得分:1)
正如Java语言规范中所述,您的类是(未)命名包的一部分,这就是他们可以看到彼此的原因。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html#jls-7.4.2