🗊Презентация Объектно-ориентированные особенности языка Java

Нажмите для полного просмотра!
Объектно-ориентированные особенности языка Java, слайд №1Объектно-ориентированные особенности языка Java, слайд №2Объектно-ориентированные особенности языка Java, слайд №3Объектно-ориентированные особенности языка Java, слайд №4Объектно-ориентированные особенности языка Java, слайд №5Объектно-ориентированные особенности языка Java, слайд №6Объектно-ориентированные особенности языка Java, слайд №7Объектно-ориентированные особенности языка Java, слайд №8Объектно-ориентированные особенности языка Java, слайд №9Объектно-ориентированные особенности языка Java, слайд №10Объектно-ориентированные особенности языка Java, слайд №11Объектно-ориентированные особенности языка Java, слайд №12Объектно-ориентированные особенности языка Java, слайд №13Объектно-ориентированные особенности языка Java, слайд №14Объектно-ориентированные особенности языка Java, слайд №15Объектно-ориентированные особенности языка Java, слайд №16Объектно-ориентированные особенности языка Java, слайд №17Объектно-ориентированные особенности языка Java, слайд №18Объектно-ориентированные особенности языка Java, слайд №19Объектно-ориентированные особенности языка Java, слайд №20Объектно-ориентированные особенности языка Java, слайд №21Объектно-ориентированные особенности языка Java, слайд №22Объектно-ориентированные особенности языка Java, слайд №23Объектно-ориентированные особенности языка Java, слайд №24Объектно-ориентированные особенности языка Java, слайд №25Объектно-ориентированные особенности языка Java, слайд №26Объектно-ориентированные особенности языка Java, слайд №27Объектно-ориентированные особенности языка Java, слайд №28Объектно-ориентированные особенности языка Java, слайд №29Объектно-ориентированные особенности языка Java, слайд №30Объектно-ориентированные особенности языка Java, слайд №31Объектно-ориентированные особенности языка Java, слайд №32Объектно-ориентированные особенности языка Java, слайд №33Объектно-ориентированные особенности языка Java, слайд №34Объектно-ориентированные особенности языка Java, слайд №35Объектно-ориентированные особенности языка Java, слайд №36Объектно-ориентированные особенности языка Java, слайд №37Объектно-ориентированные особенности языка Java, слайд №38Объектно-ориентированные особенности языка Java, слайд №39Объектно-ориентированные особенности языка Java, слайд №40Объектно-ориентированные особенности языка Java, слайд №41Объектно-ориентированные особенности языка Java, слайд №42Объектно-ориентированные особенности языка Java, слайд №43Объектно-ориентированные особенности языка Java, слайд №44Объектно-ориентированные особенности языка Java, слайд №45Объектно-ориентированные особенности языка Java, слайд №46Объектно-ориентированные особенности языка Java, слайд №47Объектно-ориентированные особенности языка Java, слайд №48Объектно-ориентированные особенности языка Java, слайд №49Объектно-ориентированные особенности языка Java, слайд №50Объектно-ориентированные особенности языка Java, слайд №51Объектно-ориентированные особенности языка Java, слайд №52Объектно-ориентированные особенности языка Java, слайд №53Объектно-ориентированные особенности языка Java, слайд №54

Содержание

Вы можете ознакомиться и скачать презентацию на тему Объектно-ориентированные особенности языка Java. Доклад-сообщение содержит 54 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Объектно-ориентированные особенности языка Java
Java for autotesters
Описание слайда:
Объектно-ориентированные особенности языка Java Java for autotesters

Слайд 2





Объектно-ориентированное программирование
ООП - методология программирования
Программа представляется совокупностью объектов
Каждый объект - экземпляр класса
Классы образуют иерархию наследования
ООП использует в качестве базовых элементов объекты, а не алгоритмы
Описание слайда:
Объектно-ориентированное программирование ООП - методология программирования Программа представляется совокупностью объектов Каждый объект - экземпляр класса Классы образуют иерархию наследования ООП использует в качестве базовых элементов объекты, а не алгоритмы

Слайд 3





Абстракция
Выделяйте только те факторы, которые нужны для решения задачи
Отсекайте все лишнее
Описание слайда:
Абстракция Выделяйте только те факторы, которые нужны для решения задачи Отсекайте все лишнее

Слайд 4





Инкапсуляция
Сокрытие реализации объекта
У объекта есть внутреннее состояние, недоступное для изменения извне
У объекта есть интерфейс, с помощью которого с объектом могут взаимодействовать внешние объекты
Описание слайда:
Инкапсуляция Сокрытие реализации объекта У объекта есть внутреннее состояние, недоступное для изменения извне У объекта есть интерфейс, с помощью которого с объектом могут взаимодействовать внешние объекты

