emptinessandform
@emptinessandform

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

Во всех ресурсах посвященных модификаторам доступа описывается работа членов и методов класса, я в гугле до 3й странице дашел, но конкретно так и не нашел ответа на этот вопрос. Так же я иногда вижу как некоторые обьявляют класс просто class, а в конструкторе класса указывают уже public class.
Я подумал, что если указать public class, то можно будет получить доступ к классу из другого пакета, но это не так. Так для чего же используется public class и способ по умолчанию class и что он значит?
  • Вопрос задан
  • 10400 просмотров
Решения вопроса 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы