Я пытаюсь создать два класса A и B, которые существуют в именованном пакете с именем компонентов. A является открытым классом Window
, а B является открытым классом Door
, который содержит экземпляр A. Проблема заключается в том, что при компиляции B с использованием
javac -classpath . Door.java
, B не может найти A.
Я понимаю, что могу заставить этот код работать в неназванном пакете по умолчанию без условий импорта, однако я хочу, чтобы эти файлы существовали в одном именованном классе, чтобы их можно было импортировать в другое место.
Я продемонстрировал себе, что Door.java
будет компилироваться, если строка package components;
закомментирована из обоих файлов, однако я хочу, чтобы это был пакет с именем компоненты.
Я также пытался использовать import components.Window;
в B, но это тоже не работает.
//class A
package components;
public class Window{
public void rollup(){}
public void rolldown(){}
}
//class B
package components;
public class Door{
public Window window = new Window();
public void open(){}
public void close(){}
}
Мой текущий код показывает это, что показывает, что пакет B в настоящее время не может получить доступ к пакету A.
Door.java:8: error: cannot find symbol
Window window = new Window();
^
Как исправить этот код, чтобы B мог создавать экземпляр A, находясь в том же именованном пакете?