class

서정준·2022년 7월 1일
0

ES6

목록 보기
5/7
post-thumbnail

클래스(class)?

객체를 만들어 내기 위한 설계도와 같은 개념을 클래스(class)라고 합니다.

  • 객체(object)란?
    간단히 이야기하자면 실생활에서 우리가 인식할 수 있는 사물로 설명할 수 있습니다.

  • 객체를 만들어 내는 이유는?
    객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 됩니다.

class의 구성

클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성됩니다.

  • 필드(field)

    • 클래스에 포함된 변수(variable)를 의미합니다.
    • 아래 코드에서 user, last이 필드(field)에 해당한다.
  • 메소드(method)

    • 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다.
    • 아래 코드에서 getProfile이 메소드(method)에 해당합니다.
class User {
    constructor({ username, lastname}) {
        this.user = username;
        this.last = lastname;
    }
    
    getProfile() {
        console.log(`${this.username}`);
    }
}

const user = new User({
    username: "Nico",
    lastname: "serrano",
});

class를 사용하는 방법은?

JavaScript에서 클래스를 사용하기 위해서는 우선 해당 클래스 타입의 객체(object)를 선언해야 합니다.

  • 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 합니다.
  • 이렇게 선언된 해당 클래스 타입의 객체를 인스턴스(instance)라고 합니다.
    즉, 인스턴스란 메모리에 할당된 객체를 의미합니다.

    ※ instance의 사전적 의미는?
    (명사) an example or single occurrence of something.

  • 위 코드에서 user가 인스턴스(instance)에 해당합니다.
    const user = new User({
        username: "Nico",
        lastname: "serrano",
    });

여러가지 class 속성

1. extends

  • extends를 통해 부모 class를 상속 받을 수 있습니다.
  • 상속 받은 자식은 부모의 메소드를 사용할 수 있지만 부모의 class는 자식 method사용이 불가합니다.
  • 예시)
    class User {
        constructor({ username, lastname}) {
            this.user = username;
            this.last = lastname;
        }

        getProfile() {
            console.log(`${this.username}`);
        }
    }

    // extends 속성을 통해 메소드(method) 추가. 
    // 부모 class인 user에서 이 메소드 사용이 불가하다.

    class Admin extends User {
        deleteWebsite() {
        console.log("Boom!");
        }
    }

    const admin = new Admin({username: "Nico", lastname: "serrano",});
    admin.deleteWebsite()

출처

http://www.tcpschool.com/java/java_class_intro

profile
통통통통

0개의 댓글