😇 도대체 접근 제어자는 왜 써야 하는지 잘 모르겠습니다...
접근 제어자는 변수, 메서드, 클래스에 대한 접근을 제어하기 위해 적어주는 예약어
버그를 줄이기 위해서, 개발자들이 다른 사람이 만든 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
}
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'.
}