Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Реализация принципов объектно-ориентированного программирования в языке Java.




В Java классы являются базовой единицей программирования, объединяющей данные и код в одном объекте. Поддерживаются следующие возможности ООП:

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

· полиморфизм - механизм позволяющий изменить реализацию методов, т.е. поведение объекта в дочерних классах;

· абстракция - возможность объявить метод, без его конкретной реализации. Подобные классы называются абстрактными;

· инкапсуляция - сокрытие реализации класса от его пользователя. Другими словами, пользователь имеет доступ только к открытым членам класса. К закрытым членам имеет доступ только сам объект;

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

 

 

Определение класса на языке Java с помощью оператора class:

 

class MyClass {

String name = "Example";

 

// "Конструктор"

public MyClass(String name) {

this.name = name;

}

 

// "Метод"

public String getName() {

return name;

}

}

 

Создание экземпляра класса:

MyClass my = new MyClass("Example 2");

 

 

Иерархия объектов давно используется для их классификации. Особенно детально она проработана в биологии. Все знакомы с семействами, родами и видами. Мы можем сделать описание своих домашних животных (pets): кошек (cats), собак (dogs), коров (cows) и прочих следующим образом:

class Pet{ // Здесь описываем общие свойства всех домашних любимцев

 

Master person; // Хозяин животного

 

int weight, age, eatTimel]; // Вес, возраст, время кормления

 

int eat(int food, int drink, int time){ // Процесс кормления

 

// Начальные действия...

 

if (time == eatTimefi]) person.getFood(food, drink);

 

// Метод потребления пищи

 

}

 

void voice(); // Звуки, издаваемые животным

 

// Прочее...

 

}

Затем создаем классы, описывающие более конкретные объекты, связывая их с общим классом:

class Cat extends Pet{ // Описываются свойства, присущие только кошкам:

 

int mouseCatched; // число пойманных мышей

 

void toMouse(); // процесс ловли мышей

 

// Прочие свойства

 

}

 

class Dog extends Pet{ // Свойства собак:

 

void preserve(); // охранять

 

}

Заметьте, что мы не повторяем общие свойства, описанные в классе Pet . Они наследуются автоматически. Мы можем определить объект класса Dog и использовать в нем все свойства класса Pet так, как будто они описаны в классе Dog :

Dog tuzik = new Dog(), sharik = new Dog();

 

 


Поделиться:

Дата добавления: 2015-04-18; просмотров: 70; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты