yoogail105 / KkokkoSwift

꼬리에 꼬리를 무는 swift 개념 정리
28 stars 0 forks source link

# 객체 지향 프로그래밍(OOP: Object-Oriented Programming) #42

Open yoogail105 opened 2 years ago

yoogail105 commented 2 years ago

객체 지향 프로그래밍(OOP: Object-Oriented Programming)

객체 지향 프로그래밍은 프로그램을 어떻게 설계해야 하는지에 대한 개념이자 방법론 중의 하나이다. 객체 지향 프로그래밍, OOP는 왜 등장하게 되었을까?

1. 절차적 프로그래밍(Procedural)

1-1. 단점

2. 구조적 프로그래밍

2-1. 단점

yoogail105 commented 2 years ago

3. 객체 지향 프로그래밍

객체 지향 프로그래밍에서는 객체와 클래스에 대해서 알아야 한다.

객체?

클래스?

class Teacher {
    var subject: String!
    var gender: String!

    func teach() {}
    func ask() {}
    func answer() {}
}
let jiyoungLee: Teacher = Teacher()
jiyoungLee.subject = "society"
jiyoungLee.gender = "woman"
jiyoungLee.teach()
yoogail105 commented 2 years ago

OOP 특징: 추상화, 캡슐화(은닉화), 상속성, 다형성

1. 추상화(Abstraction)

2. 캡슐화(Encapsulation)

image

cf. 은닉화

3. 상속성(Inheritance)

4. 다형성(Polymorphism)

🔖 참고

yoogail105 commented 4 months ago

다형성 Polymorphism 구현

1. 서브타입 다형성(Subtype Polymorphism): method Overriding

2. 정적 다형성(Static Polymorphism): method Overloading

3. 매개변수 다형성(Parametric Polymorphism): Generic

4. 프로토콜 다형성