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()
  • 相关阅读:
    JSTL和EL
    JSP
    Servlet基础知识
    JSON基础知识
    jQuery基础知识
    ajax基础知识
    索引实战
    反射
    设计模式
    JVM的异常处理
  • 原文地址:https://www.cnblogs.com/shangpolu/p/6210063.html
Copyright © 2011-2022 走看看