TIL 8 | JavaScript - 클래스(Class)

클래스

객체지향 패러다임

객체를 우선적으로 생각해서 프로그램을 만든다는 방법론.

추상화

프로그램에 필요한 요소만 사용해서 객체를 표현하는 것.
복잡한 자료, 모듈, 시스템등으로부터 핵심적인 개념과 기능을 간추려내는 것.

클래스 선언하기

객체지향 프로그래밍

객체들을 정의하고 그러한 객체들을 활용해서 프로그램을 만드는 것.

클래스 - 객체를 만들때 수많은 지원을 하는 대신 많은 제한을 거는 문법.
프로토타입 - 제한을 많이 하지 않지만 대신 지원도 별로 하지 않는 문법.

클래스 생성

클래스를 기반으로 만든 객체를 인스턴스라고 부른다.

class 클래스이름 {

}

인스턴스 생성

클래스 이름은 첫글자를 대문자로 지정하는 것이 개발자들의 약속이다.

new 클래스이름 ()

클래스 - 이전에 살펴보았던 객체를 만드는 함수와 비슷한것.
인스턴스(객체) - 이전에 만들었던 객체를 만드는 함수로 만든 객체와 비슷한것.

생성자

클래스를 기반으로 인스턴스를 생성할때 처음 호출되는 메소드

class 클래스이름 {
  constructor() {
    /* 생성자 코드 */
  }
}

클래스의 고급기능

상속

클래스의 선언코드를 중복해서 작성하지 않도록 함으로써 코드의 생산효율을 올리는 문법

class 클래스이름 extends 부모클래스이름 {
  
}

상속은 이름처럼 어떤 클래스가 가지고 있는 유산(속성과 메소드)을 다른 클래스에게 물려주는 형태로 사용한다. 이때 유산을 주는 클래스를 부모클래스, 유산을 받는 클래스를 자식클래스라고 부른다.

private 속성과 메소드

클래스 사용자가 클래스 속성(또는 메소드)을 의도하지 않은 방향으로 사용하는 것을 막아 클래스의 안정성을 확보하기 위해 나온 문법이 private 속성과 메소드이다.

class 클래스이름 {
	#속성이름
    #메소드이름 () {
	}
}

이처럼 #이 붙어있는 속성과 메소드는 모두 private thrtjdrhk apthemrk ehlsek.

주의 - private 속성은 사용하기 전에 미리 외부에 어떤 속성을 private 속성으로 사용하겠다고 선언해주어야 한다.

게터(getter)와 세터(setter)

get00() 메소드처럼 속성 값을 확인할때 사용하는 메소드를 게터라고 부르며 set00()메소드처럼 속성에 값을 지정할때 사용하는 메소드를 세터라고 부른다.

class 클래스이름 {
  get 이름 () { return}
  set 이름 ( value ) { }
}

static 속성과 메소드(정적 속성, 정적 메소드)

static 속성과 메소드는 인스턴스를 만들지 않고 사용할 수 있는 속성과 메소드이다.
그냥 일반적인 변수와 함수처럼 사용할 수 있다.

클래스이름.속성
클래스이름.메소드()

class 클래스이름 {
  static 속성 =static 메소드 () {
    }
}

디자인패턴 - 더 효율적으로 프레임워크를 개발할 수 있게 고안한 다양한 패턴.

변수와 함수를 클래스 내부에 작성했을 때의 장점

  • 어떤 속성과 함수가 클래스 내부에 귀속되어 있다는 것을 명시적으로 나타낼 수 있다.
  • private 특성과 게터, 세터를 부여해서 조금 더 안전한 변수와 함수로 사용할 수 있다.

오버라이드

부모가 갖고 있는 함수를 자식에서 다시 선언해서 덮어쓰는 것.


TIL 8 day
비슷하고 쉬워보이는 개념도 코드에서의 쓰임이 너무 다양해서
'이게 이부분에서 쓰인다고?', '아 여기서 이걸쓰면 코드가 간단해지는구나'
라고 놀라고 당황스러울때가 많다. 많은 코드를 쳐보고 다른사람들의 코드를 더 많이 보면서
기본기를 좀더 튼튼하게 다져야겠다고 오늘도 생각한다
나도 코드 잘짜고 싶다!!!!!💥💥💥💥💥

좋은 웹페이지 즐겨찾기