728x90
객체 지향 프로그래밍
의의: 데이터와 기능이 별개로 취급되지 않고, 한 번에 묶여서 처리 가능
OOP
- 사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론
- 프로그램 설계 철학
- 모든 것은 객체로 그룹화
- 4가지 컨셉
캡슐화(encapsulation): 데이터와 기능을 하나의 단위로 묶는 것, 코드나 데이터의 은닉에 포커스
// TypeScript 문법입니다
// 클래스 내부에서만 쓰이는 속성 및 메서드를 구분시키기 위해 private이라는 키워드를 제공
// 은닉화를 도와주는 기능이 JavaScript에 지원하는 브라우저가 적음
class Animal {
private name: string;
constructor(theName: string) {
this.name = theName;
}
}
new Animal("Cat").name; // 사용 불가
// Property 'name' is private and only accessible within class 'Animal'.
상속(inheritance): 부모 클래스의 특징을 자식 클래스가 물려받는 것
추상화(abstraction): 실제 노출되는 부분은 단순하게 만듦, 단순화 포커스
//추상화는 속성과 메서드의 이름만 노출시켜서 사용을 단순화한다는 의미
//추상화는 인터페이스(interface)의 단순화를 의미
// TypeScript 문법
interface ClockInterface {
currentTime: Date;
setTime(d: Date): void;
}
class Clock implements ClockInterface {
currentTime: Date = new Date();
setTime(d: Date) {
this.currentTime = d;
}
constructor(h: number, m: number) {}
}
다형성(polymorphism): 다양한 형태
클래스(청사진)+constructor(생성자, 세부사항)=인스턴스
'프로그래밍 > CS' 카테고리의 다른 글
[HTTP/네트워크] (0) | 2022.06.09 |
---|---|
객체지향 프로그래밍 (프로토타입 체인) (0) | 2022.05.26 |
프론트엔드 인터뷰 문제 답해보기 (0) | 2022.05.23 |
Unit8 - [Linux/Git] 기초(코드스테이츠 프론트엔드) (0) | 2022.05.09 |
SQL 알아보기 (0) | 2022.04.04 |
댓글