2015-08-30 3 views
1

Я пытаюсь объявить класс obj открытым, но он говорит class obj is public should be declared in a file named obj.java.Почему я не могу объявить класс obj общедоступным?

public class obj { 

    String name; 

    public void show() { 
     System.out.println (name); 
    } 
} 

public class objects { 

    public static void main (String args[]){ 
     obj object 1=new obj(); 
     object1.name="sam"; 
     object1.show(); 
    } 
} 

ответ

7

Ответ на ваш вопрос. Ваш файл не называется obj.java. У вас есть классы в отдельных файлах: obj.java и objects.java.

Кстати, соглашение java заключается в том, чтобы начинать имена классов с прописными буквами, например. Obj вместо obj. Кроме того, вы, вероятно, захотите выбрать более описательные имена.

+0

Когда я удаляю публикацию, тогда он работает нормально – user187744

+2

@ user187744: Справа: вам разрешено иметь только один общедоступный класс верхнего уровня в .java-файле, а имя этого класса должно совпадать с именем файла. Но вы можете иметь столько же * non * -публичных классов в файле, сколько хотите. –

+1

без квалификатора класс является закрытым пакетом. общедоступные классы должны быть в отдельных файлах, названных как класс –

3

Вы должны создать два разных файлов, obj.java и objects.java.

0

Ну, как вы думаете, что это значит? Следуйте соглашениям об именовании Java, пожалуйста. Назовите его Obj, с капиталом О. Проблема заключается в том, что первый класс в файле .java (хотя я высоко рекомендую вам никогда не класть больше файлов в файл, чем один), если он равен public, должен есть то же имя, что и файл (но без .java). Создайте файл Obj.java с классом Obj и файл Objects.java с классом Objects.

0

Удалите общедоступное ключевое слово из obj, поскольку у вас не может быть два открытых класса в одном файле.

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