1
我有兩個包, pack1和pack2。在pack1中有 我有兩個類叫做Prog,另一個叫ClassA。 在pack2中我有一個叫做ClassB的類。來自不同包的調用方法JAVA
我想了解爲什麼我無法從ClassB中調用使用該對象的方法。 我可以做到這一點使用主類,但不能與其他類。
下面的代碼:
package pack1;
import pack2.ClassB;
public class Prog {
public static void main(String[] args){
}
}
代碼ClassA的
package pack1;
import pack2.ClassB;
public class ClassA {
ClassB o3 = new ClassB();
// Error won't compile
System.out.println(o3.getText());
}
代碼ClassB的:
package pack2;
public class ClassB {
final String TEXT = "This is a text";
public String getText(){
return TEXT;
}
}
感謝您的答覆。但爲什麼它會這樣工作?在主類中,我不必將其放在構造函數中。 –
@ reddit_10主類包含一個方法聲明,您的'ClassA'版本包含一個Statement(一個StatementExpression更精確),它不同於方法聲明。請看JLS(http://docs.oracle.com/javase/specs/jls/se8/html/index.html) - 本例中的第8.2和14.5章。 – Paul