重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
你已經看到處理分數的方法如何通過名稱直接訪問兩個實例變量numerator和denominator。事實上,實例方法總是可以直接訪問它的實例變量的。然而,類方法則不能,因為它只處理本身,并不處理任何類實例(仔細想想)。但是,如果要從其他位置訪問實例變量,例如,從main函數內部來訪問,該如何實現?在這種情況下,不能直接訪問這些實例變量,因為它們是隱藏的。將實例變量隱藏起來的這種做法實際上涉及一個關鍵概念——“數據封裝”。它使得編寫定義的人在不必擔心程序員(即類的使用者)是否破壞類的內部細節的情況下,擴展和修改其定義。數據封裝提供了程序員和其他開發者之間的良好隔離層。
通過編寫特殊方法來檢索實例變量的值,可以用一種新的方式來訪問它們。編寫setNumerator:和setDenominator:方法用于給Fraction類的兩個實例變量設定值。為了獲取這些實例變量的值,我們需要編寫新的方法。例如,創建兩個名為numerator和denominator的新方法,用于訪問相應的Fraction實例變量,這些實例是消息的接收者。結果是對應的整數值,你將返回這些值。以下是這兩個新方法的聲明:
–(int) numerator;
–(int) denominator;
下面是定義:
–(int) numerator
{
return numerator;
}
–(int) denominator
{
return denominator;
}
注意,它們訪問的方法名和實例變量名是相同的,這樣做不存在任何問題(雖然似乎有些奇怪)。事實上,這是很常見的情況。代碼清單3-4用來測試這兩個新方法。
代碼清單3-4
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。