#物件的封裝 *****
#將乙個類的物件,封裝到,另乙個類中的方法中去
class teacher:
def __init__(self,tea_name,tea_age):
self.teacher_name = tea_name
self.teacher_age = tea_age
self.salary = 2000 #老師的初始工資為2k
class cource:
def __init__(self,cour_name,cost,teacher):
self.course_name = cour_name
self.course_teacher = teacher #這一句話是乙個類的物件傳進另乙個類中的關鍵 *****
self.course_cost = cost #cost為課時費 每上一節課總的工資都要增加的
def class_up(self):
self.course_teacher.salary += self.course_cost #course_teacher = t1,因為在下面建立course類的物件時:c1 = cource('生理課',30,t1),引數傳遞進來的
t1 = teacher('李傑',24) #建立類teacher的物件 t1
t2 = teacher('張昭',25)
t3 = teacher('子龍',22)
c1 = cource('生理課',30,t1) #t1以乙個物件的形式作為類cource的引數 此時t1就等於course類中的teacher *****
print(c1.course_name) #
print(c1.course_teacher.teacher_name) #c1.course_teacher = t1; c1.course_teacher.teacher_name = t1.teacher_name
print(c1.course_teacher.teacher_age) #c1.course_teacher.teacher_age = t1.teacher_age
print(c1.course_teacher.salary) #上課前的工資
c1.class_up() #上課
print(c1.course_teacher.salary) #上課後的工資
#直接把類當做乙個物件往method1裡放就可以了
#類a是物件,變數b也是物件,在引數傳遞時,這兩個形式上沒太多區別
#類作為引數傳遞相當於實參,arg1,arg2就是形參;或者說例項化物件
class a(object):
def __init__(self,a):
self.a = a
b=2
def method1(arg1,arg2):
return arg1.a+arg2
if __name__ == '__main__':
print method1(a(2),b)
在乙個類中監聽另乙個類中變數改變
當乙個類中某個變數改變時,需要在另乙個類中做出應對,可以用下面的方法 以android為例 public class a extendsactivity implements b.oncupdatelistenerpublic void oncupdate int c public class bp...
乙個類作為另乙個類的資料成員
寫程式的時候希望乙個類能夠訪問另乙個類的資料成員 protected,private 例如類a要訪問類b中的資料成員。1.保持封裝性 可以通過在被訪問的類 b 中定義訪問許可權為public的函式,用來返回資料成員的引用。2.繼承 當乙個派生類從父類繼承時,父類的所有成員就成為子類的成員,因此可以將...
vc 在乙個類中呼叫另乙個類的變數
有幾個前提條件 1.被引用的變數所在類必須被完整地定義,而不是只有前向宣告 例如只是一行class a 2.被引用的變數必須是引用處可訪問的。也就是說,以下條件至少滿足其中之一 2.1.訪問變數的語句所在的類被宣告為被訪問的變數所在類的友元類 2.2.訪問變數的語句所在的函式被宣告為被訪問變數所在類...