Java 为什么与不同包相关的类可以访问另一个包的类?
A.javaJava 为什么与不同包相关的类可以访问另一个包的类?,java,package,Java,Package,A.java package a; class A { void f1() { System.out.println("hi"); } } B.java package a; class A { void f1() { System.out.println("hi"); } } 在与A.java相同的文件夹中,类文件在同一文件夹中生成 package b; class B { new A()
package a;
class A {
void f1()
{
System.out.println("hi");
}
}
B.java
package a;
class A {
void f1()
{
System.out.println("hi");
}
}
在与A.java相同的文件夹中,类文件在同一文件夹中生成
package b;
class B
{
new A().f1();
}
我对包装概念不熟悉。我这里的问题是,即使它们不在同一个包中,B如何创建A的对象?B将从其他包中创建类A,如果它必须使用它。导入使其他包中的类能够查看不同包中的类。但这可以通过使用进行进一步调整
如果两者都在同一文件夹中,并且没有明确使用任何包,则它们都位于默认的包中并且如果类在同一个包中,则在使用它们时无需显式导入它们。您应该了解java中的访问修饰符。如果您的类是公共的,只需导入它,就可以在任何地方访问它 请浏览下面的链接,以便更好地理解
如果使用公共类声明,它将转到
公共访问级别
。公共类可以通过使用import a.a由不同的包访问
或提供完整的类名new a.a().f1()
Java中有一种称为import的东西,您可以将它导入到当前包中,并访问方法或成员,只要它们是公共的(在包中可见)或受保护的(对子类可见)函数
用于JavaScript。您的A.java类甚至不会编译。请清楚地提及类的包结构和类的访问说明符(公共或默认),然后才能回答。我想知道B如何看到类A?可能您没有使用包,并且两个类都定义在同一个包中。如果没有,那么您应该强制使用“导入”。否则代码不会编译。这里的场景是A.java和B.java在同一个文件夹中。现在我还没有使用任何包,但我可以在B类中创建A类的对象。如何?阅读java中访问级别的工作原理。具有默认访问级别的类不能被该包之外的类访问,这将使默认和公共混淆