TypeScript - 存取修飾詞:您的程式碼隱私友好指南
你好啊,未來的編程超級明星!? 我很高興能成為您在TypeScript存取修飾詞這段興奮旅程中的導遊。作為一個教了多年編程的人,我可以告訴您,理解這些概念就像是學會編程世界的秘密握手。所以,讓我們一起深入探索這些神秘吧!
存取修飾詞是什麼?
在我們深入細節之前,讓我們先來聊聊存取修飾詞是什麼。想像你正在建造一個超級酷炫的樹屋(這就是我们的代碼!)。存取修飾詞就像是你為誰可以爬上去、誰可以偷窺裡面、誰可以使用秘密隔間設定的規則。它們幫助我們控制代碼的哪些部分可以被訪問和使用。
在TypeScript中,我們有三個主要的存取修飾詞:
修飾詞 | 描述 |
---|---|
public | 從任何地方都可以訪問 |
private | 只能在同一個類內訪問 |
protected | 在類本身及其子類中可訪問 |
現在,讓我們詳細探索這些修飾詞!
公共存取修飾詞
public
修飾詞就像是你把樹屋的門打開。任何人都可以進來,使用搖椅,或者借你的漫畫書。在代碼術語中,這意味著程序的任何部分都可以訪問和使用這些元素。
這裡有一個有趣的例子:
class Superhero {
public name: string;
public power: string;
constructor(name: string, power: string) {
this.name = name;
this.power = power;
}
public usePower() {
console.log(`${this.name} 使用 ${this.power}!`);
}
}
const spiderman = new Superhero("蜘蛛人", "蜘蛛網射擊");
console.log(spiderman.name); // 輸出:蜘蛛人
spiderman.usePower(); // 輸出:蜘蛛人 使用 蜘蛛網射擊!
在這個例子中,name
、power
和usePower()
都是公共的。我們可以從代碼的任何地方訪問和使用它們。這就像蜘蛛人自由地在城市中穿梭一樣!
私有存取修飾詞
現在,讓我們來談談private
。這就像你在樹屋裡有一本只有你能看的秘密日記。在TypeScript中,private
成員只能在同一個類內訪問。
讓我們更新我們的Superhero類:
class Superhero {
public name: string;
private secretIdentity: string;
constructor(name: string, secretIdentity: string) {
this.name = name;
this.secretIdentity = secretIdentity;
}
private changeClothes() {
console.log("在電話亭快速換衣!");
}
public goOnMission() {
this.changeClothes();
console.log(`${this.name} 準備行動!`);
}
}
const superman = new Superhero("超人", "克拉克·肯特");
console.log(superman.name); // 輸出:超人
// console.log(superman.secretIdentity); // 錯誤!secretIdentity是私有的
// superman.changeClothes(); // 錯誤!changeClothes()是私有的
superman.goOnMission(); // 這個可以!輸出:在電話亭快速換衣!超人 準備行動!
看見我們不能直接訪問secretIdentity
或調用changeClothes()
了嗎?這就是private
的力量!它保護了超人的秘密。
受保護存取修飾詞
最後但同樣重要的是,我們有protected
。將這個想像成特殊的樹屋規則,適用於你和你的兄弟姐妹,但不適用於鄰居小孩。在TypeScript中,protected
成員在類本身及其子類中可訪問。
讓我們創建一個超級英雄家族:
class Superhero {
public name: string;
protected superpower: string;
constructor(name: string, superpower: string) {
this.name = name;
this.superpower = superpower;
}
protected useSuperpowerInternal() {
console.log(`內部使用 ${this.superpower}`);
}
}
class Sidekick extends Superhero {
public useSuperheroPower() {
console.log(`${this.name} 借用力量:${this.superpower}`);
this.useSuperpowerInternal();
}
}
const batman = new Superhero("蝙蝠俠", "裝備");
const robin = new Sidekick("羅賓", "特技");
// console.log(batman.superpower); // 錯誤!superpower是受保護的
// batman.useSuperpowerInternal(); // 錯誤!useSuperpowerInternal()是受保護的
robin.useSuperheroPower(); // 這個可以!輸出:羅賓 借用力量:特技 使用特技內部
在這裡,Sidekick
可以訪問Superhero
的protected
成員,但我們不能直接從類外部訪問它們。
總結
這就是了,我的編程學徒們!我們一起探索了TypeScript存取修飾詞的秘密世界。記住:
-
public
是給大家的(就像公共公園) -
private
只是給類本身的(就像你的個人日記) -
protected
是給類及其子類的(就像家族秘密)
明智地使用這些修飾詞將幫助你創建有安全性、有組織且可維護的代碼。這就像成為編程世界的超級英雄一樣——你知道何時分享你的力量,何時將其保密!
當你練習這些概念時,想像你正在設計自己的超級英雄團隊。誰應該知道什麼?你如何平衡團隊合作和保密身份?這就是編程的樂趣——你可以做出這些令人興奮的決定!
繼續編碼,持續學習,並記住:能力越大,責任越大……而且還有真的很酷的TypeScript類!??♂️?♀️
Credits: Image by storyset