클래스와 인스턴스
비유
대장간에는 검을 만들 거푸집과 1000'c의 뜨거운 강철이 있다. 대장장이는 거푸집이 망가지지 않고, 강철이 적지 않게 있다면 검을 계속 해서 만들 수 있을 것이다.
클래스와 인스턴스는 각각 거푸집과 1000'c의 강철에 해당한다. 대장장이는 코딩을 하고 있는 자신이다.
물론 우리는 1000'c의 강철이 무제한으로 있다.
따라서 우리는 무한대로 검을 만들 수 있다.
클래스(class), 인스턴스(instance)란?
자바스크립트나 객체지향 언어에서 클래스는 속성과 행위를 정의한 것이다.
따라서 마치 거푸집의 모양이 다르다면 다른 모양의 검이 나오는 것처럼 클래스에 속성,행위에 따라 각각 다른 인스턴스(장검, 단검, 양날검 등)를 만들어 낼 것이다.
class, instance Ex)
class Human {
constructor(name, age) {
this.name = name
this.age = age
}
whoAreYou() {
return `나는 ${this.name}라고 하고 ${this.age} 살이야`
}
}
const willi = new Human('willi', 25) //나는 'willi'라고 하고 25 살이야
class
1.클래스 Human을 생성하였다.
2.Human의 속성(이름, 나이)을 지정해주었다.
3.human의 행위(함수)를 지정해주었다. > 행위는 생성자 밖으로 지정해야함.
instance
1.이름 willi라는 새로운 사람을 선언하고 이름과 나이 지정
2.새로운 사람 생성
심화 ex)
class parents {
constructor(name, money, car, home) {
this.name = name
this.money = money
this.car = car
this.home = home
}
AreYouAGoldDigger() {
return `우리 부모님은 ${this.money}$와 차 ${this.car}대와 집 ${this.home}채가 있어`
}
}
const billi = new parents('billi', 1000, 3, 3)
const jamie = new parents('jamie', 500000, 50, 20)
이건해보기~
부모클래스에서 자식클래스로 속성,메소드 전달하기
class의 속성과 행위를 다른 class에 똑같이 사용하고 싶은데..
그럴땐!
ctrl+c,v를 이용하시면.. 적은량이라면 상관없겠지만 많은 양이라면 혼선을 줄 수 있습니다.
따라서!
저희는 extends와 super를 통해 부모의 속성,행위 값을 자식에게 전달해줄 겁니다.
예시!
부모
class student {
constructor(age,sex){
this.age = age
this.sex = sex
}
}
자식
const student = require('student');
class Bee extends student {
constructor(name,age) {
super(age)
this.name = name
this.grade = 80
}
test(){
return `내 나이${this.age} 내 이름${this.name} 난 공부가 하기싫다.`
}
}
const billi = new Bee('billi',15)
//billi.test()
super => 자식클래스가 부모클래스의 생성자를 가져옴
extends => 자식클래스가 부모클래스의 메소드를 가져옴
여기까지가 class의 상속이였습니다~짝짝짝
Author And Source
이 문제에 관하여(클래스와 인스턴스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sdj0404/클래스와-인스턴스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)