Московский государственный индустриальный университет
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3332 / 380 | Оценка: 4.17 / 3.79 | Длительность: 24:17:00
Специальности: Программист
Лекция 10:

Основы объектно-ориентированного программирования

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

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

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

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

Открытый метод (public method) — метод, который может быть вызван без ограничения извне объекта.

Перегрузка (overload) — использование одного идентификатора для нескольких различных методов или операторов.

Переменная класса (class variable)поле данных, являющееся общим для всех экземпляров данного класса.

Переменная экземпляра (instance variable) — внутренняя переменная экземпляра класса.

Переопределение метода (override) — действие, происходящее в том случае, когда метод подкласса имеет то же самое имя, что и метод надкласса; метод подкласса имеет приоритет по сравнению с методом надкласса.

Поведение (behavior) — описание объекта в терминах изменения его состояния и передачи сообщений в процессе воздействия или под действием других объектов.

Подкласс (subclass)синоним потомка, производного или дочернего класса.

Полиморфизм (polymorphism) — свойство, позволяющее использовать один и тот же интерфейс для различных действий; полиморфной переменной, например, может соответствовать несколько различных методов.

Получатель (receiver)объект, которому посылается сообщение; внутри метода, соответствующего сообщению, получатель идентифицируется в случае языка Java с помощью ключевого слова this.

Производный класс (derived class) — расширение или подкласс другого класса; синонимы: потомок, дочерний класс.

Реализация (implementation) — внутреннее строение класса или объекта, учитывающее особенности его поведения.

Родительский класс (parent class) — непосредственный надкласс данного класса, класс-предок.

Сборка мусора (garbage collector) — техника распределения памяти, при которой исполнительная система во время выполнения программы определяет, какие блоки памяти больше не нужны, и автоматически помечает их, как свободные.

Сообщение (message) — операция связи между объектами; синонимы: вызов метода, оператора.

Терминальный класс (final class)класс, объявленный с ключевым словом final, обозначающим, что он не может использоваться в качестве базового при определении новых классов и наследовании.

Терминальный метод (final method) — метод, объявленный с ключевым словом final, обозначающим, что он не может переопределяться в подклассах.

Терминатор (finalizer) — метод с именем finalize без аргументов и без возвращаемого значения, автоматически вызываемый исполнительной системой во время выполнения программы перед тем, как объект, для которого этот метод определен, будет уничтожен, если он уже не используется.

Экземпляр (instance)синоним объекта.

Свойства классов и объектов в языке Java

В этой секции в краткой форме сформулированы основные проявления общих принципов ООП в языке Java.

Класс состоит из данных и методов, работающих с данными.

Объект является конкретным экземпляром класса.

Доступ к членам объекта (переменным и методам) осуществляется с помощью оператора "точка", размещаемого между именем объекта и именем переменной.

Копия переменных экземпляра (не статических) содержится в каждом объекте (экземпляре) класса.

Статические переменные класса связаны с классом. Всегда существует ровно одна копия переменной класса независимо от числа экземпляров класса.

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

Статическим методам класса не передается аргумент this, и, следовательно, они не владеют текущим экземпляром класса, который можно использовать для неявной ссылки на переменные экземпляра или для неявного вызова методов экземпляра.

Объекты создаются при помощи ключевого слова new, которое вызывает конструктор класса с соответствующим списком аргументов.

Объект не уничтожается явно. Сборщик мусора автоматически утилизирует объекты, которые больше не используются.

Если в первой строке конструктор не вызывает другой конструктор при помощи this() или конструктор суперкласса при помощи super(), то автоматически вызывается конструктор суперкласса, который не имеет аргументов. В любом случае порождается цепочка вызовов конструкторов.

Если конструктор в классе не определен, то автоматически создается конструктор по умолчанию.

Класс может наследовать переменные и методы другого класса, не объявленные как private, становясь его подклассом, т.е. путем объявления другого класса в блоке extends.

Класс java.lang.Objectсуперкласс любого класса по умолчанию. Это корневой класс иерархии классов в языке Java, не имеющий суперкласса. Все классы наследуют методы класса Object.

Перегрузка методовопределение множества методов, имеющих одинаковое имя, но разные списки аргументов.

Переопределение методов возникает, когда класс переопределяет методы, унаследованные от его суперкласса.

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

Методы, объявленные как static, final, или private, не могут быть переопределены и не могут служить объектами динамического поиска. Это позволяет компилятору использовать inline-подстановку, оптимизируя их вызов.

Из подклассов можно явно вызывать переопределенные методы суперкласса с помощью ключевого слова super.

Можно явно ссылаться на скрытые переменные с помощью ключевого слова super.

Данные и методы могут быть скрыты и инкапсулированы внутри класса благодаря модификаторам видимости private и protected. Переменные класса, объявленные как public, видимы везде. Переменные класса без модификаторов видимости видны только внутри пакета.

Абстрактный метод не имеет тела (т.е. реализации).

Абстрактный класс содержит абстрактные методы. Методы должны быть реализованы в подклассе прежде, чем будут созданы экземпляры этого подкласса.

Интерфейс в языке Java — это набор абстрактных методов и констант (переменных, объявленных как final static ). Объявление интерфейса создает новый тип данных.

Класс реализует интерфейс, объявляя его в блоке implements и создавая тело метода для каждого из абстрактных методов интерфейса.

Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева