面向对象(一) 类与类之间的关系之依赖和关联

面向对象的三种关系:

1.依赖关系

A类(A类实例化对象)依赖B类(B类实例化对象)的意思就是B类实例化的对象名作为参数传递给A类(对象)的方法,那么在A类对象就可以用B类实例化对象的方法

1)  植物大战僵尸简易版

# 植物大战僵尸简易版
class ZhiWu:#创建植物类
    def __init__(self,name,hp,attack):#初始化属性
        self.name=name
        self.hp=hp
        self.attack=attack
    def da(self,js):
        js.hp-=self.attack

class JiangShi:#创建僵尸类
    def __init__(self,name,hp,attack):#初始化属性
        self.name=name
        self.hp=hp
        self.attack=attack
    def eat(self,zw):
        zw.hp -= self.attack
# 创建僵尸和植物对象
zw=ZhiWu("紫罗兰",20,10)
js=JiangShi("躺尸",30,5)
# 植物攻击一次
zw.da(js)
print(js.hp)#20
# 僵尸攻击一次
js.eat(zw)
print(zw.hp)#15

2) 大象关冰箱

class Elephant:

    def __init__(self, name):
        self.name = name

    def open(self, ref):
        print(‘冰箱开门吧‘)
        ref.open_door()

    def close(self, ref):
        print(‘冰箱关门吧‘)
        ref.close_door()

    def get_in(self):
        print(‘进冰箱装自己‘)

class Refrigerator:

    def open_door(self):
        print(‘冰箱默默地打开了自己的门‘)

    def close_door(self):
        print(‘冰箱默默地关上了自己的门‘)

e = Elephant(‘小象‘)
ref1 = Refrigerator()

#大象进冰箱
e.open(ref1)
e.get_in()
e.close(ref1)

2.关联关系,又叫组合,聚合关系

A类和B类关联意思是B类对象作为参数传递给A中并且封装成了A对象的一个属性

1) 男朋友女朋友

class Boy():
    def __init__(self,name,girlfirend = None):
        self.name = name
        self.girlfriend = girlfirend
    def have_dinner(self):
        if self.girlfriend:
            print("%s和女朋友%s一起吃饭"%(self.name,self.girlfriend.name))
        else:
            print("自己吃饭")

class Girl():
    def __init__(self,name):
        self.name = name
Shawn = Boy("孙")
Chen = Girl("陈")
Shawn.have_dinner()
运行结果:自己吃饭
Shawn.girlfriend = Chen
Shawn.have_dinner()
运行结果:孙和女朋友陈一起吃饭

原文地址:https://www.cnblogs.com/duoduoyichen/p/10376668.html

时间: 2024-11-10 12:08:01

面向对象(一) 类与类之间的关系之依赖和关联的相关文章

PHP类和对象之间的关系

类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: --对象的状态(属性):当施加操作时对象如何反应,例如,电视机的外形.尺寸.颜色等: 例子: 根据一份配置单组装六十台电脑,配置单里每增加一项配置,60台电脑各增加一厢配置. 1.配置单就是要创建的"类": 2.60台电脑就是创建的对象: 3.60台电脑间没有连系: 二.如何抽象一个类 1.

3.2-面向对象(类与对象之间的关系)

3.2 类与对象的关系 使用计算机语言就是不断的在描述现实生活中的事物. java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义. 对象即是该类事物实实在在存在的个体 . 3.2.1  类与对象( 图例) 3.2.2  类的定义 生活中描述事物无非就是描述事物的属性和行为. ?  如:人有身高,体重等属性,有说话,打球等行为. Java中用类class来描述事物也是如此 ?  属性:对应类中的成员变量. ?  行为:对应类中的成员函数. 定义类其实在定义类中的成员(成员变量和成员函

UML图类,接口之间的关系

UML图类之间的关系(来自大话设计模式中的一张图,代表了类,接口之间的各种关系) 原文地址:https://www.cnblogs.com/linlf03/p/9735917.html

面向对象中多个对象之间的关系

http://www.cnblogs.com/wing011203/archive/2012/06/23/2559223.html 当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系.利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体.一个设计良好的类,应该是兼顾信息和行为,并且是高内聚.而不同

【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象之间的关系

类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分. 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这

什么是类,什么是对象,类和对象之间的关系

类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分. 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这

Java 中判断类和实例之间的关系

判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 )   2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 = > 类)   3.isInstance方法,用来判断对象是否属于某个类型的实例 (类 => 对象 //use instanceof,用来判断对象是否是类的实例 System.out.println(new A() instanceof B);//类型比较 //use isAssignable

Ioc和DI之间的关系(依赖注入的核心概念)

1.开篇闲话 由于之前做的很多项目都没接触到这个,后来到了另一个公司,他们的代码结构是基于领域驱动设计的,其中里面的对象都是通过依赖注入方式(Sprint.NET)实现的,也大致了解了哈,在网上搜了些资料来理解,网上有很多实现依赖注入的框架有很多,比如astle Windsor.Unity.Spring.NET.StructureMap,后续会对Unity和Spring.NET做介绍,以及自己用反射来实现各种方式的依赖注入. 2.原来你们是一家人 控制反转(Inversion of Contro

uml描述类与类之间的关系

工作时培训的时候公司同事讲过UML,当时没怎么听,后在在看相关技术书籍的时候,发现用到还不少,于是恶补了些.UML体系庞杂,非十天半月可以掌握,但是作为简单的工具使用,去看清楚系统的内在逻辑还是可以速成的.(非设计系统),股票市场是一场拼图游戏,而UML也可以作为拼图工具去参与面向对象体系软件设计的! 废话不多说,进入正题. 先介绍几款画UML的工具,三大知名VISIO,RationalRose,PowerDesign不多说,个人喜欢用开源的,一是免费,二是通常体积较小,运行起来比较快.我用的是