مجوزهای دسترسی به خواص و متودهای کلاس:
public : پیشفرض - هم در خود کلاس و هم در خارج کلاس قابل دسترسی و استفاده است.
protected : فقط درون کلاس جاری(خود کلاس) و فرزندان کلاس قابل دسترسی است. یعنی در کلاس های فرزند نیز میتوان با کلمه کلیدی this به خواص و متودهای protected دسترسی داشت.
private : فقط و فقط در خود کلاس قابل استفاده است و حتی فرزندان کلاس نمیتوانند به خواص و متودهای private دسترسی داشته باشند.
مثال کلاس :
class Person { name:string; // default is public accesor private type:string; protected age:number; constructor(name:string,public userName:string){ this.name = name; } } const person = new Person("Mokhtar","Mohammadiyan"); console.log(person) console.log(person.name)
نکنه مهم : پارامترهایی که در constructer تعریف میشوند هم خواص کلاس هستند که به صورت ورودی دریافت میشوند.
class Person { name:string; // default is public accesor private type:string; protected age:number; constructor(name:string,public userName:string){ this.name = name; this.age = 34; } printAge():void{ this.setType("Old Guy"); console.log(this.age); } setType(type:string):void{ this.type = type; console.log(this.type); } } const person = new Person("Mokhtar","Mohammadiyan"); person.printAge(); person.setType("Old");
اگر متود setType را به صورت private تعریف کرده بودیم، فقط در داخل کلاس قابل استفاده بود و در مثال فوق ما پیغام خطای کامپایلر مواجه میشدیم.
نکات، تجربیات، محتوای آموزشی و مطالب گردآوری شده در حوزه برنامه نویسی وب