객체지향 프로그래밍 (Object-Oriented Programming)
객체지향 프로그래밍 : 프로그램을 여러 개의 독립된 단위인 객체의 모임으로 파악
각 객체는 서로 메시지를 주고 받고 데이터를 처리할 수 있다.
장점
프로그램을 유연하고 쉽게 변경할 수 있도록 작성할 수 있어서 대규모 소프트웨어 개발에 많이 사용된다.
소프트웨어 개발과 유지보수를 간편하게 할 수 있다.
직관적으로 코드를 분석할 수 있다.
클래스에 하나의 문제 해결을 위한 데이터와 메소드를 모아놓은 방식으로 응집력을 강화하고,
각 클래스가 독립적이도록 디자인해 결합력을 약화한다.
주요 특징
추상화
상속
다형성
동적 바인딩
객체
클래스의 인스턴스(실제로 메모리에 할당되어 동작하는 모양을 갖춘 것)
객체는 자신 고유의 속성이 있으며 클래스에서 정의한 행위를 할 수 있다.
클래스는 실제 메모리에 객체를 할당해 인스턴스를 만들기 위한 일종의 설계코드라고 할 수 있다.
클래스에 정의된 모양대로 객체가 생성되고, 객체 간의 메시지를 통해 명령이 실행된다.
스위프트에서는 보통 객체보다는 클래스의 인스턴스라는 표현을 사용한다.
객체 != 인스턴스
객체 == 클래스의 인스턴스
인스턴스는 구조체의 인스턴스, 열거형의 인스턴스 등 다양하게 존재할 수 있고, 객체는 이 중 클래스의 인스턴스를 말한다.
'swift' 카테고리의 다른 글
[swift] ARC | 약한참조 (weak) (0) | 2020.06.11 |
---|---|
[swift] ARC | 강한참조 (Strong) (0) | 2020.06.11 |
[swift] ARC란? (0) | 2020.06.11 |
[swift] 데이터 타입 | Any, AnyObject (0) | 2020.06.08 |
[swift] 스위프트의 언어적 특성 2. 함수형 (0) | 2020.06.08 |