Я хочу иметь в своем классе переменную/член данных/свойство, такое, чтобы:
- Доступ к нему следует осуществлять только в том классе, в котором он определен
- Это должен быть доступен только дочернему классу, который расширил этот класс
- И НЕ ДОЛЖЕН БЫТЬ легко доступен классу внутри того же пакета или любого другого Другой пакет
Ниже приведен пример кода, который я пытаюсь использовать:
Код: Выделить всё
class Point {
// protected int x, y;
int x, y;
public Point()
{
}
public Point(int _x, int _y)
{
x = _x;
y = _y;
}
}
public class Test {
public static void main(String args[])
{
Point p = new Point();
System.out.println("x = " + p.x + ", y = " + p.y);
}
}
- Вывод, когда x и y защищены: 0 и 0
- Вывод, когда x и y являются частными: ошибка компиляции
- Вывод при использовании модификатора доступа по умолчанию для x и y: 0 и 0
И еще я знаю, что в Java в настоящее время нет такого модификатора доступа, но все же я хочу понять, почему и почему нет.
Подробнее здесь: https://stackoverflow.com/questions/768 ... -child-cla
Мобильная версия