博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day 016 面向对象---类与类的关系
阅读量:4578 次
发布时间:2019-06-08

本文共 3008 字,大约阅读时间需要 10 分钟。

---恢复内容开始---

一  依赖关系(最轻的一种关系,在方法中引入另一个类的对象)                    

class Elephant:    def __init__(self,name):        self.name=name    def open(self,ab):  # 依赖关系          print("冰箱哥哥%s开门"  % self.name)  #  想要一个冰箱,是哪个冰箱没有指定        # print(self)        ab.open_door()  # 引入另一个变量 ab.为引入方式                           # 由外界传递进来⼀个冰箱, 让冰箱开⻔. 这时. ⼤象不⽤背着冰箱到处跑.                          # 类与类之间的关系也就不那么的紧密了. 换句话说. 只要是有open_door()⽅法的对 象. 都可以接收运⾏    def jin(self):        print("我进冰箱了")    def close(self,ab):        print("冰箱哥哥关门")        ab.close_door()class bingxaing:    def open_door(self):        print("冰箱自己打开们")        # print(self)    def close_door(self):        print("冰箱自己关上了门")alex=Elephant("离散")  #大象的名字属性bx=bingxaing()  #创建冰箱对像alex.open(bx)   #调用创建的对象  注意. 此时是把⼀个冰箱作为参数传递进去了. 也就是说. ⼤象可以指定任何⼀个 冰箱alex.jin()alex.close(bx)

 ⼤象和冰箱之间就是依赖关系. 我⽤着你. 但是你不属于我. 这种关系是最弱的.

二 关联关系, 组合关系,聚合关系

这三个代码在写法上是一样的,但是,从含义上是不一样

1 关联关系 : 两种食物必须是互相关联的,但是在某些特殊情况下是可以更改和更换的

2 聚合关系.

属于关联关系中的⼀一种特例例. 侧重点是xxx和xxx聚合成xxx. 各⾃自有各⾃自的

声明周期. 比如电脑. 电脑⾥里里有CPU, 硬盘, 内存等等. 电脑挂了了. CPU还是好的. 还是
完整的个体

3 组合关系:

属于关联关系中的⼀一种特例例. 写法上差不多. 组合关系比聚合还要紧密. 比

如⼈人的⼤大脑, ⼼心脏, 各个器官. 这些器官组合成⼀一个⼈人. 这时. ⼈人如果挂了了. 其他的东⻄西
也跟着挂了了.

 

 

先看看关联关系的例子

class boy:    def __init__(self,name,xingge,girFriend=None):        self.name=name        self.xingge=xingge        self.girFriend=girFriend    def yujian(self,girl):        self.girFriend=girl    def chi(self):        if self.girFriend:            print("随便吃 %s和%s" % (self.name,self.girFriend.name))        else:            print("单身狗,吃什么吃")class girl:    def __init__(self,name):        self.name = name    def chi(self):        print("%s在吃饭" % self.name)girl = girl("撒旦")boy=boy("李二","急撒")boy.chi()  #  结果 :单身狗,吃什么吃boy.yujian(girl)boy.chi()  #  结果 : 随便吃 李二和撒旦# boy.girFriend.name  # 找到他的女友# boy.girFriend.chi()

例子二:

class School:    def __init__(self, name, address, phone):        self.name = name        self.address = address        self.phone = phone        self.__teach_list = []    def zhaopin(self, t):        self.__teach_list.append(t)    def display(self):        for el in self.__teach_list:            print(el.name, el.hobby)class Teacher:    def __init__(self, name, gender, salary, hobby, school):        self.name = name        self.gender = gender        self.salary = salary        self.hobby = hobby        self.school = schoololdboy_bj = School("北京老男孩", "美丽富饶的沙河", "10086")oldboy_sh = School("北京老男孩, 上海分校", "上海浦东", "10010")oldboy_sz = School("北京老男孩, 深圳分校(骑士计划)", "南山区", "10000")t1 = Teacher("配齐", "男", 200000, "上课", oldboy_bj)t2 = Teacher("太白", "男", 150000, "开车", oldboy_bj)t3 = Teacher("Eggon", "男", 123456, "钻研技术", oldboy_sh)t4 = Teacher("高鑫", "女", 45678, "相夫教子", oldboy_sz)t5 = Teacher("日天", "男", 666, "看天", oldboy_sz)# print(t3.school.address) # 找到老师所在的学校的地址oldboy_bj.zhaopin(t1)oldboy_bj.zhaopin(t2)oldboy_bj.display()oldboy_sh.zhaopin(t3)oldboy_sz.zhaopin(t4)oldboy_sz.zhaopin(t5)oldboy_sz.display()

三 继承关系  

              子类在不影响⽗类的程序运行的基础上对父类进行的扩充和扩展. 这里.我们可以把父类被称为超类或

者基类. 子类被称为派生类

 

转载于:https://www.cnblogs.com/systemsystem/p/9715903.html

你可能感兴趣的文章
python web 框架(三)-- django & tornado比较
查看>>
[Python]Python中的包(Package)
查看>>
Atom编辑器在windows下怎么更改安装路径
查看>>
vue学习之四组件系统
查看>>
pwa介绍学习
查看>>
go 实现简单的加权分配
查看>>
PhpExcel中文帮助手册|PhpExcel使用方法
查看>>
Linux下安装rpm出现error: Failed dependencies
查看>>
Chapter 6 排序
查看>>
JAVA的StringBuffer类
查看>>
通用的运营商/数字在C#
查看>>
学习Android过程中遇到的未解决问题(个人笔记,细节补充,随时更新)
查看>>
7kyu Jaden Casing Strings
查看>>
主流编程语言的大概方向(个人理解)
查看>>
2015 HUAS Provincial Select Contest #1 A
查看>>
C++string与int的相互转换(使用C++11)
查看>>
[Leetcode]旋转链表
查看>>
UNIX网络编程 -- -- 一个简单的时间获取客户程序
查看>>
使用dbghelp生成dump文件以及事后调试分析
查看>>
日本出行
查看>>