面向对象

面向对象-----声明、属性、方法
    1.概述定义
        1.2三大特征:封装--数据保护、继承--代码复用与功能扩展、多态--不同环境下代码的多样性
    类:
        数据类型,是一类事物的抽象描述,
        意义:自定义数据类型,可以创建多个类,使用时就可以确定对象的类型;
             另外,定义一个类,他会随之定义类的属性,当对象创建后存储了多个数据,并能对这些属性/数据精确控制/修改
        1.3声明:class classname
        2.属性:该类事物的共有特征
                分布在一个固定的函数__init__(self)中,通过self.属性名来定义赋值属性,具体的数据会在对象创建时传递实参
                __init__(self)方法:
                1.该方法拥有固定的名称__init__
                2.该方法的参数遵循方法形参规则
                3.创建对象时默认调用此方法,根据实参与形参的对照创建不同的对象
                4.self.属性,该属性名不再是一个变量,也不会用v图标显示不是方法括号中的形参
                5.形参是指self.属性=后边的变量

        3.方法:该类事物的共同行为
                类方法的第一个参数必须是self
        对象:类是一种数据类型,是一种抽象的概念,他告诉我们它的共有行为特征,把共有特征放置在__init__(self)中,来实现类的实现
            对象就是实体,具有具体的数据。一个类有多个对象,因为数据不同。而方法形参的多样决定了即使没有init方法的重载,也能创建各种各样的对象,
            拥有不同的数据
class People:
    '''

    '''
    def __init__(self,name,age=1):
        '''
        '''
        self.name=name
        self.age=age
    def eat(self,food):
        '''

        :param food:
        :return:
        '''
        print(self.name,"今天吃了",food)
        return food

tom=People('tom')
jerry=People("jerry",2)
print(tom.name,tom.age,jerry.name,jerry.age)
jerry.eat('八宝粥')

对象的调用:

两个对象间的调用:

class Pet:
    '''
    宠物
    '''
    def __init__(self,nickname,health):
        self.nickname=nickname
        self.health=health

    def recovery(self):
        self.health += 5
        print(self.nickname, "正在恢复中。。。")

class Hospital:
    ''''''

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

    def treat(self, pet):
        ''''''

        if isinstance(pet,Pet):
            while pet.health<=60:
                print("开始治疗...", pet.nickname)
                pet.recovery()
            else:
                print(pet.nickname, "已经康复了")
        else:
            print("不接受其他类型")

cat=Pet("mm",30)


h=Hospital('jia')
h.treat(cat)

多对象调用:

class People:
    ''''''

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

    def taking(self,v,a):
        v.drive(a)
        print(self.name, '到达', a.area)


class Vehical:
    ''''''

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

    def drive(self, area):
        print(self.name, "正在开往", area.area)


class Area:
    def __init__(self,area):
        self.area=area


People('老张').taking(Vehical('贝齿'), Area('东北'))

总结:面向对象实现复杂业务的原因在于对象之间的互相调用以及对象方法之间的互相调用。

如何实现oop?

首先要从文字语句中提取出类,若没有文字解释,可以将功能列出,逐个清晰描述功能,提取类。

确定类的属性,从文字中确定重要的属性。

明确某各类它拥有的功能,也需要从文字中提取。

分析一个系统功能的实现需要哪些类的方法以及方法间如何调用、流程。需要从自己的常识、分析获得。

编程。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值