Ошибка - ожидается интерфейс класса или перечисление
Я новичок в Java, и я пишу этот код в блокноте, который дает мне ошибки. В NetBeans, хотя пакет уже определен. Как это сделать в блокноте?
package A;
class A {
private String name;
protected String company="oracle";
A(String name) {
this.name = name;
System.out.println(name);
}
}
public class B extends A {
// A public class constant
public final static String st = "Public access modifiers";
B(String name) {
super(name);
}
void getCompany()
{
System.out.println(company);
}
}
package B;//getting class interface or enum expected
public class Application {
public static void main(String[] args) {
System.out.println(st);
B b=new B("Java");
b.getCompany();
}
}
4 ответа
Вы не можете помещать разные пакеты в один и тот же исходный файл... Вы должны создать соответствующую структуру папок и отдельные исходные файлы Java для источников в каждом пакете...
Кроме того, чтобы иметь возможность ссылаться на классы из других пакетов, вы должны import
их соответствующим образом, и убедитесь, что они на самом деле находятся в classpath и для компиляции и для запуска тоже......
Рекомендуемое чтение
Инструкция пакета должна быть первой строкой в исходном файле. В каждом исходном файле может быть только один оператор пакета, и он применяется ко всем типам в файле.
PackageOrTypeName должен быть каноническим именем (§6.7) пакета, типа класса, типа интерфейса, типа перечисления или типа аннотации.
Это то, что он говорит, и удалите несколько объявлений package
И вы должны импортировать класс B
, Когда они оба принадлежат разным пакетам.
import packagePath.B;
Если объявление импорта одного типа импортирует тип с простым именем n, а модуль компиляции также объявляет тип верхнего уровня (§7.6) с простым именем n, возникает ошибка времени компиляции.
Примечание: не пишите несколько классов в одном файле Java. Позже очень сложно поддерживать код.
package B;//getting class interface or enum expected
удалить эту строкуPackage
объявление должно быть первой строкой исходного файла.
Вы не можете написать 2 или более разных пакетов в одном источнике