Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Классы в Java

Алексей Пахомов Ученик (11), на голосовании 1 год назад
Есть такая задача:
Добавьте классу Animal статичный метод на ваш вкус и статичное свойство String description, в котором будет храниться описание класса. Убедитесь, что его нельзя вызвать у объекта, но можно вызвать у класса.
У меня вопрос по последнему предложению задачи: "Убедитесь, что его нельзя вызвать у объекта, но можно вызвать у класса". Никак не могу понять как это вообще возможно сделать. Если сделать поле приватным - то не будет доступа даже через сам класс.
А если публичным - то доступ будет через класс и объект.
Как это возможно реализовать. Заранее всем спасибо
Голосование за лучший ответ
Sergio 2.1 Оракул (67303) 1 год назад
 public class Animal { 
private static String description = "Описание класса Animal";

public static void printDescription() {
System.out.println(description);
}
}
Алексей ПахомовУченик (11) 1 год назад
Но разве объект не унаследует это метод? Это же по сути просто инкапсуляция, доступ все равно будет
zx18r Искусственный Интеллект (159593) 1 год назад
это статический класс, для его вызова не нужно создавать обьект, просто через точку пишите имя класса и имя метода
Алексей ПахомовУченик (11) 1 год назад
Нет. Класс Animal - это обычный класс. Возможно вы имели ввиду поле. Но суть заключается именно в том, что бы у объекта не было доступа к полю, а у самого класса было.
Оракул Оракул (62089) 1 год назад
Все верно, никак. Задание некорректное.
Александр Искусственный Интеллект (301635) 1 год назад
задания переводили с буржуйских источников, как могли, через гугл...
Виктор Мальков Мудрец (10362) 1 год назад
 javac -Xlint:static -Werror Animal.java 
Ключами компилятора можно... Вряд ли это имели в виду в задании.
Похожие вопросы