2012-05-14 4 views
1

Можно создать дубликат:
package visibility
Java - The difference between class “ClassName” and public class “ClassName”Разница между «общественным» классом и немодифицированным классом?

В принципе нет никакой разницы в этих двух модификаторов классов? Есть ли разница в отсутствии публичного модификатора?

public class MyClass {} 

class MyClass {} 
+1

@pst: ОК, как насчет этих: http://stackoverflow.com/questions/8191022/what-are-variables-without-public-private-or-protected-declared-as, http: // stackoverflow .com/вопросы/215497/in-java-whats-the-difference-between-public-default-protected-and-private, http://stackoverflow.com/questions/6996739/non-public-top-level-class -in-java и т. д. Они все относятся к предмету достаточно. Я уверен, что смогу найти больше. Мы могли бы обсудить это на мета, как «точный» дубликат должен быть –

+0

@LukasEder Нет, это о членах, а не о классах. –

ответ

1

public класс виден любой другой класс, в то время как class (без модификатора) будет иметь видимость пакета.

0

От Java-Specification:

Если класс или типа интерфейса объявляется публично, то он может получить доступ к любому коду, при условии, что блок компиляции (§7.3), в котором он объявлен, является наблюдаемым.

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

0

1. Общественный класс доступен из-за пределов его пакет, тогда как класс не является.
2. В исходном файле может быть только один открытый класс, а имя исходного файла должно быть одинаковым.

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