面向对象

在高级语言中有面向过程和面向对象
面向过程—>侧重于怎么做?
面向对象—>测中于谁来做?

面向对象创建的叫类,类有属性,有方法
类:属性(这一类事务的共同信息) 和 方法(你能完成的动作)
1.类名:这类事物的名字(大驼峰命名法)
大驼峰命名法:
1.每个单词的首字母大写
2.单词与单词之间没有下划线
2.属性:这个类创建出来的对象有什么特征
3.方法:这个类创建出来的对象有什么行为

class Cat: ##定义类
    def eat(self): ##可以有的方法
        print('%s 爱吃鱼' %(self.name))
    def drink(self):
        print('猫要喝水')

hellokitty = Cat() ##将hellokitty定义为Cat()类
hellokitty.name = 'apple'
hellokitty.eat()  ##hellokitty的动作
hellokitty.drink()
tom = Cat()
tom.name = 'Tom'
print(tom.eat())
print(tom.drink())

后面这些都是人为进行操作,如何一开始就进行定义,使用__init__内置函数

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

同时也可以进行自定义打印。
str:在python中,使用print输出对象变量的时候
默认情况下这个变量引用的对象是由哪一个类创建的对象及其在内存中的地址
如果在开发中 希望使用print输出变量的时候,能够打印自定义内容

面向对象有三大特征
封装,继承,多态

封装 (只对外留一个接口进行调用)
1.封装是面向对象编程的一大特点
2.面向对象编程的第一步 将属性和方法封装到一个抽象(因为类不能直接使用)的类中
3.外界使用类创建对象,然后让对象调用方法
4.对象方法的细节都被封装在类的内部
需求:
1.小明和小美都爱跑步
2.每次跑步都会减肥0.5公斤
3.每次吃东西体重都会增加1公斤
“”"

class Person:
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight

    def __str__(self):
        return '我的名字叫 %s 体重是 %.2f' %(self.name,self.weight)

    def run(self):
        print('%s 去跑步~~~' %(self.name))
        self.weight -= 0.5
    def eat(self):
        print('%s 吃东西~~~' %(self.name))
        self.weight += 1

a = Person('小明',89)
a.run()
a.eat()
print(a)

b = Person('lily',50)
b.eat()
b.run()
print(b)

继承:实现代码的重用 相同的代码不需要重复的写

class Animal:
    def eat(self):
        print('吃...')

    def drink(self):
        print('喝...')

    def run(self):
        print('跑...')

    def sleep(self):
        print('睡...')
class Dog(Animal):
    def bark(self):
        print('汪汪~')

多态(以封装和继承为前提)
不同的子类对象调用相同的方法 产生不同的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值