Typescript에서private,public,protected 수식자의 차이

2404 단어
우선 우리는 종류가 무엇인지 알아야 한다,class.

무엇이 대상을 대상으로 프로그래밍합니까?


Object Oriented Programming, OOP입니다.주요 사상은 문제를 구성하는 각 사무를 각 대상으로 분해하는 것이다. 대상을 구축하는 목적은 하나의 절차를 완성하기 위한 것이 아니라 하나의 사물이 전체 문제를 해결하는 단계에서의 행위를 묘사하기 위한 것이다.대상 프로그램 설계에 대한 개념은 주로 대상, 유형, 데이터 추상, 계승, 동적 귀속, 데이터 봉인, 다태성, 메시지 전달을 포함한다.
과정에 대한 구체화, 절차화, 한 문제를 해결하려면 한 걸음 한 걸음 분석하고 한 걸음 실현해야 한다.
대상을 대상으로 하는 것은 모형화된 것이다. 당신은 하나의 종류를 추상화하기만 하면 된다. 이것은 폐쇄된 상자이다. 여기서 당신은 데이터도 가지고 문제를 해결하는 방법을 가지고 있다.어떤 기능이 필요하면 직접 사용하면 된다. 한 걸음 한 걸음 실현할 필요가 없다. 이 기능이 어떻게 실현되는지, 우리에게 무슨 상관이 있겠는가?우리가 쓰면 돼.
대상을 향한 밑바닥은 사실 과정을 향한 것이다. 과정을 향한 것을 추상적으로 분류한 다음에 봉인하면 우리가 사용하는 것이 바로 대상을 향한 것이다.

클래스 클래스 클래스


다음은 흔히 볼 수 있는 유형의 문법이다.
class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

Greeter 클래스를 선언합니다.이 클래스는 세 명의 구성원이 있다. 하나는 greeting이라는 속성, 하나는 구조 함수, 하나는greet 방법이다.

공공public, 개인private와 보호된 보호된 장식자


일반적으로 TypeScript에서는 구성원이 기본적으로 출판됩니다.
우리는 위의 예를 이렇게 쓸 수 있다.
class Greeter {
    public greeting: string;
    public constructor(message: string) {
        this.greeting = message;
    }
    public greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

구성원이private로 표시될 때, 클래스를 설명하는 외부 접근을 할 수 없습니다.
class Greeter {
    private greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
}
new Greeter('abc').greeting; //  :'greeting' 。

보호된 수식자는private 수식자와 행동이 비슷하지만, 보호된 구성원은 파생 클래스에서 접근할 수 있습니다.예를 들면 다음과 같습니다.
class Person {
    protected name: string;
    constructor(name: string) { this.name = name; }
}

class Employee extends Person {
    private department: string;

    constructor(name: string, department: string) {
        super(name)
        this.department = department;
    }

    public getElevatorPitch() {
        return `Hello, my name is ${this.name} and I work in ${this.department}.`;
    }
}

let howard = new Employee("Howard", "Sales");
console.log(howard.getElevatorPitch());
console.log(howard.name); //  

좋은 웹페이지 즐겨찾기