객체 지향(OOP)
💡 객체 지향(OOP)
'객체지향'은 프로그래밍 패러다임 중 하나이며, 프로그램을 여러 개의 독립된 객체로 나누고 이러한 객체들 간의 상호작용을 통해 프로그램을 설계하고 구현하는 방식을 의미한다. 객체지향 프로그래밍에서는 현실 세계의 사물이나 개념을 소프트웨어적으로 모델링하여 프로그램을 작성하고, 이를 통해 코드의 재사용성, 유지보수성, 확장성이 증가한다.
OOP의 특징
- 추상화 (Abstraction)
복잡한 시스템을 단순화하여 중요한 부분을 강조하고 불필요한 부분을 숨기는 것을 의미한다.
→ 클래스나 프로토콜을 통해 데이터와 동작을 추상화하여 필요한 정보만을 노출시키는 것 포함 - 캡슐화 (Encapsulation)
객체의 상태(데이터)와 행동(메서드)를 하나로 묶고 외부에서의 접근을 제한하여 객체 내부의 세부 구현을 숨기는 것을 의미한다.
→ 객체 간의 의존성을 줄이고 코드를 보호하며 유지보수성을 높일 수 있음 - 상속 (Inheritance)
기존 클래스에서 정의된 속성과 메서드를 다른 클래스에서 재사용하는 것을 말한다.
→ 부모 클래스(상위 클래스, 슈퍼 클래스)의 특성을 자식 클래스(하위 클래스, 서브 클래스)가 물려받아 사용할 수 있음 - 다형성 (Polymorphism)
동일한 인터페이스를 가진 다른 클래스들이 각각의 방식으로 동작할 수 있는 능력을 말한다.
→ 오버라이딩과 연관되어 있으며, 서로 다른 클래스들이 동일한 메서드를 호출할 때 각 클래스의 오버라이딩된 메서드가 실행 됨- 오버라이딩 (Overriding)
상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 말한다.
→ 자식 클래스에서 부모 클래스의 동일한 메서드 이름을 사용하여 내용을 변경하거나 확장할 수 있음 - 오버로딩 (Overloading)
동일한 함수나 메서드 이름을 가지지만 매개변수의 타입, 개수, 순서 등이 다른 여러 버전의 함수를 정의하는 것을 말한다.
→ 동일한 이름의 다양한 버전의 함수를 사용할 수 있음
- 오버라이딩 (Overriding)
' 𝗔𝗣𝗣𝗟𝗘 > SWIFT : GRAMMAR' 카테고리의 다른 글
Swift 기초 문법 - 상속(Inheritance) (0) | 2024.03.11 |
---|---|
Swift 기초 문법 - 클래스, 구조체, 열거형 (0) | 2024.03.11 |
Swift 기초 문법 - Collection Type(Array, Set, Dictionary) (0) | 2024.03.08 |
Swift 기초 문법 - Stack(스택) & Queue(큐) (0) | 2024.03.08 |
Swift 기초 문법 - 옵셔널(Optional) (2) | 2024.03.07 |