Object Oriented Programming
"객체 지향 프로그래밍"
객체
: 지향 : 프로그래밍
= 독립적 단위
: 우선시 한다 : 컴퓨터에서 동작하는 프로그램을 코드로 작성하는 일
사람들이 어떤 하나의 문제를 객체라는 대상을 만들어 보다 정보를 효율적으로 관리
실제 세계를 모델링한 것
우리가 주변의 실세계에서 사물을 인지하는 방식을 프로그래밍에 접목하려는 사상 (휴대폰, 자동차, 책 등 어떤 대상이 될 수 있다.)
저장 공간에서 할당되어 값을 가지거나 식별자에 의해 참조되는 공간
관련된 데이터와 함수(일반적으로 여러 데이터와 함수로 이루어지는데,
객체 안에 있을 때는 보통 프로퍼티와 메소드라고 부릅니다)의 집합..!
필요한 데이터를 추상화시켜 상태(property)와 행위(method)를 가진 객체를 만들고 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍
- 클래스 (틀)
: 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성(attribute)와 행위(behavior)를 변수와 메서드롤 정의한것
- 인스턴스
: 클래스에 정의한것을 토대로 실제 메모리상에 할당되는 것 (클래스 산출물)
: 불필요한 정보 배제하고 중요 정보만 표현
공통의
속성이나 기능을 묶어 이름을 붙이는 것
3. 캡슐화 (은닉성)
: 관련된 객체의 속성, 행위를 하나로 묶음
외부 접근을 막아 감추어 숨김
* 접근제한자: 객체 멤버에게 접근 제한을 걸어둠
- public: 모든 접근 허용
- protected: 같은 폴더 내 객체, 상속 관계 객체만 허용
- private: 현재 객체 내에서만 허용
- default: 같은 폴더 내 객체만 허용
(js에서는 this를 통해 public 구현)
: 코드를 재수정없이 재활용
하는것
남이 짜놓은 소스 “라이브러리”를 내 의도에 맞게 수정 가능
부모클래스의 속성과 기능을 그대로 이어받아 사용 가능하고 기능의 일부분을 변경해야할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것
: 하나의 이름(변수명, 함수명)이 상황에 따라 다양한 의미로 해석
오버라이딩
: 부모 클래스와 같은 이름 메서드 자식 클래스에서 재정의
오버로딩
: 같은 클래스 내 같은 이름 메서드 여러 개 정의
매개변수 타입, 개수를 다르게 하여 매개변수에 따라 다르게 호출
- 참조
https://webclub.tistory.com/156
https://itpangpang.xyz/105