Нарушает ли объектные контейнерные типы из пакета org.omg.CORBA принцип инкапсуляции? Нарушает ли объектные контейнерные типы из пакута org.omg.CORBA принцип инкапсуляции на примере метода ниже?
public static void triple (IntHolden x)
{
x.value++;
}

21 Авг 2019 в 07:07
210 +1
1
Ответы
1

Объектные контейнерные типы из пакета org.omg.CORBA не нарушают принцип инкапсуляции, так как они предоставляют доступ к содержимому объекта только через методы доступа (геттеры и сеттеры), а не напрямую.

Однако, метод triple в данном примере может нарушить принцип инкапсуляции, если класс IntHolder содержит доступное извне поле value. В таком случае метод triple меняет значение поля value напрямую, обходя методы доступа. Для соблюдения инкапсуляции следует изменить метод triple следующим образом:

public static void triple(IntHolder x)
{
int value = x.value;
x.value = value * 3;
}

Таким образом, изменение значения поля value происходит через сеттер, а не напрямую.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир