Как импортировать мой собственный класс?
У меня есть этот класс Java:
package myClass;
public class myClass
{
private int herAge ;
public void setHerAge (int herAge)
{
this.herAge = herAge ;
}
}
и я хочу импортировать этот класс после компиляции в другом исходном файле с именем Test.java, который находится в том же каталоге, и вот что содержит Test.java:
import myClass ;
public class Test
{
public static void main (String []args)
{
myClass Rudaina = new myClass();
Rudaina.setHerAge(30);
}
}
когда я компилирую Test.java, я вижу это в моей консоли:
Test.java:1: error '.' expected
import myClass ;
^
Test.java:1: error '.' expected
import myClass ;
^
5 ответов
Твой класс myClass
также в пакете называется myClass
, что может стать причиной путаницы.
Пытаться:
import myClass.myClass;
Это называется полностью определенным именем класса.
Пакет предназначен для группировки классов, которые концептуально связаны. Наличие пакета, названного в честь одного класса, не очень полезно.
Вы можете назвать свою посылку в честь названия вашего проекта. Например, вы можете назвать это
package assignment1;
А затем импортируйте ваш класс следующим образом:
import assignment1.myClass;
Хотя все написанное верно, поскольку оба файла находятся в одном и том же каталоге, импорт не требуется.
К вашему сведению, принято использовать названия классов с большой буквы.
Лучше поместить то же имя пакета или другое, как указано ниже, поверх файла Test.java;
package myClass; //or some other name also viable
Затем, когда вы компилируете, вы можете сделать вот так;
javac -d . myClass.java
javac -d . Test.java
-D указывает место назначения, куда поместить сгенерированный файл класса. Вы можете использовать любое имя каталога, например / home (в случае Linux), d: / abc (в случае Windows) и т. Д. Если вы хотите сохранить пакет в том же каталоге, вы можете использовать. (Точка).
После этого используйте оператор импорта внутри Test.java следующим образом:
import myClass.*;
или же
import myClass.myclass;
После этого, когда вы запустите класс Test, сделайте следующее:
java myClass.Test //myClass in here is package name if you use some different package name use that
Вы должны использовать полное имя класса, включая имя пакета.
Вам не хватает названия пакета. Пытаться import myClass.myClass;