클래스와 인스턴스라는 용어를 이해할 수 있다.
class = 청사진 , 원형 ( original form )
그 청사진을 바탕으로 한 객체 = 인스턴스 , 사례 ( instance object)
new 키워드의 사용법을 이해할 수 있다.
새로운 인스턴스를 만드는 방법
class 키워드의 사용법을 이해할 수 있다.
class의 앞글자는 대문자, 그리고 일반 명사로 만든다.
현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다.
class Human { constructor(firstName,lastName,age,weight) { this.firstName = firstName this.lastName = lastName this.age = age this.weight = weight } 메소드 () { console.log('메소드') } }
객체 지향 프로그래밍 특징을 이해할 수 있다.
객체 지향 프로그래밍이라는 패러다임이 등장하면서 기존의 절차적 언어에서 벗어나(단순히 별개의 변수와 함수로 순차적으로 작동하는 것을 넘어) 데이터의 접근과, 데이터의 처리 과정에 대한 모형을 만들어 내는 방식을 고안해냈다. 데이터와 기능이 별개로 취급되지 않고, 한번에 묶어서 처리할 수 있게 되었다. 인간의 사고방식과 유사하게 프로그래밍 하는 것이다.
OOP( Object-Oriented Programming ) 은 설계 철학이며 모든 것은 '객체'로 그룹화 된다.
아래 4가지의 주요 OOP 개념을 통해 재사용성(반복)을 얻는다.
캡슐화
데이터와 기능을 하나의 단위로 묶는 것
은닉(hiding): 구현은 숨기고, 동작은 노출시킴
느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음
상속
기본 클래스(base class)의 특징을 파생 클래스(derive class)가 상속
extends와 super를 사용한다.
추상화
인터페이스(interface)[클래스 정의 시, 메소드와 속성만 정의한 것]를 단순화
추상화는 클래스를 사용하는 사람이 필요하지 않은 메소드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있다. 반면에 캡슐화는 코드나 데이터의 은닉화에 초점이 맞추어져 있다.
다형성
다형성(Polymorphism)이라는 단어의 poly는 "많은", 그리고 morph는 "형태"라는 뜻을 가지고 있다. 같은 메소드라 하더라도 다른 방식으로 구현될 수 있음을 의미한다.
JavaScript에서 객체 지향 프로그래밍을 구현할 수 있다.
O
Prototype이 무엇인지 이해할 수 있다
O
객체 지향 프로그래밍의 상속(Inheritance)의 개념을 이해하고 코드로 작성할 수 있다.
O
상속관계를 가진 현실 세계의 모델을 코드로 작성할 수 있다.
O
클래스 상속의 원리를 이해할 수 있다.
O
Prototype chain을 이해하고 설명할 수 있다. (proto)
O
34번 ~ 49번
16문제를 풀었다. 내일은 codewars 5kyu까지만 올려놓고 프로그래머스도 풀어봐야겠다.