Главная страница

Лабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74


Скачать 1.76 Mb.
НазваниеЛабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74
Дата12.03.2021
Размер1.76 Mb.
Формат файлаdoc
Имя файлаOOP_Lab_Rus.doc
ТипЛабораторная работа
#184105
страница5 из 31
1   2   3   4   5   6   7   8   9   ...   31

ЛАБОРАТОРНАЯ РАБОТА4



Тема: Инкапсуляция. Классы. Создание объектов. Методы, конструкторы и ключевое слово this.

Цель: ознакомится с основными элементами класса и узнать, как можно использовать класс для создания объектов; ознакомится также с методами, конструкторами и ключевым словом this.

Теоретические сведения

Рассматриваемые вопросы:

4.1 Концепция инкапсуляции

4.2 Введение в ООП. Классы

4.3 Простой класс

4.4 Объявление объектов

4.4.1 Операция new

4.5 Назначение ссылочных переменных объекта

4.6 Представление методов

4.6.1 Добавление метода к классу Box

4.6.2 Возврат значений

4.6.3 Добавление метода с параметрами

4.7 Конструкторы

4.7.1 Параметризованные конструкторы

4.8 Ключевое слово this

4.8.1 Скрытие переменной экземпляра

4.9 Сборка «мусора»

4.10 Метод finalized

4.11 Класс Stack

4.12 Управление доступом

4.13 Статические элементы

4.1 Концепция инкапсуляции


Инкапсуляция (encapsulation) – это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса). При использовании объектно-ориентированного подхода не принято применять прямой доступ к свойствам какого-либо класса из методов других классов. Для доступа к свойствам класса принято задействовать специальные методы этого класса для получения и изменения его свойств.

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

Инкапсуляция – один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).

Предостережение: Одна из наиболее распространенных ошибок – делать сокрытие реализации только ради сокрытия. Целями, достойными усилий, являются:

- предельная локализация изменений при необходимости таких изменений,

- прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.

Образ в пример: ложка, опущенная в стакан, не меняет его свойств и не становится частью стакана, хотя и помогает пить из него чай; в то же время, сахар, растворенный в чае с помощью ложки, делает его сладким.

Внутри объекта данные и методы могут обладать различной степенью открытости (или доступности). Степени доступности, принятые в языке Java, более подробно рассмотрены в справочниках [1,2]. Они позволяют более тонко управлять свойством инкапсуляции.

Открытые члены класса составляют внешний интерфейс объекта. Это та функциональность, которая доступна другим классам. Закрытыми обычно объявляются все свойства класса, а также вспомогательные методы, которые являются деталями реализации и от которых не должны зависеть другие части системы.

Благодаря сокрытию реализации за внешним интерфейсом класса можно менять внутреннюю логику отдельного класса, не меняя код остальных компонентов системы. Это свойство называется модульность.

Обеспечение доступа к свойствам класса только через его методы также дает ряд преимуществ. Во-первых, так гораздо проще контролировать корректные значения полей, ведь прямое обращение к свойствам отслеживать невозможно, а значит, им могут присвоить некорректные значения.

Во-вторых, не составит труда изменить способ хранения данных. Если информация станет храниться не в памяти, а в долговременном хранилище, таком как файловая система или база данных, потребуется изменить лишь ряд методов одного класса, а не вводить эту функциональность во все части системы.

Наконец, программный код, написанный с использованием данного принципа, легче отлаживать. Для того, чтобы узнать, кто и когда изменил свойство интересующего нас объекта, достаточно добавить вывод отладочной информации в тот метод объекта, посредством которого осуществляется доступ к свойству этого объекта. При использовании прямого доступа к свойствам объектов программисту пришлось бы добавлять вывод отладочной информации во все участки кода, где используется интересующий нас объект.
1   2   3   4   5   6   7   8   9   ...   31


написать администратору сайта