@atambalasi

Правильно ли я понимаю инкапсуляцию и понятия объекта?

- инкапсуляция - когда внутреннее состояние объектов может изменяться только самим объектом (способность объекта сохранять свое внутреннее состояние).
Что есть объект:
Это сущность который одновременно содержащая в себе поведения и данные. Физический этот сущность располагается в адресном пространстве компьютера(тоже в одном месте в памяти).
Объекта есть признаки такие как атрибуты, состояния, поведения.
Объектом может расматриватся класс, группа классов, подсистема.
Что есть состояния объекта:
Например если человек покрасил волосы то его состояния изменился т.к. свойство цвет волос поменял значения.

Пример:
Есть некая абстрактная мозг который может принимат информацию в лейнейно.
1) Этап скрытия данных

class Brain{

	String capsule;
}

Мы уже скрыли данные создавь класс Brain. Теперь ему можно обратиться только создавь инстас этого класса. Другие способы достучатсяся до capsule нет. Таким оброзом внутренее состояния Brain может изменить только объект этого класса.

Мы скрываем данные создавь класс Brain от внешного мира. Рас атрибуты скрыты от внешного мира его внутренее состоянию может менять только сам объект.

brain1 = new Brain();
brain2 = new Brain();

brain1.capsule = "Чайник";
brain2.capsule = "Магазин";


2) Этап скрыт детали реализации
class Brain{

	private String capsule;

	//Интерфейс методы для взаимодействия с объектом.(Слово интерфейс в широком понимании)
	public String getCapsule(){
		return capsule;
	}

	public void setCapsule(String data){

		if(!isBusy){
			//проверям является ли этот информация корректным
			//если да то проверям может ли мозг принят его
			if(isCorrect(data) && isAccept(data))
				capsule = data;
		}else{
			waitPleas();
		}
	}

	//Реализация
	private boolean isCorrect(String data){
		

	}

	//Реализация
	private boolean isAccept(String data){

	}

	private boolaen isBusy(){

	}
}

Классе Brain ограничили доступ к данным и скрыли детали реализации. Клиенту дали только интерфейс методы.
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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