절차적 언어

초기의 프로그래밍 언어는 일반적으로 절차적 언어라고 부름(C, 포트란 등)

절차적 언어는 순차적인 명령의 조합

 

객체 지향 언어

"클래스"라고 부르는 데이터 모델의 청사진을 사용해 코드 작성

현대의 언어들은 대부분 객체 지향의 특징을 갖고 있음(대표적으로 Java, C++, C# 등)

JavaScript: 객체 지향으로 작성 가능

예시

 

 

클래스와 인스턴스

클래스는 일종의 원형, 객체를 생성하기 위한 아이디어나 청사진

인스턴스는 클래스의 사례

클래스는 객체를 만들기 위한 생성자 함수를 포함

 

객체는 일반적인 함수를 정의하듯 만드는데

그냥 실행하는 것은 아니고,

new 키워드를 사용해서 만든다.(이는 새로운 인스턴스를 만드는 방법)

일반적인 다른 함수와 구분하기 위해 클래스는 보통 대문자로 시작하며 일반명사.
일반적인 함수는 적절한 동사를 포함하고 소문자로 시작

이때 예시로

속성은 brand, name, color, currentFuel, maxSpeed가 될 수 있고,

메소드는 refuel(), setSpeed(), drive() 가 될 수 있다.

 

ES5 클래스와, ES6 클래스 작성 문법은 조금 다른데 최근에는 ES6 방법을 주로 사용한다

 

ES5는 prototype이라는 키워드를 사용해야 메서드를 정의할수 있기에.
Car 클래스에 메서드를 추가하기 위해서는 Car.prototype.refuel과 같이 prototype을 이용해야 한다.


ES6에서는 생성자 함수와 함께 class 키워드 안쪽에 묶어서 정의
refuel() {}, drive() {}와 같이 작성되어 있는 부분이다.

.

 



클래스 문법을 이용한 카운터 만들기 예제

class Counter {
  constructor() {
    this.value = 0; // 생성자 호출을 할 경우, this는 new 키워드로 생성한 Counter의 인스턴스입니다
  }
  increase() {
    this.value++
  }
  decrease() {
    this.value--
  }
  getValue() {
    return this.value
  }
}

let counter1 = new Counter() // 생성자 호출
counter1.increase()
counter1.getValue() // 1

+ Recent posts