类和对象

2021-01-21  本文已影响0人  闲云野鹤_23dd

面向对象

面向对象是一种编程思想.
面向对象 ( Object Oriented ) 是将现实问题构建关系,然后抽象成 类 ( class ),给类定义属性和方法后,再将类实例化成 实例 ( instance )(就是对象) ,通过访问实例的属性和调用方法来进行使用。

类和对象的关系 就类似于 人类 之于 具体的某个人 , 家电之于 具体的一个冰箱, 对象就是类的实例化

面向对象的三大特征:封装、继承、多态。

创建类

语法:

class 类名(父类名):
   ...

父类名可以不写: 默认继承object
可以在class 里面写类的方法和属性

类中的 init 为创建对象时调用的方法,叫做初始化方法.(注意方法前后是双下划线)
前后双下滑线的方法是类的专有方法,有特殊含义:

类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方
__str__: 转换字符串

例子:

class MyClass:
   """一个简单的类实例"""
    i = 12345
    def f(self):
        return 'hello world'` 
image.png
# 声明一个类  语法:  class 类名(父类名):
class Human(object):
    # __init__ : 类的初始化方法
    # self : 代表类的本身 ,name,age,sex 初始化的时候 要用到的参数
    def __init__(self,name,age,sex):
        # self.name = name : 把方法中的参数 绑定给 类的属性
        self.name = name
        self.age = age
        self.sex = sex

# 类中的方法 必须包含self 参数
def eat(self):
    print(self.name+'在吃饭 ')

def sleep(self):
    print(self.name+'在睡觉')

# 类中的方法,可以调用其他方法,可以调用属性,除了init 方法
def info(self):
    print('这个人叫%s,今年%s岁,性别: %s'%(self.name,self.age,self.sex))
    self.eat()` 

对象

创建对象语法:

对象名 = 类名(初始化属性)

调用对象

if __name__ == '__main__':
    # 新建一个对象 , 根据 Human 类 新建对象
    # 对象是 类的 实例化
    boy = Human('小海豚', 28, '女')
    # 可以通过对象去调用类的方法和属性
    boy.eat()
    boy.sleep()
    boy.info()
    print(boy.name)


#练习:
创建一个Car类,有三个属性name,no,speed, 编写三个方法:
show():输出每一个属性的值
start(): 启动,speed=100,输出车名,启动了
run(): 行驶,输出车名和当前速度
stop(): 刹车,speed=0,输出车名,刹车当前速度

创建一个car对象,依次 调用show(),start(),run(),stop()方法

# start(): 启动,speed=100,输出车名,启动了
    def start(self):
        self.speed=100
        print("%s启动了"%(self.name))
#run(): 行驶,输出车名和当前速度
    def run(self):
            print("%s行驶了,当前速度%skm/h" % (self.name,self.speed))
#stop(): 刹车,speed=0,输出车名,刹车当前速度
    def stop(self):
       self.speed=0
       print("%s刹车了,当前速度%skm/h" % (self.name,self.speed))
#创建一个car对象,依次 调用show(),start(),run(),stop()方法
if __name__ == '__main__':
    # 根据类名新建对象
    car=Car('jeep轿车','沪A1111',0)
# 通过对象去调用类的方法和属性
    car.show()
    car.start()
    car.run()
    car.stop()
上一篇 下一篇

猜你喜欢

热点阅读