객체지향
본 게시물은 객체지향에 대해 노마드 코더님의 강의1과 강의2를 보고 정리하는 글이다.
1. OOP란?
👀 Definition
객체 지향 프로그래밍(oop)은 독립된 단위인 객체들의 상호작용으로 프로그래밍하는 패러다임이다.
2. OOP 특징
2.1 캡슐화
👀 Definition
한 객체가 목적을 위해 필요한 데이터나 메소드를 하나(캡슐 혹은 컨테이너)로 묶는 것
캡슐화를 통해 외부에서 데이터를 직접 접근하는 것을 방지하고, 함수를 통해 접근하는 방식을 사용할 수 있게 된다. 또한, 데이터를 접근하고 수정하는 권한을 지정할 수 있다. 결론적으로 캡슐화는 class안에 있는 데이터나 함수를 잘 정리하는 방법론이다.
📍Example
## 캡슐화가 되지 않은 것
const person = {
name: "kang",
shares: 10000,
company: 'h'
};
function calculate(shares, company){
const sharePrice = getSharePrice(company);
return shares * sharePrice
}
## 캡슐화
class Person{
constructor(
private name: string,
private shares: number,
private company: string
){}
public calculate(){
return this.shares * getSharePrice(this.company);
}
}
const kang = new Person("kang", 7000, 'h');
kang.calculate();
2.2 상속
👀 Definition
부모 클래스에 정의된 데이터 및 함수를 자식 클래스에서 상속받아 사용할 수 있는 것
상속을 통해 부모 클래스의 내용을 자식 클래스에서 재정의 할 필요가 없기 때문에 코드의 재사용성을 극대화 시킬 수 있다. 또한 사용 중인 함수의 로직이 변경될 때, 부모를 바꾸면 자식들이 전부 변경할 수 있기에 코드 관리가 용이해진다.
📍Example
class Person(
constructor(
private name: string,
)
)
2.3 상속
👀 Definition
2.4 추상화
👀 Definition
2.5 다형성
👀 Definition
댓글남기기