emptinessandform
@emptinessandform

В чем отличие между class и public class в Java?

Во всех ресурсах посвященных модификаторам доступа описывается работа членов и методов класса, я в гугле до 3й странице дашел, но конкретно так и не нашел ответа на этот вопрос. Так же я иногда вижу как некоторые обьявляют класс просто class, а в конструкторе класса указывают уже public class.
Я подумал, что если указать public class, то можно будет получить доступ к классу из другого пакета, но это не так. Так для чего же используется public class и способ по умолчанию class и что он значит?
  • Вопрос задан
  • 9765 просмотров
Решения вопроса 1
firezhek
@firezhek
Java Developer
Странный вопрос, ну да ладно. Смотри. class {} , access modifier = (private ,protected, default(none), public) . Пабликом ты говоришь, что класс доступен из других пакетов, при этом конструктор может быть паблик, а у класса стоять просто class. Но в этом не будет смысла, так как ты не сможешь использовать этот класс в другом пакете , так как модификатор доступа у тебя package-private у класса.

Модификатор конструктора ,по-сути в твоем случае, просто ограничивает область , где ты можешь инициализировать этот класс. А модификатор класса, где будет доступен твой класс.

К примеру

package1;

public class Animal { 

Animal(){}
}

public static void gav(){
}

}

package2;

public class ZooPark{

public void main(String[] args) {
Animal animal = new Animal(); // ошибка здесь, конструктор не доступен т.к. package-private
Animal.gav(); //- ок , класс доступен, статик тоже доступен. ps статик метод тоже публичный
}

}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Комментировать
@Sidlohith
A class is a blueprint from which collection of objects are created.

A public class is a class which can be accessed outside the package.

Also in your question "public" is an access modifier. A public access modifier can be accessed globally or everywhere. If we want to access a class which is “public” outside the package then we can “import” that class to particular package.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы