본문 바로가기
강의 실습/한 입 크기로 잘라먹는 타입스크립트(TypeScript)

접근 제어자

by Jint 2024. 11. 19.

한 입 크기로 잘라먹는 타입스크립트 - 접근 제어자


1. 접근 제어자
클래스 생성시 특정 필드나 메서드에 접근할 수 있는 범위 설정.
public : 아무 제약이 없는 상태. 클래스 외부에서 접근 가능.
private : 클래스 외부에서 접근 불가.
protected : 클래스 외부에서 접근 불가. 파생 클래스에서 접근 가능. (public 과 private 의 중간 느낌)

생성자의 매개변수에도 접근제어자 설정이 가능하다. 이 때, 필드 정의는 반드시 생략해야 한다. 필드 초기화도 생략 가능하다.
생성자의 매개변수에 접근제어자 설정시, 자동으로 필드도 정의하고, 필드의 값도 자동으로 초기화하기 때문이다.

- chapter2.ts

/**
 * 접근 제어자 (access modifier)
 */
class Employee {
    // 필드
    /*
    private name: string;
    protected age: number;
    public position: string; // public 생략 가능 (기본값이기 때문)
    */

    // 생성자
    constructor(
        private name: string
      , protected age: number
      , public position: string
    ) {
        /*
        this.name = name;
        this.age = age;
        this.position = position;
        */
    }

    // 메서드
    work() {
        console.log(`${this.name} 일함`); // 클래스 내부 메서드에서 접근 가능
    }
}

// 파생 클래스
class ExecutiveOfficer extends Employee { // Employee 상속
    // 필드
    officeNumber: number;

    // 생성자
    constructor(name: string, age:number, position: string, officeNumber: number) {
        super(name, age, position); // 자바스크립트와 다르게 super() 생략하면 오류, 매개변수를 빠트려도 오류
        this.officeNumber = officeNumber;
    }

    // 메서드
    func() {
        // this.name; // 파생 클래스에서도 접근 불가
        this.age; // 파생 클래스에서 접근 가능
    }
}

// 클래스의 인스턴스
const employee = new Employee('송진성', 31, 'developer');

// employee.name = '홍길동'; // private 접근제어자라 클래스 외부에서 접근 불가
// employee.age = 32; // protected 접근제어자라 클래스 외부에서 접근 불가
employee.position = '디자이너'; // public 접근제어자라 클래스 외부에서 접근 가능

console.log(employee);


터미널에서 tsx 명령어를 통해 실행한다.

- Terminal

tsx src/chapter2.ts
    Employee { name: '송진성', age: 31, position: '디자이너' }


접근제어자는 객체지향 프로그래밍을 할 때 대단히 중요한 역할을 하는 문법이다.


참고링크 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#

 

한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런

이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻‍♀️로 만들어드립니다., 프론

www.inflearn.com

댓글