從我手頭的書籍資料中並沒有封裝與容器這兩個概念的定義,我自己給總結定義如下:
封裝:設計乙個類使其能夠含有所有的類的物件的過程。
容易:封裝後的類例項化後就生成乙個容器。
之前的**中設計了撲克牌的相應描述類,具體**如下:
#!/usr/bin/python
class card:
def __init__(self,rank,suit):
self.suit = suit
self.rank = rank
self.hard,self.soft =self._points()
classnumbercard(card):
def _points(self):
returnint(self.rank),int(self.rank)
classacecard(card):
def _points(self):
return 1,11
classfacecard(card):
def _points(self):
return 10,10
class suit:
def __init__(self,name,symbol):
self.name = name
self.symbol = symbol
defcard(rank,suit):
if rank == 1:
return acecard('a',suit)
elif 2 <= rank < 11:
return numbercard(str(rank),suit)
elif rank == 11:
return facecard('j',suit)
elif rank == 12:
return facecard('q',suit)
elif rank == 13:
return facecard('k',suit)
else:
raise exception("rank out ofrange")
在此基礎上,設計封裝類如下:
club,diamond,heart,spade=suit('club','ccc'),suit('diamond','ddd'),suit('heart','hhh'),suit('spade','sss')
class deck():
def __init__(self):
self._cards = [card(rank,suit) \
for rank in range(1,14)
for suit in(club,diamond,heart,spade)]
random.shuffle(self._cards)
def pop(self):
return self._cards.pop()
這樣就可以建立並使用相應的容器,具體的示範可以如下:
d = deck()
hand =[d.pop(),d.pop(),d.pop()]
for h in hand:
print([h.rank,h.suit.name,h.hard,h.soft])
**的執行結果如下:
e:\workspace\programme_language\python\oop>python1_7_1.py
['q', 'diamond',10, 10]
['q', 'club', 10,10]
['8', 'diamond',8, 8]
從上面可以看出,通過這樣的構建已經能夠完成乙個撲克牌的隨機發牌功能了。一副撲克牌除了大小王之外的其他牌面全都可以覆蓋,功能還算是完整。
C 中的封裝與繼承
封裝 封裝指的是把類內部的資料隱藏起來,不讓物件例項直接對其進行操作。c 中提供了屬性機制來對類內部的狀態進行操作。在c 中,封裝可以通過public private protected和internal等關鍵字來體現。下面通過例子來實現以下功能,具體的方法如下 不使用封裝特性來定義乙個person...
C 中的類與封裝
c 中的類與封裝 1,類的組合 1,類不是孤立存在的,類之間都會有一些關係,組合就是類的基本關係之一 2,電腦一般而言是由 cpu 記憶體 主機板 鍵盤和硬碟等部件組合而成 3,學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器 鍵盤 滑鼠 主機板 記憶體等部件的設計與製造?1,我們可以使用乙...
C 中的類與封裝
1,類的組合 1,類不是孤立存在的,類之間都會有一些關係,組合就是類的基本關係之一 2,電腦一般而言是由 cpu 記憶體 主機板 鍵盤和硬碟等部件組合而成 3,學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器 鍵盤 滑鼠 主機板 記憶體等部件的設計與製造?1,我們可以使用乙個類,但是可能對類...