Отправляет email-рассылки с помощью сервиса Sendsay

Килограмм килобайтов

  Все выпуски  

Килограмм килобайтов


"Килограмм килобайтов"


Выпуск №37 Дата выхода:2008-05-14
Сайт рассылки: Рациональное программирование

Документация
 
Программирование
Java
PHP
Oracle
Операционные системы
FreeBSD
Linux
QNX

Здравствуйте, уважаемые подписчики

Предлагаю Вашему вниманию заключительную часть стати об объектно-ориентированном программировании на языке Java.

Начало в предыдущем выпуске.

Что такое наследование?

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

Объектно-ориентированное программирование позволяет классам наследовать часто используемые поведение и состояние другого класса. Например, Велосипед является суперклассом для классов ГорныйВелопед, ШоссейныйВелосипед и Тандем. В языке программирования Java каждый класс может иметь только один суперкласс, однако один суперкласс может иметь неограниченное число потомков.

Иерархия класса велосипед

Синтаксис создания класса потомка аналогичен типовому классу. Вначале объявления класса, используя ключевое слово extends, укажите имя класса, от которого надо наследовать.


class MountainBike extends Bicycle 
{
     //здесь будут новые поля и методы, определяющие класс ГорныйВелосипед.
}
Таким образом, ГорныйВелосипед имеет все поля и методы класса Велосипед, кроме того он содержит специфические особенности, делающие этот класс уникальным. Этот подход делает класс-потомок простым для понимания. Однако, Вам необходимо позаботиться о надлежащем документировании состояния и поведения суперкласса, т.к. этот код войдет в состав всех классов-потомков.

Что такое интерфейс?

Как Вы уже знаете, объект определяет свое взаимодействие с внешним миром через публичные методы. Методы - это интерфейс объекта с внешним миром. Например, кнопки на лицевой стороне Вашего телевизора - это интерфейс между Вами и электронными частями внутри пластиковой коробки. Вы нажимаете кнопку "Питание", чтобы включить или выключить телевизор.
В общем виде, интерфейс - это группа родственных методов с пустыми телами. Поведение велосипеда, определяемое как интерфейс, может быть представлено следующим образом:


interface Bicycle
{
   void changeCadence(int newValue);
   void changeGear(int newValue);
   void speedUp(int increment);
   void applyBrakes(int decrement);
}
Чтобы реализовать этот интерфейс, Вы должны создать свой класс с другим именем (например, ACMEBicycle), а в декларации класса надо использовать специальное ключевое слово.

class ACMEBicycle implements Bicycle 
{
   // оставшаяся часть реализации класса
}
Реализация интерфейса позволяет создавать более стандартизированные классы, с более предсказуемым поведением. Интерфейс - это контракт взаимодействия между классом и внешним миром, и этот контракт проверяется компилятором во время компиляции класса. Чтобы файл успешно скомпилировать, необходимо написать тела для всех методов, объявленных в интерфейсе.
Примечание: Чтобы скомпилировать класс ACMEBicycle, Вам надо добавить ключевое слово public в начало интерфейсных методов.

Что такое пакет?

Пакет - это пространство имен, в котором содержатся родственные классы и интерфейсы. Концептуально Вы можете думать о пакетах, как о различных папках у Вас на компьютере. Вы можете хранить страницы HTML в одной папке, картинки в другой, скрипты и приложения в третьей. Т.к. приложение на языке Java может состоять из сотен или тысяч отдельных классов, наличие способа упорядоченного хранения родственных классов и интерфейсов выглядит весьма привлекательно и логично.

Платформа Java предлагает огромную библиотеку классов (набор пакетов), готовых для использования в Ваших приложениях. Эта библиотека известна как Интерфейс Программирования Приложений ("Application Programming Interface") или API. Эти пакеты выполняют наиболее часто встречающиеся задачи программирования. Например, объект String содержит состояние и поведение символьных строк; объект File позволяет программисту легко совершать операции (создавать, удалять, переименовывать и т.д.) с файлами операционной системы; объект Socket позволяет создавать и использовать сетевые сокеты; различные GUI (графический интерфейс пользователя) объекты: кнопки, chekbox'ы и т.д. могут быть использованы для создания графического интефейса. Вы можете выбирать буквально из тысяч классов. Это позволят разработчику сфокусироваться на создании логики приложения и не отвлекаться на технические детали реализации.
Java Platform API Specification (http://java.sun.com/javase/6/docs/api/index.html) содержит полный список всех пакетов, интерфейсов, классов, полей и методов, которые предоставляет Java Platform 6, Standard Edition. Трудно переоценить важность этой страницы для программиста, сделайте на нее закладку в Вашем браузере.


* * *

Ведущий рассылки: Петрелевич Сергей

У Вас есть вопрос? Спрашивайте
Напишите, что Вы хотите видеть в рассылке. Мне важно знать Ваше мнение.


В избранное