본문 바로가기

OOP

(4)
private vs protected vs public private protected public 접근 가능 범위 해당 클래스 내 하위 클래스까지 어디서든지
Overloading vs Overriding Overloading/오버로딩 함수의 이름은 같지만 파라미터의 타입/수가 다른 함수를 중복으로 선언하는 것 함수의 로직은 같으나 파라미터만 달라질 때 사용할 수 있다. 파라미터의 수가 달라질 때는 순서대로 뒤에 차곡차곡 추가되어야한다. interface Print { print(data: string): string; print(data: number): number; print(data: string, extraData: number): string; // 파라미터 차곡차곡 print(extraData: string, data: number): string; // 차곡차곡이 아니라서 이건 안됨 } Overriding/오버라이딩 부모 클래스의 함수 구현 내용을 재정의하여 사용하는 것 --> 부모 클래스에..
OOP의 4가지 특징(캡슐화, 추상화, 상속, 다형성) 1. 캡슐화(Encapsulation) 데이터와 코드를 외부에서 알지 못하도록 하여 보호한다. 외부에서는 오직 public이나 protected 레벨로 공개된 객체나 메서드만 호출할 수 있으며, 내부 내용은 알지 못한다. 내부에 선언된 변수의 경우 getter/setter를 활용해서 접근할 수 있게 한다. 2. 추상화(Abstraction) 여러 객체들의 공통적인 속성과 메서드만를 정의해놓는 것이다. 하나의 속성이라도 abstract 키워드가 있으면 abstract class가 되어야한다. 추상 클래스(abstract class)내에 abstract 키워드로 정의된 메서드는 하위 클래스에서 반드시 구현해야하는 메서드임을 명시하는 것이다. 클래스의 틀을 정의해놓는다. 코드를 유지보수하기 좋다. abstra..
DI(Dependency Injection) 의존성 주입이란? DI란 두 클래스 간의 관계를 클래스 외부에서 설정하는 개념이다. 클래스에서 특정 클래스를 직접적으로 정의하지 않고, 두 클래스 사이에 인터페이스를 두고 런타임 시에 두 클래스의 관계를 동적으로 주입하는 것이다. 이렇게 하면 두 클래스 간의 의존 관계가 고정되지 않아서 유연하고 결합도(Coupling)가 낮은 모델을 만들 수 있다. 의존성이란? 한 클래스에서 다른 특정 클래스를 직접 사용하는 것 결합도(Coupling)/의존도란? 어떤 모듈이 다른 모듈에 의존하는 정도 예시) DI가 아닌 클래스 내 다른 클래스를 직접 사용할 때 class Kimchi { } class Milk { } class Refrigerator { private food:Kimchi; constructor(food:Kimchi) ..