접근 제어자

hwakyungChoi·2020년 9월 14일

😇 도대체 접근 제어자는 왜 써야 하는지 잘 모르겠습니다...

  • 접근 제어자는 변수, 메서드, 클래스에 대한 접근을 제어하기 위해 적어주는 예약어

  • 버그를 줄이기 위해서, 개발자들이 다른 사람이 만든 class의 모든 것을 제어할 수 있다는 버그 발생 가능 => 다른 사람이 함부로 중요한 값을 수정하지 못하게 막는 것

  • public, private, protected,default 네 종류가 있음

  • public
    - 상속, 외부 객체를 통한 접근도 가능

class Base {
	public defaultAge = 30;
}

class Member extends Base {
	age = 1;

	public getAge(){
    	return this.age + this.defaultAge
    }

let member = new Member();
console.log(member.getAge()); // 31
}
  • protected
    - 상속은 가능하나 외부객체에서의 접근이 허용되지 않음
class Base {
	public birthYear = "1989";
}

class Member extends Base {
	protected getBirthYear(){
    	return this.birthYear;
    }

let member = new Member();
member.getBirthYear();//Property 'getBirthYear' is protected and only accessible within class 'Member' and its subclasses.

}

-private
- 상속, 외부 객체에서의 접근 불가능

class Base {
	public birthYear = "1989";
}

class Member extends Base {
  private age = 0;
	protected getBirthYear(){
    	return this.birthYear; // Property 'birthYear' is private and only accessible within class 'Base'.
    }
  
  private getAge(){
  	return this.age;
  }

let member = new Member();
member.age() // Property 'age' is private and only accessible within class 'Member'.
member.getAge();// Property 'getAge' is private and only accessible within class 'Member'.

}

0개의 댓글