객체지향의 4대특징 (oop의 4대특징) - 이론 기억하기 위해 기록

이희수·2022년 12월 26일
0

객체지향

목록 보기
1/2

객체지향 4대 특징

캡상추다 라고 외우기


객체지향 프로그래밍(object oriented programing)-oop

객체는 class에서 찍어낸 데이터다 이론적으로는

class를 만들어 사용한다는 뜻과는 많이 다르지 않다

개체지향의 단어는 ? class를 사용하는 4대특징이다 라고 일단 생각하자



1.추상화 (Abstraction)

모델링 이라는 말과 비슷하다

-예시로 골프연습장 회원관리 프로그램을 만들었다

하지만 그 회원의 데이터 안에는 그날 어떤 프로가 교육을 했는지 등 심화적인 여러가지 내용들이 있을것이다

하지만 이러한 것들은 골프연습장 회원관리 프로그램의 목적에서 벗어나 그리 중요하지 않다고 생각해보자 중요한건 회원의 정보다 연습장에 어떤일이 있을때 회원의 이름과 전화번호를 알아야 연습장의 특이사항을 회원한테 연락할수 있다

회원이름, 회원전화번호만 필요할수도 있다 이것들만 뽑아서 만들어 내는것을 모델링,추상화 라고한다

++필요한것만 뽑아서 만들어 낸것 하나의 분류(class로 만든것)을 모델링 이라고 함



2.캡슐화 (Encapsulation)

-회원의 이름,전화번호, 수강기간 등의 정보를 하나로 묶어서 다룬다

*연관된 데이터 속성(상태)와 메서드(기능)을 하나의 class로 묶어서 활용한다

-캡슐화와 연관된 은닉화 (information Hiding)

회원 정보중에 이름,연락처,수강기간등은 변경할수 있지만

회원의 주소는 변경할수 없게한다 와 관련된 개념이 은닉화와 관련된 내용이다

(캡슐화 진행시 접근제어자 private, public 을 사용해 객체 외부에서 내부 데이터의 접근 통제 가능) -> (추후다시 기록)



3.상속성(Inheritance) 재사용 / 확장

부모 class의 속성,메서드를 자식 class에서 물려받는다


-상속을 통한 코드 재활용 -> 생산성 증가

-객체지향 개념에서 class가 다른 타입과 구별되는 결정적이 차별점이 있다 (추후 다시 기록)

4.다형성(Polymorphism) 사용편의 / 동적바인딩 (추후 재기록 예정)

한 객체가 여러가지 타입 형태로 저장, 다양한 메서드의 형태로 동작이 가능

(하나는 객체 부모의 타입으로 저장도가능, 프로토콜 타입으로도 저장이가능)

-하나의 객체가 다양한 방식으로 동작가능(동적 바인딩/ 메서드 디스패치)

(오버라이딩과 오버로딩을 통해 하나의 메서드나 클래스를 다양한 방법으로 동작시키는 것을 포함한 개념)



다형성은 추후 진도나가서 다시 기록

지금은 이해가 어려움

들으면서 쓰면서 생각하기

0개의 댓글