2013-04-07 74 views
0

正如很多地方所述,一个类产生一个包 - 私有访问级别,这意味着这样的类只能被其他人访问,才是相同的包。我不知道很多关于软件包的知识,但是我想知道你在文件开头添加“软件包x”是足够的知识来提出我的问题。对包 - 私有作品的Java默认类访问如公开

我制作了一个带有类成分的文件。另一个文件包含

public class cooking{ 
    public static void main(String[] args) {..... 

有任何地方没有包声明。不过,我的程序成功编译了这两个文件,并且也运行了。我错过了什么?烹饪班不应该看不到配料吗?

+0

请张贴更多主要使用成分和成分类的代码。 – Aubin 2013-04-07 21:02:32

+0

发布这两个类的'package'语句。 – 2013-04-07 21:06:33

回答

1

您的IDE(如netbeans或eclipse)编译代码,因为这两个类都在同一个项目中,并且“知道”您的意思是该类。

1

类可以在没有import语句的情况下查看同一目录中的其他类。包是组织代码的方式,基本上只是应用程序文件夹中的目录。所有的类可以看到同一类的其他类,而不需要进口,在不同的包为您的结构是这样定义它:

src 
| 
+- Cooking.java 
| 
+- utilities 
    | 
    +- Ingredient.java 

当然,你的成分文件将与package utilities;来开头,并且如果你试图通过烹饪访问它会导致错误,除非在文件中有import utilities.Cooking;。软件包私有仅仅意味着软件包(或文件夹)以外的类无法查看或访问该文件或它的包私有属性。

1

如果您没有为java类添加包语句,那么这些类位于相同的包中=所谓的“默认”包。因此无论您将类定义为公共还是不公开,这些类都可以访问对方。

public class A 

=此类A中的所有包

class B 

是可见=此B类仅受在相同的包中的类作为B是可见

相关问题