A.java为什么与不同包相关的类可以访问另一个包的类?
package a;
class A {
void f1()
{
System.out.println("hi");
}
}
B.java
在相同的文件夹A.java和类文件的在同一文件夹中生成。
package b;
class B
{
new A().f1();
}
我是包装概念的新手。我的问题是即使它们不在同一个包中,B如何创建A的对象?
A.java为什么与不同包相关的类可以访问另一个包的类?
package a;
class A {
void f1()
{
System.out.println("hi");
}
}
B.java
在相同的文件夹A.java和类文件的在同一文件夹中生成。
package b;
class B
{
new A().f1();
}
我是包装概念的新手。我的问题是即使它们不在同一个包中,B如何创建A的对象?
。公共班级可以通过使用import a.A;
或提供完整的班级名称new a.A().f1()
通过不同的包进行访问。
具有默认访问级别的类无法通过该包之外的类访问,您将默认设置与public混淆http://docs.oracle.com/javase/tutorial/java/javaOO /accesscontrol.html – Exupery 2012-08-17 20:05:13
我的错误..纠正它。 – 2012-08-17 20:11:33
B将import (or can use fully qualified name)从其他包的A类,如果它必须使用它。导入使其他包中的类可以从不同的包中查看类。但是这可以通过使用scoping进一步查找。
如果两者都位于相同的文件夹中并且未明确使用任何软件包,则它们都位于默认软件包中。 如果它们在同一个包中,则在使用它们时不需要显式导入这些类。
你应该知道java中的访问修饰符。如果您的课程是公开的,只需导入它即可访问。
如果你使用公共类声明它去public access level
请通过下面的链接,更好地理解
http://javapapers.com/core-java/access-modifiers-in-java-explain/
有一种叫做进口在Java中,你可以,只要是公共的(跨包可见)或受保护的(可见的子类)
'function'是导入的封装和访问方法或成员为JavaScript。你的** A.java **类将不会编译。 – 2012-08-17 18:56:15
真正的错误! – Aragorn 2012-08-17 18:59:06
请提及您的类的包结构和您的类的访问说明符(公共或默认),然后才可以回答。 – 2012-08-17 19:00:43