Слайд 5





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

Слайд 6





Модификаторы доступа
Описание слайда:
Модификаторы доступа

Слайд 7





Пример ограничения доступа
Point point = new Point();
point.setX(0.0);
point.setY(1.0);
point.x = 1.0; // Ошибка
System.out.println("(" + point.getX() + ", "
        + point.getY() + ")");
Описание слайда:
Пример ограничения доступа Point point = new Point(); point.setX(0.0); point.setY(1.0); point.x = 1.0; // Ошибка System.out.println("(" + point.getX() + ", " + point.getY() + ")");

Слайд 8





Интерфейсы
Интерфейс – это ссылочный тип, аналогичный классу, в котором могут быть только константы, сигнатуры методов и вложенные типы
Нельзя создать экземпляр
Нет тел методов
Можно только реализовать в классах или расширить в других интерфейсах
Описание слайда:
Интерфейсы Интерфейс – это ссылочный тип, аналогичный классу, в котором могут быть только константы, сигнатуры методов и вложенные типы Нельзя создать экземпляр Нет тел методов Можно только реализовать в классах или расширить в других интерфейсах

Слайд 9





Интерфейсы как API
API - Application Programming Interface Интерфейс прикладного программирования
API делается открытым, а его реализация может хранится в секрете
Реализация может пересматриваться, но она должна по прежнему реализовывать контракт, на который полагаются клиенты
Описание слайда:
Интерфейсы как API API - Application Programming Interface Интерфейс прикладного программирования API делается открытым, а его реализация может хранится в секрете Реализация может пересматриваться, но она должна по прежнему реализовывать контракт, на который полагаются клиенты

Слайд 10





Пример интерфейса





public interface Relatable {
    int isLargerThan(Relatable other);
}
Описание слайда:
Пример интерфейса public interface Relatable { int isLargerThan(Relatable other); }

Слайд 11





Реализация интерфейса
public class Rectangle implements Relatable {
    private int width;
    private int height;
    public int getArea() {
        return width * height;
    }
    @Override
    public int isLargerThan(Relatable other) {
        Rectangle otherRect = (Rectangle) other;
        return this.getArea() - otherRect.getArea();
    }
}
Описание слайда:
Реализация интерфейса public class Rectangle implements Relatable { private int width; private int height; public int getArea() { return width * height; } @Override public int isLargerThan(Relatable other) { Rectangle otherRect = (Rectangle) other; return this.getArea() - otherRect.getArea(); } }

Слайд 12





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

Слайд 13





Изменение интерфейсов
Есть интерфейс:
Нужно добавить еще один метод
Не очень хорошее решение:
Более надежное решение – наследование интерфейсов:
Описание слайда:
Изменение интерфейсов Есть интерфейс: Нужно добавить еще один метод Не очень хорошее решение: Более надежное решение – наследование интерфейсов:

Слайд 14





Наследование
Механизм получения нового класса на основе уже существующего
Существующий класс можно дополнять или изменять, и получать новый класс
Отношение IS-A («является»)
Наследник ЯВЛЯЕТСЯ разновидностью родителя
Существующий – суперкласс (базовый, родительский)
Новый – подкласс (производный, дочерний)
Описание слайда:
Наследование Механизм получения нового класса на основе уже существующего Существующий класс можно дополнять или изменять, и получать новый класс Отношение IS-A («является») Наследник ЯВЛЯЕТСЯ разновидностью родителя Существующий – суперкласс (базовый, родительский) Новый – подкласс (производный, дочерний)

Слайд 15





Наследование
Одиночное
У класса есть только один предок
Множественное
У класса может быть несколько предков
Java не поддерживает множественное наследование
В Java у класса может быть только один суперкласс, но класс может реализовывать несколько интерфейсов
Описание слайда:
Наследование Одиночное У класса есть только один предок Множественное У класса может быть несколько предков Java не поддерживает множественное наследование В Java у класса может быть только один суперкласс, но класс может реализовывать несколько интерфейсов

Слайд 16





Примеры наследования
Описание слайда:
Примеры наследования

Слайд 17





Примеры наследования
Описание слайда:
Примеры наследования

Слайд 18





Примеры наследования
Описание слайда:
Примеры наследования

Слайд 19





Наследование
За исключением Object, у каждого класса есть один непосредственный суперкласс
Класс Object находится во главе иерархии
Интерфейсы не являются частью иерархии классов
Наследуются все компоненты с модификаторами  public и protected (поля, методы и вложенные классы)
Конструкторы не наследуются подклассами, но могут быть вызваны в подклассе
Описание слайда:
Наследование За исключением Object, у каждого класса есть один непосредственный суперкласс Класс Object находится во главе иерархии Интерфейсы не являются частью иерархии классов Наследуются все компоненты с модификаторами public и protected (поля, методы и вложенные классы) Конструкторы не наследуются подклассами, но могут быть вызваны в подклассе

Слайд 20





Методы класса Object
public final native Class<?> getClass();
public native int hashCode();
public boolean equals(Object obj)

protected native Object clone() throws CloneNotSupportedException;

public String toString()
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout)
        throws InterruptedException;
public final void wait(long timeout, int nanos)
        throws InterruptedException
public final void wait() throws InterruptedException
protected void finalize() throws Throwable
Описание слайда:
Методы класса Object public final native Class<?> getClass(); public native int hashCode(); public boolean equals(Object obj) protected native Object clone() throws CloneNotSupportedException; public String toString() public final native void notify(); public final native void notifyAll(); public final native void wait(long timeout) throws InterruptedException; public final void wait(long timeout, int nanos) throws InterruptedException public final void wait() throws InterruptedException protected void finalize() throws Throwable

Слайд 21





Типы объекта
В Java класс может наследоваться только от одного класса, но может реализовывать более одного интерфейса
У объекта может быть несколько типов:
тип собственного класса
типы всех суперклассов
типы всех реализованных им интерфейсов
Описание слайда:
Типы объекта В Java класс может наследоваться только от одного класса, но может реализовывать более одного интерфейса У объекта может быть несколько типов: тип собственного класса типы всех суперклассов типы всех реализованных им интерфейсов

Слайд 22





Приведение типа объектов
Приведение типа показывает использование объекта одного типа вместо другого типа
Неявное приведение типа
Явное приведение типа
Описание слайда:
Приведение типа объектов Приведение типа показывает использование объекта одного типа вместо другого типа Неявное приведение типа Явное приведение типа

Слайд 23





Что можно делать в подклассах
Поля
Унаследованные использовать как есть
Объявить новые
Скрыть поле (hide) (не рекомендуется)
Методы
Унаследованные использовать как есть
Объявить новые
Переопределить (override)
Скрыть статический (hide)
Конструкторы
В конструкторе подкласса вызвать конструктор суперкласса
Описание слайда:
Что можно делать в подклассах Поля Унаследованные использовать как есть Объявить новые Скрыть поле (hide) (не рекомендуется) Методы Унаследованные использовать как есть Объявить новые Переопределить (override) Скрыть статический (hide) Конструкторы В конструкторе подкласса вызвать конструктор суперкласса

Слайд 24





Переопределение и сокрытие методов
Метод с сигнатурой, совпадающей с сигнатурой метода суперкласса
Описание слайда:
Переопределение и сокрытие методов Метод с сигнатурой, совпадающей с сигнатурой метода суперкласса

Слайд 25





private в суперклассе
Не наследуются у своего суперкласса
Доступны через унаследованные public или protected методы
У вложенного класса есть доступ к private полям и методам своего внешнего класса
private компоненты неявно доступны через унаследованный вложенный класс
Описание слайда:
private в суперклассе Не наследуются у своего суперкласса Доступны через унаследованные public или protected методы У вложенного класса есть доступ к private полям и методам своего внешнего класса private компоненты неявно доступны через унаследованный вложенный класс

Слайд 26





private в суперклассе
Описание слайда:
private в суперклассе

Слайд 27





Ключевое слова super
Доступ к членам суперкласса
Вызов конструкторов суперкласса
В конструкторе вызов super – всегда первый оператор
Описание слайда:
Ключевое слова super Доступ к членам суперкласса Вызов конструкторов суперкласса В конструкторе вызов super – всегда первый оператор

Слайд 28





final классы и методы
Final классы
От final класса (неизменяемого) невозможно наследоваться
Например, от класса String
Final методы
Нельзя переопределить в подклассах
Методы, вызываемые из конструкторов должны обычно быть объявлены как final
Необходимы, если реализацию метода не должна изменяться и важна для сохранения непротиворечивого состояния объекта
Описание слайда:
final классы и методы Final классы От final класса (неизменяемого) невозможно наследоваться Например, от класса String Final методы Нельзя переопределить в подклассах Методы, вызываемые из конструкторов должны обычно быть объявлены как final Необходимы, если реализацию метода не должна изменяться и важна для сохранения непротиворечивого состояния объекта

Слайд 29





Абстрактные методы и классы
Абстрактный класс – это класс, объявленный с модификатором abstract
могут быть, а могут и не быть абстрактные методы
нельзя создать экземпляр, но можно создать подклассы

Абстрактный метод – это метод, объявленный без реализации:
Описание слайда:
Абстрактные методы и классы Абстрактный класс – это класс, объявленный с модификатором abstract могут быть, а могут и не быть абстрактные методы нельзя создать экземпляр, но можно создать подклассы Абстрактный метод – это метод, объявленный без реализации:

Слайд 30





Интерфейсы vs Абстрактные классы
Абстрактные классы могут содержать поля (которые не static и не final)
Абстрактные классы могут содержать реализации методов
Разные интерфейсы могут независимо реализовываться классами в разных местах иерархии
Абстрактные классы в большинстве случаев наследуются для использования части реализации
Описание слайда:
Интерфейсы vs Абстрактные классы Абстрактные классы могут содержать поля (которые не static и не final) Абстрактные классы могут содержать реализации методов Разные интерфейсы могут независимо реализовываться классами в разных местах иерархии Абстрактные классы в большинстве случаев наследуются для использования части реализации

Слайд 31





Абстрактные классы
Может реализовывать интерфейс
При этом не обязательно реализовывать все методы интерфейса
Может содержать статические компоненты
Их можно использовать с именем класса – как и в случае любого другого класса
Описание слайда:
Абстрактные классы Может реализовывать интерфейс При этом не обязательно реализовывать все методы интерфейса Может содержать статические компоненты Их можно использовать с именем класса – как и в случае любого другого класса

Слайд 32





Включение объектов
Существуют различные варианты включения объектов
Композиция
Агрегация
Ассоциация (Осведомленность)
Описание слайда:
Включение объектов Существуют различные варианты включения объектов Композиция Агрегация Ассоциация (Осведомленность)

Слайд 33





Композиция
Самый строгий вид включения
Времена жизни внешнего и включаемого объекта совпадают
Включаемый объект может существовать только как часть внешнего
Отношение «целое-часть» (HAS-A)
Описание слайда:
Композиция Самый строгий вид включения Времена жизни внешнего и включаемого объекта совпадают Включаемый объект может существовать только как часть внешнего Отношение «целое-часть» (HAS-A)

Слайд 34





Композиция – пример
Описание слайда:
Композиция – пример

Слайд 35





Композиция - пример
public class Car {
    private Engine engine;
    public Car() {
        this.engine = new Engine();
    }
    public Car(Engine engine) {
        this.engine = engine;
    }
    public Engine getEngine() {
        return engine;
    }
}
Описание слайда:
Композиция - пример public class Car { private Engine engine; public Car() { this.engine = new Engine(); } public Car(Engine engine) { this.engine = engine; } public Engine getEngine() { return engine; } }

Слайд 36





Агрегация
Отношение «целое-часть» (HAS-A)
Но объекты могут существовать независимо
Включаемый объект может существовать и без внешнего
Описание слайда:
Агрегация Отношение «целое-часть» (HAS-A) Но объекты могут существовать независимо Включаемый объект может существовать и без внешнего

Слайд 37





Агрегация – Пример
Описание слайда:
Агрегация – Пример

Слайд 38





Агрегация - пример
public class Car {
    private Wheel[] wheels;
    public Car(Wheel[] wheels) {
        this.wheels = wheels;
    }
    public Wheel[] getWheels() {
        return wheels;
    }
    public void setWheels(Wheel[] wheels) {
        this.wheels = wheels;
    }
}
Описание слайда:
Агрегация - пример public class Car { private Wheel[] wheels; public Car(Wheel[] wheels) { this.wheels = wheels; } public Wheel[] getWheels() { return wheels; } public void setWheels(Wheel[] wheels) { this.wheels = wheels; } }

Слайд 39





Ассоциация
Самый слабый вид включения
Один объект знает о существовании другого
Осведомленность может быть взаимной
Времена жизни объектов никак не связаны
Описание слайда:
Ассоциация Самый слабый вид включения Один объект знает о существовании другого Осведомленность может быть взаимной Времена жизни объектов никак не связаны

Слайд 40





Ассоциация – пример
Описание слайда:
Ассоциация – пример

Слайд 41





Ассоциация - пример
public class Car {
    private Passenger passenger;
    public Car(Passenger passenger) {
        this.passenger = passenger;
    }
    public Passenger getPassenger() {
        return passenger;
    }
    public void setPassenger(Passenger passenger) {
        this.passenger = passenger;
    }
}
Описание слайда:
Ассоциация - пример public class Car { private Passenger passenger; public Car(Passenger passenger) { this.passenger = passenger; } public Passenger getPassenger() { return passenger; } public void setPassenger(Passenger passenger) { this.passenger = passenger; } }

Слайд 42





Полиморфизм
Полиморфизм – возможность объектов с одинаковой спецификацией иметь различную реализацию
«Один интерфейс, множество реализаций»
Описание слайда:
Полиморфизм Полиморфизм – возможность объектов с одинаковой спецификацией иметь различную реализацию «Один интерфейс, множество реализаций»

Слайд 43





Вложенные классы
Зачем они могут понадобиться?
Логическая группировка классов
Увеличение инкапсуляции 
Более легкий для чтения и поддержки код
Описание слайда:
Вложенные классы Зачем они могут понадобиться? Логическая группировка классов Увеличение инкапсуляции Более легкий для чтения и поддержки код

Слайд 44





Статические вложенные классы
Описание слайда:
Статические вложенные классы

Слайд 45





Внутренние классы
Описание слайда:
Внутренние классы

Слайд 46





Анонимные классы
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.exit(0);
    }
});
Описание слайда:
Анонимные классы button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } });

Слайд 47





Перечисления (enum)
Перечисление – это тип, значения которого ограничены фиксированным множеством констант
Описание слайда:
Перечисления (enum) Перечисление – это тип, значения которого ограничены фиксированным множеством констант

Слайд 48





Перечисления могут содержать поля и методы
public enum Planet {
    MERCURY(3.303e+23, 2.4397e6),
    VENUS  (4.869e+24, 6.0518e6),
    EARTH  (5.976e+24, 6.37814e6),
    ...
    private final double mass;
    private final double radius;
    private Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }
    public double getMass() {
        return mass;
    }
    public double getSurfaceGravity() {
        return G * mass / (radius * radius);
    }
}
Описание слайда:
Перечисления могут содержать поля и методы public enum Planet { MERCURY(3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6), ... private final double mass; private final double radius; private Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } public double getMass() { return mass; } public double getSurfaceGravity() { return G * mass / (radius * radius); } }

Слайд 49





Пример использования enum
public enum Direction {
    NORTH(0, 1),
    EAST(1, 0),
    SOUTH(0, -1),
    WEST(-1, 0);
    private final int x;
    private final int y;
    private Direction(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }
}
...
public void move(Direction direction) {
    currentX += direction.getX();
    currentY += direction.getY();
}
Описание слайда:
Пример использования enum public enum Direction { NORTH(0, 1), EAST(1, 0), SOUTH(0, -1), WEST(-1, 0); private final int x; private final int y; private Direction(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } } ... public void move(Direction direction) { currentX += direction.getX(); currentY += direction.getY(); }

Слайд 50





Перечисления (enum)
Все перечисления неявно наследуются от java.lang.Enum
Все константы перечисления неявно имеют модификаторы public static final
Нельзя создать экземпляр перечисления с помощью оператора new
Нельзя наследоваться от перечисления
Описание слайда:
Перечисления (enum) Все перечисления неявно наследуются от java.lang.Enum Все константы перечисления неявно имеют модификаторы public static final Нельзя создать экземпляр перечисления с помощью оператора new Нельзя наследоваться от перечисления

Слайд 51





Перечисления (enum)
Некоторые нестатические методы перечисления:
ordinal() - номер элемента перечисления (номера начинаются с 0)
compareTo() - элементы перечисления можно сравнивать
Полезные статические методы перечислений:
values() – возвращает массив из всех констант перечисления
valueOf(String name) – ищет константу с заданным именем
Описание слайда:
Перечисления (enum) Некоторые нестатические методы перечисления: ordinal() - номер элемента перечисления (номера начинаются с 0) compareTo() - элементы перечисления можно сравнивать Полезные статические методы перечислений: values() – возвращает массив из всех констант перечисления valueOf(String name) – ищет константу с заданным именем

Слайд 52





Аннотации
Аннотации содержат данные, которые не являются частью программы
Применения:
Информация для компилятора
Обработка времени компиляции и размещения
Обработка времени выполнения
Описание слайда:
Аннотации Аннотации содержат данные, которые не являются частью программы Применения: Информация для компилятора Обработка времени компиляции и размещения Обработка времени выполнения

Слайд 53





Предопределенные аннотации
@Deprecated




@Override


@SuppressWarnings
Описание слайда:
Предопределенные аннотации @Deprecated @Override @SuppressWarnings

Слайд 54


Объектно-ориентированные особенности языка Java, слайд №54
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию