zoukankan      html  css  js  c++  java
  • 组合

    组合

    组合的用途:

    1:做关联

    2:小的组成大的

    组合与继承的使用:

    1.当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好

    例如:描述一个机器人类,机器人这个大类是由很多互不相关的小类组成,如机械胳膊类、腿类、身体类、电池类

    2.当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好

    例如:

      猫可以:喵喵叫、吃、喝、拉、撒

      狗可以:汪汪叫、吃、喝、拉、撒

    #课程类
    class Course:
        def __init__(self,c_name,c_type,c_time):
            self.c_name = c_name
            self.c_type = c_type
            self.c_time = c_time
    
        def syllabus(self):
            print('%s课程是%s类型的,几乎每天都上%s分钟的课程'%(self.c_name,self.c_type,self.c_time))
    
    #教师类    (课程类是属于教师类的)
    class Teacher:
        def __init__(self,name,sex,age,Course):
            self.t_name = name
            self.t_sex = sex
            self.t_age = age
            self.t_course = Course
    
        def course(self,cou_rse):
            print('%s老师教龄为%s年是教课程的'%(self.t_name,cou_rse))
    
    #学校类    (教师类和课程类都是属于学校类的)
    class School:
        def __init__(self,s_name,address,category,Teacher):
            self.s_name = s_name
            self.s_address = address
            self.s_category = category
            self.s_course = Course
            self.s_teacher = Teacher
    
        def course(self):
            print('%s学校的%s课程正在招生'%(self.s_name))
    
    #c1 = Course('语文','文科',45)
    # c2 = Course('化学','理科',60)
    #
    #t1 = Teacher('alex','男',18,c1)
    # t2 = Teacher('wusir','男',16)
    
    s1 = School('oldboy','北京','私立',Teacher('alex','',18,Course('语文','文科',45)))  #可通过s1去获取或者创建t1,在通过t1可以去获取c1
    #s2 = School('oldboy','南京','私立')                              #就实现了,通过组合的方式实现了关联
    #s3 = School('oldboy','东京','私立')
    
    print(s1.s_teacher.t_course)
    s1.s_teacher.t_course.syllabus()
  • 相关阅读:
    Jersey初始化配置
    Jersey框架简介
    警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:esignmanage' did not find a matching property.解决
    HIbernate基于外键的查询
    Apache Maven 入门篇(下)
    Apache Maven 入门篇 ( 上 )
    DetachedCriteria用法
    SQL Excel导入到sqlserver表
    轮番图片js
    Js Tab页(二)
  • 原文地址:https://www.cnblogs.com/shangpolu/p/6210063.html
Copyright © 2011-2022 走看看