0
点赞
收藏
分享

微信扫一扫

day11-demo01&exer01

言诗把酒 2022-04-29 阅读 49

跨类调用

三种方式:直接创建对象、构造函数创建对象、参数传递对象

跨类调用:
    方法1.在一个类里面创建另一个类对象,使用这个对象的方法
    方法2.在构造函数里面创建
    方法3.在使用时候创建对象,即通过参数传入
以面向对象思想,描述下列情景. 老张开车去东北
#1:老张每次开新车
class People:  # 数据类
    def __init__(self, name=""):
        self.name = name

    def go_to(self):
        print(self.name)
        car = Car()
        car.run()


class Car:  # 行为类
    def run(self):
        print("开汽车去")
        
lz = People("老张")
lz.go_to()

#2.老张老李每次开自己车
class People:  # 数据类
    def __init__(self, name=""):
        self.name = name
        self.car = Car()

    def go_to(self):
        print(self.name)
        self.car.run1()


class Car:  # 行为类
    def run1(self):
        print("开汽车去")

    def run2(self):
        print("开火车去")


lz = People("老张")
lz.go_to()
ll = People("老李")
ll.go_to()


#3:老张老李每次出门开相同的车
class People:  
    def __init__(self, name=""):
        self.name = name

    def go_to(self, vehicle):
        print(self.name)
        vehicle.run1()


class Car:  # 行为类
    def run1(self):
        print("开汽车去")


lz = People("老张")
ll = People("老李")
car = Car()
lz.go_to(car)
lz.go_to(car)
# 练习 1:以面向对象思想,描述下列情景. 小明请保洁打扫卫生
#1.小明每次叫不同保洁打扫卫生
class Client:
    def __init__(self, name=""):
        self.name = name

    def notify(self):
        print(self.name,"发出通知")
        cleaner = Cleaner()
        cleaner.cleaning()

class Cleaner:
    def cleaning(self):
        print("打扫卫生")

xm = Client("小明")
xm.notify()


#小明每次叫同一个保洁打扫卫生
class Client:
    def __init__(self, name=""):
        self.name = name
        self.cleaner = Cleaner()

    def notify(self):
        print(self.name,"发出通知")
        self.cleaner.cleaning()

class Cleaner:
    def cleaning(self):
        print("打扫卫生")

xm = Client("小明")
xm.notify()


#小明每次叫想要的那个保洁打扫卫生
class Client:
    def __init__(self, name=""):
        self.name = name

    def notify(self,service):
        print(self.name,"发出通知")
        service.cleaning()

class Cleaner:
    def cleaning(self):
        print("打扫卫生")

xm = Client("小明")
cleaner1 = Cleaner()
cleaner2 = Cleaner()
xm.notify(cleaner1)

举报

相关推荐

day16-demo01&exer01

day01_matplotlib_demo

day15-demo01-02

day10-demo02&exer02

x11 day01

Demo01

day19-demo04-05&exer02-04

01 DAPP简单Demo

day01

0 条评论