Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS] 객체지향의 4대 특징 #42

Closed
seungchan2 opened this issue May 17, 2022 · 0 comments
Closed

[CS] 객체지향의 4대 특징 #42

seungchan2 opened this issue May 17, 2022 · 0 comments
Assignees
Labels

Comments

@seungchan2
Copy link
Owner

객체지향 프로그래밍의 특징으로는 추상화 캡슐화 상속성 다형성이 있음

추상화

관찰자가 관심있는 부분만 가지고 모델링해서 사용하는 것을 의미함

공통적인 특성을 뽑아내서 하나의 분류 클래스 로 만든 것 (모델링)

객체지향 관점에서, 실체들의 공통점을 뽑아내서 클래스로 정의하는 것 자체가 추상화의 개념임

캡슐화

캡슐화는 연관이 있는 속성(상태)과 메서드(기능)를 “하나의 클래스”로 묶어서 활용한다는 개념

추가적으로 은닉화라는 것이 있는데 접근제어자(private, public...)를 사용해 객체 외부에서 내부 데이터의 접근 통제가 가능해짐

상속성

속성과 메서드를 자식클래스에서 그대로 물려받는 개념

상속은 수직 개념이며 확장은 수평 개념입니다.

코드의 재활용이 높아짐

우리가 늘상 사용하는 BaseViewController를 생각하면 됨

다형성

다형성은 하나의 객체가 여러가지 타입의 형태로 저장 될 수 있고, 다양한 메서드의 형태로 동작 가능함을 의미함

오버라이딩을 통해 하위 클래스에서 재정의 할 수 있으며 오버로딩을 통해 동일한 이름의 메서드가 다르게 동작하게 할 수 있음

OOP에서 다형성을 구현하는 방법에는 클래스``프로토콜이 있음

@seungchan2 seungchan2 added the CS label May 17, 2022
@seungchan2 seungchan2 self-assigned this May 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant