Ошибка - ожидается интерфейс класса или перечисление

Я новичок в 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 или более разных пакетов в одном источнике

Другие вопросы по тегам