Инкапсуляция

Краткая теория

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

Абстракция

Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик.

Класс

Класс является описываемой на языке терминологии исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

Пример объявления класса:

// класс окружность

class Circle {

// поля класса

public double x; // абсцисса центра

public double y; // ордината центра

public double r; // радиус

// методы класса

// выводит на экран параметры окружности

public void printCircle() {

System. out. println("Окружность с центром ("+x+";"+y+") и радиусом "+r);

}

// перемещает центр, движение окружности

public void moveCircle(double a, double b) {

x = x + a;

y = y + b;

}

// масштабируем с коэффициентом k

public void zoomCircle(double k) {

r = r * k;

}

}

Объект

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

Пример создания объектов:

Circle c1 = new Circle();

Circle c2 = new Circle(10.0, 35.0, 20.0);

Конструктор класса

Конструктор — это специальный метод, вызываемый при создании экземпляра класса. Его имя совпадает с именем класса, и он не возвращает значения. Класс может иметь несколько конструкторов. Если при объявлении класса не описаны конструкторы, то при создании объекта будет выполняться конструктор по умолчанию.

public Circle(double xx, double yy, double rr) {

x = xx;

y = yy;

r = rr;

}

Прототип

Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка программирования.

Инкапсуляция

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

Пример:

class Circle {

private double r; // радиус

public double getR() {return r;} public void setR(double rr) {if(rr > 0) {

r = rr;

} else {

System. out. println("Radius must be positive");

}

}

В приведённом примере r радиус окружности – переменная закрытого типа (private), доступ к ней возможен через методы открытого типа (public) getR() и setR()


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: