109.57K
Категория: ПрограммированиеПрограммирование

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

1.

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

2.

Парадигмы программирования
Объектно-ориентированное программирование
Функциональное программирование
Логическое программирование
Императивное программирование
Аспектное программирование
И другие…
Парадигмы программирования

3.

Что лучше?
Идут споры и дискуссии о преимуществах той или иной парадигмы.
Очень часто спорят сторонники ФП и ООП
Что не так с ООП и ФП (хабр over 100 комментов)
Функциональное программирование: в Java и C# слишком много церемоний
(хабр)

4.

Принципы ООП
«Три кита ООП»
Наследование
Инкапсуляция
Полиморфизм

5.

Преимущества ООП
Близость к «объекту», к реальному миру.
В идеальном ООП – всё является объектами(числа, исключения,
файлы, ресурсы итд)
«Быстрое приближение» к задаче

6.

Теория ООП
Программы так или иначе моделируют мир
ООП считает, что все объекты мира созданы «по образу и подобию»
определенного шаблона, чертежа(эскиза).
К примеру чертеж автомобиля, по этому чертежу было собрано множество
автомобилей.
Чертежи зданий
Лекало одежды
И др.

7.

Свойства объекта
Чертеж(класс) описывает объект при помощи свойств.
Например Мяч:
Радиус
Вес
Материал
Цена
Страна производитель
Цвет
Форма (круглый, вытянутый)

8.

Примеры
Приведите пример эскиза(шаблона, чертежа) и его
свойств:
Пример:
Эскиз стола
Свойства: высота, материал, цена, количество, ножек, вес и т.д.
Приведите свои примеры.

9.

ООП в Java
Применительно к Java эскиз(чертеж) это класс(Class).
Готовый объект по чертежу это object instance
Свойство это переменная класса(class variable or
instance variable)
В Java эскизы как правило не содержат конкретных
значений. Конкретные значения хранятся в объекте

10.

Создание класса (чертежа) в Java
public class Ball {
}
Название класса
Ball – имя класса.
Название класса должно быть написано с Заглавной буквы!
Если написали public – название файла должно быть таким же,
как и название класса. Из примеру сверху, файл должен
называться Ball.java
public ставить не обязательно.
Все что внутри { } относится к классу

11.

Добавление свойств в класс
public class Ball {
String color;
double price;
double radius;
String producerCountry;
}
Свойства объявляются в теле класса
Наименования свойств с маленькой буквы
Создаем чертеж, не какой то отдельный объект, а в целом чертежи мячей
без конкретных свойств.
Свойства могут быть примитивными типами, но могут и классами
(например String это класс).

12.

Создание объекта по чертежу
Создание
объекта
public static void main(String[] args) {
Ball ballOne = new Ball();
}
В методе main(возможен любой другой) создали объект «ballOne» по
чертежу «Ball»
Ключевое слово new – говорит JAVA, что надо выделить память для нового
объекта. После выполнения данной строки создается объект.
Попробуйте ответить на вопросы: Какого цвета этот мяч? Сколько он стоит?

13.

Заполнение объекта
public static void main(String[] args) {
Ball ballOne = new Ball();
ballOne.color = "BLUE";
ballOne.price = 10;
ballOne.radius = 6;
ballOne.producerCountry = "China";
}
Создание и заполнение объекта.
Чтобы обратиться к определенному свойству мяча, нужно название объекта
+ «точка» + название свойства. Можем установить или считать значения
Работаем как с обычными переменными

14.

Вывод свойств объекта в консоль
public static void main(String[] args) {
Ball ballOne = new Ball();
ballOne.color = "BLUE";
ballOne.price = 10;
ballOne.radius = 6;
ballOne.producerCountry = "China";
System.out.println(ballOne.color + " "
+ ballOne.price + " "
+ ballOne.producerCountry);
}
public class Ball {
String color;
double price;
double radius;
String producerCountry;
}

15.

Задание
Выберите пример класса (чертежа, эскиза) из предыдущего
задания
Создайте класс по этому примеру в Java
Добавьте свойства чертежа
Создайте 3 объекта этого класса
Заполните их
Отобразите данные этих объектов

16.

Опишите классы и их возможные
свойства
Дерево
Автомобиль
Животное
Дом
Компьютер
Страна
Сайт
Смартфон

17.

Спасибо за внимание!
English     Русский Правила