yes! 🙌
전체적인 청사진, 원형을 클래스라고 한다. 인스턴스는 클래스를 바탕으로 만드는 것이 인스턴스 객체이다. 객체를 영어로 하면 인스턴스다.
yes! 👏
class Car { constructor(brand, name, color) { this.brand = brand; this.name = name; this.color = color; } }; let car1 = new Car('hyundai', 'avante', 'blue'); console.log(car1) // Car {brand: 'hyundai', name: 'avante', color: 'blue'} let car2 = new Car('BMW', 'mini', 'orange'); console.log(car2) // Car {brand: 'BMW', name: 'mini', color: 'orange'}
yes! 👍
메소드: 행동과 관련된 것, 함수같은 것 (사람: 밥먹기, 잠자기, 걷기 등/차: 연료소비, 주행거리 등)
속성: 고정할 수 있는 변수같은 것 (사람: 이름, 성별, 나이 등/차: 브랜드, 이름, 색깔)class Human { constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; this.health = 0; } sleep () { this.health += 8; } eat () { this.health += 6; } }
객제 지향 프로그래밍(Object Oriented Programming)은 데이터와 기능을 한번에 묶어서 처리할 수 있다. 따라서 초기에 절차적으로, 순차적으로 진행되었던 데이터 처리 방식과 다르게 데이터 처리 과정을 모형으로 만들어 처리한다. 구체적인 특징으로는 캡슐화, 상속, 추상화, 다형성이 있다.
- 캡슐화: 데이터와 기능을 하나의 단위로 묶는 것이다. 구현은 숨기고 동작은 노출시킨다. 또 언제든 구현 수정이 가능하다. 따라서 복잡성은 줄이고 재상용성을 높인다.
- 상속: 부모 클래스의 특징을 자식클래스가 물려받는다. 불필요한 반복을 줄일 수 있고 재사용성을 높인다
- 추상화: 실제로 노출되는 부분을 단순화시켜 인터페이스를 단순하게 만들어 준다. 단순화된 사용으로 예기치 못한 변화를 줄여준다.
- 다형성: 동일한 메소드에 대해 조건문 대신 객체 특성에 맞게 다르게 쓰인다.
yes! 👏
yes! 👌
yes! ✌️
yes! 🤓
extends, super를 이용해 상속받을 수 있다. 예를 들어 학생이란 클래스가 있다면, 학생은 인간이므로 인간의 속성과 메소드를 지닌다.class Human { constructor(name, age, gender) { this.name = name; this.age = age; this.gender = gender; this.health = 0; } sleep () { this.health += 8; } eat () { this.health += 6; } } class Student extends Human { constructor(name, age, gender, grade) { super(name, age, gender) // 부모클래스(Human)로부터 상속 받는다. this.grade = grade; } study () { this.health -= 4; } }
yes! 🤗
yes! 😁