У меня есть два пакета; pack1 и pack2. в pack1 У меня есть два класса: основной называется Prog, а другой - ClassA. В пакете2 у меня есть класс 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 mainclass содержит декларацию метода, ваша версия 'ClassA' содержит инструкцию (более точное выражение StatementExpression), которое отличается от декларации метода. Взгляните на JLS (http://docs.oracle.com/javase/specs/jls/se8/html/index.html) - глава 8.2 и 14.5 в этом случае. – Paul