09-1 클래스의 기본 기능
1. 추상화
현실의 객체는 수많은 속성을 가지고 있고 그 속성들이 모두 데이터가 될 수 있다.
그러나 프로그램을 만들 때는 수많은 정보 중 필요한 데이터가 무엇인지 생각할 필요가 있다.
병원에서 사용하는 업무 프로그램을 만든다면 의사, 간호사, 환자, 예약 기록, 진료 기록 등만 사용하면 된다.
이와 같이 프로그램에 필요한 요소만 사용해서 객체를 표현하는 것을 추상화라고 한다.
2. 클래스 선언하기
객체들을 정의하고 활용해서 프로그램을 만드는 것을 객체 지향 프로그래밍이라고 한다.
클래스와 프로토타입으로 객체를 효율적으로 만들 수 있다. 클래스를 만드는 법에 대해서 알아보자.
// 클래스 이름의 첫 글자를 대문자로 지정하는 것이 개발자들의 약속이다.
class 클래스 이름{
}
클래스를 통해 만든 객체를 인스턴스라고 하는데 인스턴스는 new 키워드를 통해 만들 수 있다.
new 클래스 이름( )
<script>
class Student {
}
const student = new Student( )
</script>
3. 생성자
생성자는 new 연산자를 통해 객체를 생성할 때 처음 호출되는 메소드이다. 메소드의 이름은 constructor로 지정했지만
'new 클래스 이름( )' 처럼 클래스 이름으로 호출된다. 생성자는 속성을 추가하는 등 객체의 초기화 처리를 한다.
class 클래스 이름{
constructor( ){
}
}
<script>
class Student{
constructor(이름, 국어, 영어, 수학, 과학){
this.이름 = 이름
this.국어 = 국어
this.영어 = 영어
this.수학 = 수학
this.과학 = 과학
}
}
const students = [ ]
students.push(new Student('철수', 87, 93, 76, 98))
students.push(new Student('영희', 95, 88, 80, 75))
</script>
ㄴ Student라는 클래스는 이름, 국어, 영어, 수학, 과학이라는 속성을 가지고 있고 new 연산자를 통해 객체를 생성한다.
4. 메소드
<script>
class Student{
constructor(이름, 국어, 영어, 수학, 과학){
this.이름 = 이름
this.국어 = 국어
this.영어 = 영어
this.수학 = 수학
this.과학 = 과학
}
getSum( ){
return this.국어 + this.영어 + this.수학 + this.과학
}
getAverage( ){
return this.getSum( ) / 4
}
}
const students = [ ]
students.push(new Student('철수', 87, 93, 76, 98))
students.push(new Student('영희', 95, 88, 80, 75))
console.log(students[0].getSum())
console.log(students[0].getAverage())
console.log(students[1].getSum())
console.log(students[1].getAverage())
</script>

'혼공스보면서 혼공스(JS)' 카테고리의 다른 글
| CH9. 클래스- 클래스의 고급 기능 (0) | 2021.07.19 |
|---|---|
| CH8. 예외처리- 예외 처리 고급 (0) | 2021.07.18 |
| CH7. 문서 객체 모델- 이벤트 활용 (0) | 2021.07.13 |
| CH7. 문서 객체 모델- 문서 객체 조작하기 (0) | 2021.07.12 |
| CH6. 객체- 객체와 배열 고급 (0) | 2021.07.11 |