Доступ к элементу данных Java (свойству) только внутри класса и дочернего класса, но не в пакете.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Доступ к элементу данных Java (свойству) только внутри класса и дочернего класса, но не в пакете.

Сообщение Anonymous »

У меня есть сценарий ООП в Java, который меня интересует.

Я хочу иметь в своем классе переменную/член данных/свойство, такое, чтобы:
  • Доступ к нему следует осуществлять только в том классе, в котором он определен
  • Это должен быть доступен только дочернему классу, который расширил этот класс
  • И НЕ ДОЛЖЕН БЫТЬ легко доступен классу внутри того же пакета или любого другого Другой пакет
Это может звучать как нереалистичный сценарий, но мне любопытно, как мы можем достичь этого.
Ниже приведен пример кода, который я пытаюсь использовать:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»