? ? ? ? 再進一步仰迁,指定參數(shù)默認值的情況下,有時還要對參數(shù)值進行改變戈次,比如汽車里程出廠還要測試轩勘,運輸?shù)鹊炔豢赡苁?就需要修改屬性的值∏有埃可通過兩中方法對屬性值進行修改:
一绊寻、直接修改屬性值;二悬秉、通過一定的方法修改屬性值澄步。
? ? ? ? 未修改前、默認屬性值如下代碼:
一和泌、直接修改屬性值:創(chuàng)建實例后村缸。通過給實例里程屬性直接賦值的方式實現(xiàn)修改。在初始化描述汽車屬性時武氓,相當(dāng)于把定義參數(shù)和給參數(shù)賦值并添加到屬性中以此實現(xiàn)梯皿。在類中這樣的屬性是存在的,創(chuàng)建實例后自動傳遞值县恕,也就可以直接進行修改东羹。代碼如下:
二、通過方法實現(xiàn)屬性值的修改:
1忠烛、通過直接在類中更新的方式:定義一個更新里程數(shù)據(jù)的方法属提,并對其傳遞想要改變的值。在創(chuàng)建實例后,對實例使用更新方法并傳遞值冤议。
汽車里程只能增加斟薇,為了防止回調(diào)里程以次充好,還需要設(shè)置條件禁止回調(diào)里程恕酸。里程數(shù)據(jù)不小于0時堪滨,將數(shù)據(jù)賦給屬性,反之則打印一條警告信息尸疆。
2椿猎、通過方法對屬性的值進行遞增惶岭,比如出廠增加了多少里程寿弱;二手車購買到登記增加了多少里程等痴腌。定義一個增加值的方法凰狞,并對其傳遞里程數(shù)據(jù)忧风。同樣增加值也不能為負以防篡改數(shù)據(jù)寂诱。設(shè)置條件越妈,增加里程不為負時亭螟,里程數(shù)據(jù)相加小渊;反之起暮,打印一條警告信息铺罢,顯示里程數(shù)據(jù)錯誤艇挨。在實例中調(diào)用方法,看是否符合預(yù)期韭赘。
通過增加方法后可實現(xiàn)屬性值的修改和限定缩滨,但是依然可以通過直接賦值的方式改變里程數(shù)據(jù)。任然有回調(diào)的可能性泉瞻。
同樣也可以Dog類來實現(xiàn)改名和年齡屬性值的修改脉漏。
狗的年齡有界限并不是無線大,所以也有條件限制袖牙。
以下是原代碼侧巨,對打印項稍作改動,讓輸出更直觀明了鞭达。請忽略文檔字符串的錯誤司忱,實在不想改了。
? ? ? ? 通過創(chuàng)建實例畴蹭,對名稱屬性直接賦值和通過定義改名方法并在實例中調(diào)用實現(xiàn)名稱的改變坦仍;定義年齡的增加方法并設(shè)置限制條件,在實例中調(diào)用方法實現(xiàn)年齡的遞增撮胧。
超過年齡的限制條件時桨踪,打印提示消息。
? ? ? ? 一般狗狗的壽命在13—18年間芹啥,寵物狗大概在15年左右锻离。怎樣增加條件铺峭,讓不管創(chuàng)建的實例年齡是多少都可以滿足限制條件,并且年齡遞增時不超出限制條件且年齡只能遞增不能回調(diào)汽纠。
回調(diào)的情況:
創(chuàng)建實例不符合條件時:
判別增加值不符合條件時:
正常情況: