#第6章 物件與方法
#實驗6.1 物件與方法實驗
'''利用oop,按照要求,完成如下任務
(1)利用正方形類squa和長方形類rect,輸出預設邊長和周長以及
修改屬性值之後的邊長和周長,新增正方形的面積和長方形的面積
兩個方法,輸出預設面積以及修改屬性值後的面積'''
class
squa
: length=
10def
area
(self)
:return self.length*self.length
defcir(self)
:return
4*self.length
class
rect
(squa)
: width=
20def
area
(self)
:return self.length*self.width
defcir(self)
:return2*
(self.length+self.width)
zfx=squa(
)print
('預設正方形邊長:'
,zfx.length,
'周長:'
,zfx.cir(),
'面積:'
,zfx.area())
print()
zfx.length=
20print
('修改正方形邊長:'
,zfx.length,
'周長:'
,zfx.cir(),
'面積:'
,zfx.area())
print()
cfx=rect(
)print
('預設長方形的長:'
,cfx.length,
'寬',cfx.width,
'周長:'
,cfx.cir(),
'面積:'
,cfx.area())
print()
cfx.length=
20cfx.width=
15print
('修改長方形的長:'
,cfx.length,
'寬',cfx.width,
'周長:'
,cfx.cir(),
'面積:'
,cfx.area())
print()
'''(2)在正方形類squa和長方形類rect的基礎上,建立長方體類cubo,
新增屬性高height(預設值為30),表面積cubomj和體積cubotj兩個
方法,然後輸出立方體的缺省長、寬、高、表面積和體積以及修改屬
性值之後的長、寬、高、表面積和體積'''
class
cubo
(rect)
: height=
30def
cubomj
(self)
:return
(self.length+self.width)*2
+(self.length+self.height)*2
+(self.width+self.height)*2
defcubotj
(self)
:return self.length*self.width*self.height
cft=cubo(
)print
('預設長方體的長:'
,cft.length,
'寬',cft.width,
'高',cft.height,
'表面積:'
,cft.cubomj(),
'體積:'
,cft.cubotj())
print()
cft.length=
20cft.width=
5cft.height=
3print
('修改長方體的長:'
,cft.length,
'寬',cft.width,
'高',cft.height,
'表面積:'
,cft.cubomj(),
'體積:'
,cft.cubotj())
print()
'''(3)建立圓基類circ,屬性半徑(預設值為10),方法周長circzc和
方法面積circmj;子類ball(circ),無新屬性,方法表面積ballmj和
方法體積balltj
①輸出圓的預設半徑、周長和面積以及修改屬性值之後的半徑、周長和
面積②輸出球的預設半徑、面積和體積以及修改屬性值之後的半徑、面積和
體積'''
import math
class
circ
: r=
10def
circzc
(self)
:return math.pi*
2*self.r
defcircmj
(self)
:return math.pi*self.r*self.r
class
ball
(circ)
:def
ballmj
(self)
:return
4*math.pi*self.r*self.r
defballtj
(self)
:return
4*math.pi*
pow(self.r,3)
/3cir=circ(
)print
('預設圓半徑:'
,cir.r,
'周長:'
,cir.circzc(),
'面積:'
,cir.circmj())
print()
cir.r=
5print
('修改圓半徑:'
,cir.r,
'周長:'
,cir.circzc(),
'面積:'
,cir.circmj())
print()
bal=ball(
)print
('預設球半徑:'
,bal.r,
'面積:'
,bal.ballmj(),
'體積:'
,bal.balltj())
print()
bal.r=
6print
('預設球半徑:'
,bal.r,
'面積:'
,bal.ballmj(),
'體積:'
,bal.balltj(
))
筆記 《js權威指南》 第6章 物件
1.屬性的特性 可寫性,可遍歷,可刪除修改屬性。2.物件的特性 1 物件的原型prototype,本物件的屬性繼承自它的原型物件。2 物件的類class,是乙個標識物件型別的字串。3 ecmscript 5中 物件的擴充套件標記指明了是否可以給該物件新增新屬性。3.物件的型別 1 內建物件 由ecm...
第6章 通用物件操作
6.1 物件的等值性與唯一性 system.object型別中的equals方法是比較兩個引用,如果指向的是同乙個物件則返回true,否則在任何其他情況下都返回false 當重寫自己的equals方法時,必須確保它遵循以下4條規則 1 equals方法必須是自反的,也就是說x.equals x 必須...
第6章 繼承與派生
1。繼承的作用是什麼?它可以允許不同的類以多種不同的方法共享 2。解釋多型,什麼是多型?如何使用多型。3。解釋動態繫結與靜態繫結的區別?描述各自的試能條件。動態繫結 即執行的時候的繫結,多型就是這樣的。解決了執行的時候方法的間接呼叫。靜態繫結 針對方法的直接呼叫 不通過指標或者引用 仍然是由編譯器進...