第6章 物件與方法 筆記十一

2021-10-09 22:38:46 字數 3370 閱讀 2017

#第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。解釋動態繫結與靜態繫結的區別?描述各自的試能條件。動態繫結 即執行的時候的繫結,多型就是這樣的。解決了執行的時候方法的間接呼叫。靜態繫結 針對方法的直接呼叫 不通過指標或者引用 仍然是由編譯器進...