日期:2014-05-18  浏览次数:20712 次

不同包访问问题

package zhang.san

public class D
{
public D()
{
System.out.println("DDDD");
}
}

public class F
{
public F()
{
System.out.println("FFFF");
}
}

上面是zhang.san包中的两个类,不知道为什么在别的包里只要用到其中一个类就报错,但是只要把其中一个类的public权限改为默认权限就不会报错,但是如果要用到这个改后的默认权限类又提示权限不够。这里好像很矛盾了。我要在包中定义一套类,然后在别的包中引用这些类,但是一个包中他又只允许一个类是public的,可是想在不同包访问类,类又只能定义为public的。这JAVA什么逻辑啊。
------解决方案--------------------
1、关于java一个简单的规则是一个源文件尽量只包含一个类,当然java也容许自己定义更多的类
2、一个源文件只容许有一个public类,这是为了编译源文件使用,源文件的文件名就是这个public类的名字,当然也可以没有public类,但是一定在其中一个类中有main主方法 这个主方法是public的。java这么做的主要原理就是为了编译源文件使用的
------解决方案--------------------
上面已经解释了,一个类文件只能有一个public类,这是规定。
如果要调用不同包的类,你可以new出来,其它方式也会有很多!