Здесь я попытался изложить концепции oops простым языком с примерами, давайте посмотрим.
Ообъектно-оориентированное pпрограммирование (ООП) относится к типу компьютерное программирование (дизайн программного обеспечения), при котором программисты определяют тип данных структуры данных, а также типы операций (функций), которые можно применять к структуре данных.
Проще говоря: объектно-ориентированное программирование (ООП) — это парадигма программирования, основанная на концепции «объектов». Создавайте объекты, повторно используйте их в программе и манипулируйте этими объектами для получения результатов.
а) Класс
Класс – это группа подобных сущностей. Это только логический компонент, а не физический объект. Класс чертеж для объекта. Он содержит свойства и методы/функции. Класс не занимает места.
Пример:Класс Car может иметьсвойства-скорость при торможении методов.
class MyClass { // The class public: // Access specifier int myNum; // Attribute (int variable) string myString; // Attribute (string variable) };
б) Объект
Объект может быть определен как экземпляр класса, и в программе может быть несколько экземпляров класса. Объект содержит как данные, так и функцию, которая работает с данными.
Пример. Собака является объектом, потому что у нее есть такие состояния, как цвет, имя, порода и т. д., а также поведение, такое как виляние хвостом, лай, еда. , и т.д.
MyClass myObj; // Create an object of MyClass // Access attributes and set values myObj.myNum = 13; myObj.myString = "Some text";
в) Метод
Метод – это набор операторов, которые выполняют определенную задачу и возвращают результат вызывающей стороне.
Методы экономят время и помогают нам повторно использовать код без повторного ввода. код.
Пример:вычислитьPrize()
d) Передача сообщений
Объекты взаимодействуют друг с другом, отправляя и получая информацию друг другу. Передача сообщений включает в себя указание имени объекта, имени функции и информации для отправки.
д) Наследование
Это механизм, в котором один класс может наследовать функции (поля и методы) другого класса. Он создает отношения родитель-потомок между двумя классами. Он обеспечивает возможность повторного использования кода. Он используется для достижения полиморфизма во время выполнения.
class Animal {
// eat() function
// sleep() function
};
class Dog : public Animal {
// bark() function, we can use functions of Animal class here
};
е) Полиморфизм
Если одна задача выполняется разными способами, это называется полиморфизмом. Полиморфизм — это концепция, при которой объект ведет себя по-разному в разных ситуациях. Существует два типа полиморфизма: полиморфизм времени компиляции и полиморфизм времени выполнения.
Полиморфизм времени компиляции достигается путем перегрузки методов.
Пример:
connect( )
connect(int a)
connect(int a, String age)
Полиморфизм во время выполнения достигается за счет переопределения методов
Пример:
public class Дополнение {
func добавить() {}
}
общедоступный класс Результат: Добавление {
override func add() {
// ваш код находится здесь
}
}
class
MyClass{
// function with 1 int parameter
void
func(int
x) {
cout << "value of x is "
<< x << endl;
}
// function with same name but 1 double parameter
void
func(double
x) {
cout << "value of x is "
<< x << endl;
}
// function with same name and 2 int parameters
void
func(int
x, int
y) {
cout << "value of x and y is "
<< x << ", "
<< y << endl;
}
};
ж) Абстракция
Абстракция — это концепция сокрытия внутренних деталей и описания вещей простыми словами. Абстракция может быть достигнута в объектно-ориентированном программировании, таком как инкапсуляция и наследование.
Пример:снимите деньги в банкомате, пользователь знает только ввести пароль и сумму, но знает процесс, происходящий в фоновом режиме.
class Adder { public: // constructor Adder(int i = 0) { total = i; } // interface to outside world void addNum(int number) { total += number; } // interface to outside world int getTotal() { return total; }; private: // hidden data from outside world int total; }; int main() { Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
h) Инкапсуляция
Связывание (или объединение) кода и данных вместе в единое целое называется инкапсуляцией. Данные в классе скрыты от других классов, поэтому он также известен как сокрытие данных.
Ключевые слова модификатора доступа используются для инкапсуляции в объектно-ориентированном программировании. т. е. публичный, частный и т. д.
Пример: капсула, в нее завернуты разные лекарства.
class
Encapsulation {
private: // data hidden from outside world int
x;
public:
// function to set value of
// variable x
void
set(int
a) {
x =a;
}
// function to return value of
// variable x
int
get() {
return
x;
}
};
// main function
int
main() {
Encapsulation obj;
obj.set(5);
cout<<obj.get();
return
0; }
i) Ассоциация
Ассоциация – это отношение между двумя объектами. Он определяет разнообразие между объектами. В этой концепции ООП у всех объектов есть свой жизненный цикл, и нет владельца.
Пример: рассмотрим класс, многие ученики могут общаться с одним учителем, а один студент также может общаться с несколькими учителями.
Между объектами может быть четыре типа ассоциации:
- Один к одному
- Один ко многим
- Многие к одному и
- Многие ко многим
public class BlogAccount { private BlogEntry[] blogEntries; } public class BlogEntry { Int32 blogId; string caption; string text; }
j) Агрегация
Агрегация представляет собой особый тип ассоциации. В совокупности объекты имеют свой собственный жизненный цикл, но есть право собственности. Он представляет собой слабую связь между объектами.
Пример: рассмотрим класс, отдел и учителя. Здесь один учитель не может принадлежать нескольким отделам, но даже если мы удалим отдел, объект учителя никогда не будет уничтожен.
public class BlogAuthor { private Int32 authorId; private string name; } public class BlogAccount { private BlogEntry[] blogEntries; }
л) Состав
Композиция — это особая форма агрегации. Их еще называют «смертельными» отношениями. Если вы удалите родительский объект, все дочерние объекты будут удалены автоматически.
Пример: В школе есть классная комната. Здесь комната не может существовать без Школы.
public class House { private Room room; public House() { room = new Room(); } }
м) Связь
Сцепление относится к знанию, информации или зависимости другого класса. Он возникает, когда классы знают друг о друге. Если класс имеет подробную информацию о другом классе, существует сильная связь.
м) Сплоченность
Сплоченность относится к уровню компонента, который выполняет одну четко определенную задачу. Единая четко определенная задача выполняется с помощью очень согласованного метода. Слабо связный метод разделит задачу на отдельные части.
Вы всегда будете стремиться к высокой сплоченности и низкой связанности в ООП. Для получения более подробной информации перейдите по ссылке это.
Спасибо за примеры
https://www.infoworld.com/article/3029325/exploring-association-aggregation-and-composition-in-oop.html
https://www.tutorialspoint .com
https://www.geeksforgeeks.org
Спасибо, удачного кодирования!