[JS]Class

김정현·2022년 5월 25일

개념 정리

목록 보기
1/9
post-thumbnail

Class

class

클래스는 생성자 함수를 대체하여 객체를 만들 때 사용하는 문법이며
객체지향 프로그래밍의 기반이 된다

instance

클래스로 만들어진 객체

constructor(생성자 함수)

new 키워드로 객체를 생성할 때 기본적으로 호출되는 함수
매개변수를 통해 외부의 정보를 가져올 수 있다
프로퍼티를 선언할 때 this와 함께 사용한다

멤버 변수

constructor의 인자와 같이, 클래스 내에서 변경 가능한 상태값이자
클래스 내에서 어느 곳에서나 사용 할 수 있는 변수를 멤버 변수라고 부른다

멤버 변수는 this키워드로 접근한다

메서드(멤버 함수)

객체의 프로퍼티 값이 함수인 경우 메서드라고 한다

클래스에 필요한 메서드는 constructor밖에서 정의한다
메서드는 this나 function키워드, 콜론(:)을 사용하지 않고 정의한다

static

class에서 정의된 프로퍼티와 메서드는 인스턴트 레벨이다
따라서 클래스명이 아닌 인스턴스명을 통해 호출해야 한다

하지만 class내에서 프로포티 또는 메서드에 static을 붙혀주면
해당 요소가 클래스 레벨로 바뀌어 인스턴스로 전달되지 않고
class명을 통해 호출되게 된다

static을 통해 class레벨이 된 요소에서는
주어진 정보가 없는 상태이므로 this를 사용할 수 없다

field

# (접근제어자, 캡슐화)

클래스 내의 변수들은 기본적으로 공개된 public상태이다
하지만 #을 변수앞에 붙혀주면 클래스 외부에서 접근이 불가능한 private상태가 된다

getter & setter

접근자 프로퍼티라고 한다
프로퍼티처럼 보이나 본질은 함수이다
값을 획득(get)하고 설정(set)하는 역할을 담당한다
get과 set이라는 메서드로 나타낼 수 있다
getter는 프로퍼티를 읽으려고 할 때 실행된다
setter는 프로퍼티에 값을 할당하려 할 때 실행된다. 매개변수를 통해 인자를 받아온다
접근자 프로퍼티를 사용하면 함수를 일반 프로퍼티처럼 호출할 수 있다
getter만 있는 경우 에러가 발생하므로 setter를 추가해준다

위의 예시를 보면
counter.add;를 통해서 getter인 get add()함수가 실행
counter.add = "setter";를 통해 set add(value)함수가 실행된 것을 확인할 수 있다

extends

부모 클래스를 복사한 자식 클래스를 만드는 키워드이다

class 피상속클래스 extends 상속클래스 {} 

자식클래스에서 constructor를 정의할 때,
부모클래스의 constructor의 매개변수 정보 또한 모두 가져와야 한다

super

자식클래스에서 constructor을 정의할 때,
부모클래스의 constructor의 매개변수 정보를 가져와야 하고
이 때, super(매개변수)를 사용한다

부모클래스의 정보를 가져온 뒤, 자식클래스에서 내용을 추가할 때에도

해당함수() {
	super.해당함수();
    추가할 내용..
}

이와 같은 방식으로 super을 사용해준다

overriging

자식클래스에서 부모클래스의 상속 정보를 덮어씌우는 것을 말한다
덮어씌울 함수에 원하는 정보를 입력하면 된다

profile
개발 공부 블로그

0개의 댓글