- Привет, ребята, я закончил абстрактный о Оопе, и я хочу поделиться своими аннотациями с вами. Это мой первый пост, тогда, если вы найдете какие-либо ошибки, комментарий. Я надеюсь, вам понравится это!
Преступник
- Программист может поставить связанные функции вместе в одном файле, но группировка – это только конвенция, а компилятор не применяет его в значительной степени.
Ов
- В OOP логическое расположение кода изменено. Вместо неформального расположения функций в разные файлы функциональность официально и плотно сгруппированы с тем, на который он работает.
- Вы можете использовать легко библиотеки – повторное использование кода
- Особенности модульности
- Несовершеннолетний клиентский язык должен поощрять правильное поведение клиента, препятствовать общим клиентским ошибкам и вежливо предупредить клиента, если есть ошибка
Базовые концепты
Класс
- Класс как тип на классическом языке. Вместо того, чтобы просто сохранить размер и структурную информацию для его данных, класс также хранит операцию, которая будет применяться к данным.
- Класс + поведение
- Это создает логическое сцепление между данными и операциями на этих данных.
- Связывать глаголы своими существительными.
- Имена классов всегда начинаются с персонажей капитала
Пример класса в JavaScript
class Car {
constructor(_factory, _model){
this.factory = _factory
this.model = _model
}
}
- Конструктор – это тип подпрограммы, называемого для создания объекта.
- Это готовит новый объект для использования.
Объекты
- Объект представляет собой значение выполнения, которое хранит состояние и принадлежит к какому классу.
- Объекты знают, в каком классе они принадлежат, и поэтому они автоматически знают, какие операции они способны.
- Слово «экземпляр» – это другое слово «объект»
Пример того, как создать экземпляр объекта в JavaScript
class Car {
constructor(_factory, _model) {
this.factory = _factory
this.model = _model
}
}
// "New" show you will create an object.
const ford = new Car('Ford', 'Mustang')
Массаж и метод
- OOP использует «сообщения» вместо вызовов функций.
- Метод ≠ Функции
- Объект для эксплуатации на себя.
- Объект похож на приемник.
- Он знает, какие операции они могут выполнять, потому что он знает свой класс, а класс определяет все методы или операции для его экземпляров.
Пример класса в JavaScript
class Car {
constructor(_factory, _model) {
this.factory = _factory
this.model = _model
}
turnOn() {
return "Car is turning on... Turned on."
}
turnOff() {
return "Car is turning off... turned off"
}
}
// "New" show you will create an object.
const ford = new Car('Ford', 'Mustang')
Сообщение Отправить синтаксис
- Почти все языки используют синтаксис: добавление сообщения на нужный приемник с точкой.
Пример
class Car {
constructor(_factory, _model) {
this.factory = _factory
this.model = _model
}
turnOn() {
return "Car is turning on... Turned on."
}
turnOff() {
return "Car is turning off... turned off"
}
}
Синтаксис C ++, Java и JavaScript
objectInstance.method();
Синтаксис Python
objectInstance.method()
PHP синтаксис
$objectInstance->method();
Важные принципы
Инкапсуляция
- Относится к защите внутренних органов объекта из прямых манипуляций клиентом.
- Клиент может отправлять сообщения, но он не может изменить биты в объекте.
- Состояние объекта касается только его собственных методов.
// In any cases you need to use babel-presets.
class Car {
factory;
model;
#year = 2021
constructor(_factory, _model) {
this.factory = _factory
this.model = _model
}
get factory() {
return this.factory
}
get model() {
return this.model
}
get year() {
return this.#year
}
turnOn() {
return "Car is turning on... Turned on."
}
turnOff() {
return "Car is turning off... turned off"
}
}
- Я объясню общественные, частные и защищенные атрибуты еще один день. Они также действительно важные концепции.
- Читайте о Вавиле
Наследование
- Модульность и инкапсуляция, пожалуй, являются наиболее важными концепциями ООП.
Классы иерархии
- Классы в Оопе расположены в дереве, как иерархии.
- Во-первых, у нас есть «суперкласс». Это класс над ним в дереве.
- Все классы ниже – «подклассы»
- Иерархия помогает добавить логику в коллекцию классов.
Пример
Используя наследство
- Это процесс, с помощью которого класс наследует свойства его суперклассов.
- Методы унаследовали
class Player {
constructor(_color, _age, _name){
this.color = _color
this.age = _age
this.name = _name
}
walk() {
return "I'm walking now"
}
run() {
return "I'm running now"
}
}
class Knight extends Player {
constructor(_color, _age, _name) {
super(_color, _age, _name)
}
shout() {
return "I'm shouting now, HAAAAAAAAAAAAAAAAAH"
}
}
Полиморфизм
- Многие классы в программе будут отвечать на некоторое общее сообщение.
- Если вы не знаете, какой метод был унаследован, полиморфизм поможет переписать этот метод.
- Важно, когда ваш код достаточно сложен, что вы больше не уверены в точном классе объекта.
class Player {
constructor(_color, _age, _name){
this.color = _color
this.age = _age
this.name = _name
}
walk() {
return "I'm walking now"
}
run() {
return "I'm running now"
}
}
class Knight extends Player {
constructor(_color, _age, _name) {
super(_color, _age, _name)
}
run () {
return "I'm running more then everybody now"
}
shout() {
return "I'm shouting now, HAAAAAAAAAAAAAAAAAH"
}
}
Оригинал: “https://dev.to/httplucasreis/oop-concepts-12l7”