객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀
객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성되어있다
물건을 만드는 설명서 , 붕어빵 틀 이라고 생각하면 된다
같은 종류의 객체를 여러 개 생성해야 하는 경우에 class
를 사용한다
class Monster {
power = 10;
constructor(aaa) {
this.power = aaa;
}
attack = () => {
console.log("공격하자!!");
console.log("내 공격력은 " + this.power + "야!!!");
};
}
class 공중몬스터 extends Monster {
constructor() {
super(20);
}
run = () => {
console.log("날아서 도망가자");
};
}
class 지상몬스터 extends Monster {
constructor() {
super(50);
}
run = () => {
console.log("뛰어서 도망가자");
};
}
const mymonster1 = new 공중몬스터();
mymonster1.attack(); // 공격하자!! / 내 공격력은 20야!!!
mymonster1.run(); // 날아서 도망가자
const mymonster2 = new 지상몬스터();
mymonster2.attack(); // 공격하자!! / 내 공격력은 50야!!!
mymonster2.run(); // 날아서 도망가자
extends
로 부모의 속성을 상속 받으며 다른 속성은 따로 빼줄 수 있다
constructor
부분에 있는 super()
는 부모의 함수를 호출할 때 사용된다
객체지향프로그래밍(OOP, Object Oriented Programming) 의 약자로
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 '객체'들의 상호작용으로 프로그램 로직을 구성하는 컴퓨터 프로그래밍 패러다임이다
프로그래밍 패러다임(Programming Paradigm)
프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다.
구체적인 사물들의 공통적인 특징을 파악해서 하나의 개념(집합)으로 다루는 수단
ex) 사과, 딸기, 바나나 --> 과일
하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것을 의미
정보 은닉
상속이란 기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념입니다.
다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해줌
형태는 같지만 다른 기능을 하고 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력
MVC 는 Model, View, Controller 의 약자다
데이터를 가진 객체를 모델이라 칭한다
사용자가 편집하길 원하는 모든 데이터를 갖고있어야함
사용자가 볼 결과물을 생성하기 위해 모델에서 정보를 얻어옴
HTML, CSS, Javascript 들을 모아둔 컨테이너
사용자의 요청을 파악 후 그에 맞는 데이터를 Model에 요청하고 데이터를 반영해 사용자에게 알려줌