Есть ли жизнь без ООП
TRANSCRIPT
Есть ли жизнь без ООП?
Evolution of
programming
Evolution of
programming
Turing machine
Long time ago in a galaxy far far away…
2D
Binary code
Operation code Op1 Op210101100 01100010 0010101111001001 01011100 0010101100001001 00101110 1100110101010111 01111100 1110011010111010 0101110110101011 11011110 0110010100110110 11100111 11100011
Binary code
Use chars, Luke!
Assembler
section .text global _start ;must be
declared for linker (ld) _start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel section .data msg db 'Hello, world!', 0xa ;our dear string len equ $ - msg ;length of our dear string
Place for your ads here
I don’tcareaboutallthesehardwarestuff!
High-level languages
program hello print *, "Hello World!"
end program hello
Code reuse
Procedure programming
procedure print_hello()Begin writeln(‘Hello, World!’);End;
Code and data as one single
thing
Object-oriented programming
Class
Properties : data
Methods : code
Representation of
smthreal
Class example
public class HelloClass {String hello = "Hello, World!";public void printHello() {
System.out.println(hello);}
}
Object is a class instance
Dangerous abstraction
Abstraction
Weird abstraction
About me{
“First name”: “Taras”,
“Last name”: “Slipets”,
“Occupation”: [
“4+ years in enterprise software engineering”,
“3+ years in teaching”
],
“LinkedIn Profile”: “http://www.linkedin.com/pub/taras-slipets/48/466/516”,
“Interests”: [
“Music”,
“Skiing”
]
}
Методы абстракции
• Параметризация
• Спецификация
Абстракция через параметризацию
Абстракция через спецификацию
Виды абстракции
• Процедурная
• Абстракция данных
• Абстракция итерации
Модель
2 атомарных понятия:• Объект• Отношение
Что важнее?
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
What???
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Понятие объекта
Объект является конкретным распознаваемым предметом, сущностью или явлением (реальным или абстрактным), которое имеет четко определенное функциональное назначение в данной проблемной области.
Объекты обладают целостностью, которую не следует нарушать. Объект может только менять состояние, поведение, управляться или становиться в определенное отношение к другим объектам.
Exactly!
Характеристики объекта
• Состояние
• Поведение
• Идентичность (индивидуальность)
СостояниеПеречень всех возможных свойств объекта, а также их текущие значения (обычно динамические).
Поведение
Характеризует то, как объект воздействует или подвергается воздействию других объектов с точки зрения изменения состояния этих объектов и передачи сообщений.
Поведение
Поведение объекта полностью определяется его действиями
Идентичность
Операция
Влияние одного объекта на другой
Метод
Операции, выполняемые над данным объектом или выполняемые данным объектом, называются методами(методической частью объекта) и входят составной частью в определение объекта.
Основные виды операций
• Модификатор (set-метод)• Селектор (get-метод)• Итератор• Конструктор• Деструктор
Понятие класса
Объект, свойства которого не имеют конкретных значений, фактически является классом, т.е. класс – это множество объектов, связанных общностью структуры и поведения.
Unified Modeling Language (UML)
Описание класса
Лекция
темаинтересностьпродолжительность
прослушать()забить_и_пойти_на_пиво()
Описание класса
Лекция
темаинтересностьпродолжительность
прослушать()забить_и_пойти_на_пиво()
Имя класса
Описание класса
Лекция
темаинтересностьпродолжительность
прослушать()забить_и_пойти_на_пиво()
Имя класса
Поля
Описание класса
Лекция
темаинтересностьпродолжительность
прослушать()забить_и_пойти_на_пиво()
Имя класса
Поля
Методы
Описание класса
Лекция
темаинтересностьпродолжительность
прослушать()забить_и_пойти_на_пиво()
Имя класса
Поля
Методы
Описание объекта
Математический анализ: Лекциятема = Понятие многомерного интеграла. Поверхностный интеграл
интересность = АГОНЬ
продолжительность= 90 хвилин
Имя объекта
Поля
Основные принципы ООП
Инкапсуляция
Инкапсуляция
Инкапсуляция
Наследование
Наследование
Полиморфизм
Полиморфизм