2016-09-10 2 views
-1

Я стараюсь понять рабочий процесс, когда у вас есть несколько файлов Java.Борьба за понимание рабочего процесса для файлов Java

myNode.java:

package x; 
class myNode { 
    private myNode next = null; 
    private int d; 
    myNode(int d) { 
     this.d = d; 
    } 
    void append(int d) { 
     myNode curr = this; 
     while (curr.next != null) { 
      curr = curr.next; 
     } 
     curr.next = new myNode(d); 
    } 
} 

myMain.java:

package x; 
class myMain { 
    public static void main() { 
     myNode x = new myNode(1); 
     x.append(2); 
    } 
} 

Я получаю следующее сообщение об ошибке при попытке компиляции myMain.java

error: cannot find symbol 
     myNode x = new myNode(1); 
     ^
    symbol: class myNode 
    location: class myMain 
+0

Вы импортировали файл 'myNode.java'? –

+1

Пожалуйста, сообщите нам, как именно вы пытаетесь скомпилировать myMain.java. –

+1

Возможно, вам понравится http://stackoverflow.com/questions/880662/include-one-java-file-in-another-java-file –

ответ

2

Вы были сказал, что классы Java могут быть доступны из других классов Java без необходимости явно import их i f они находятся в одном пакете. Это правда. Но это еще не все.

javac не будет пытаться получить доступ к файлу java, который вы явно не указали для доступа. Итак, когда вы пытаетесь скомпилировать javac, вы должны указать в командной строке все файлы, которые нужно скомпилировать, например: javac MyClass.java AnotherClass.java.

Также обратите внимание, что соглашение в java заключается в использовании первой буквы капитала для имен классов.

+0

Спасибо! Я только запускал javac myClass.java. Я попробовал запустить команду в предложенном вами формате, и она выдавала ту же ошибку. И затем я изменил свои имена классов, чтобы начать с большой буквы, и это сделало магию! – JeanieJ

Смежные вопросы