본문 바로가기

swift

[swift] 스위프트의 언어적 특성 1. 객체지향

객체지향 프로그래밍 (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