DAY 8

day 8

面向对象

一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用

特征被称为属性

行为被称为方法

类就相当于制造飞机时的图纸,是一个模板,负责创建对象

对象

由类创建出来的一个具体存在,可以直接使用

由哪一个类创建出来的对象,就拥有在哪一个类中的定义的:属性、方法

对象就相当于用图纸制造的飞机

在程序开发中,应该先有类,再有对象

类和对象的关系

类是模板,对象是根据类这个模板创造出来的,应该先有类,再有对象

类只有一个,而对象可以有很多个

不同对象之间属性可能会各不相同

类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多也不可能少

定义类

class 类名:

​ def 方法1(self,参数列表):

​ pass

​ def 方法2(self,参数列表):

​ pass

类名命名规则要符合大驼峰命名法

创建对象

对象变量 = 类名()

class Cat:
    def eat(self):
        # 哪一个对象调用的方法,self就是哪一个对象的引用
        print("%s eat fish" % self.name)



    def drink(self):
        print("%s drink water" % self.name)


# 创建猫对象
tom = Cat()
# 可以使用 .属性名 利用赋值语句就可以了
tom.name = "Tom"   # 不推荐使用


tom.eat()
tom.drink()
print(tom)
addr = id(tom)
print("%d" % addr)  #%d可以输出十进制,%x可以输出十六进制
# 再创建一个猫对象
lazy_cat = Cat()
lazy_cat.name = "lazy cat"
lazy_cat.eat()
lazy_cat.drink()

print(lazy_cat)
lazy_cat2 = lazy_cat
print(lazy_cat2)
初始化方法

——init——

在方法内部使用self.属性 = 形参接收外部传递的参数

在创建对象时,使用类名(属性1,属性2……)调用

class Cat:
    def __init__(self, new_name):
        print("这是一个初始化方法")
        # self.属性名 = 属性的初始值
        # self.name = "Tom"
        self.name = new_name

    def eat(self):
        print("%s eat fish" % self.name)


# 使用类名()创建对象时,会自动调用初始化方法 __init__
tom = Cat("Tom")
print(tom.name)
lazy_cat = Cat("lazy cat")
lazy_cat.eat()

——del——

class Cat:
    def __init__(self, new_name):
        self.name = new_name
        print("%s 来了" % self.name)

    def __del__(self):
        print("%s 去了" % self.name)


# tom 是一个全局变量
tom = Cat("Tom")
print(tom.name)
# del关键字可以删除一个对象
del tom
print("-" * 50)

——str——

class Cat:
    def __init__(self, new_name):
        self.name = new_name
        print("%s 来了" % self.name)

    def __del__(self):
        print("%s 去了" % self.name)

    def __str__(self):

        # 必须返回一个字符串
        return "I am a cat %s" % self.name


# tom 是一个全局变量
tom = Cat("Tom")
print(tom)
封装
class Person():
    def __init__(self, name, weight):

        # self.属性 = 形参
        self.myname = name
        self.myweight = weight

    def __str__(self):
        return "我的名字叫%s 体重是%.2f公斤" % (self.myname, self.myweight)

    def run(self):
        print("%s爱跑步,跑步锻炼身体" % self.myname)
        self.myweight -= 0.5

    def eat(self):
        print("%s是吃货,吃完这顿再减肥" % self.myname)
        self.myweight += 1


xiaoming = Person("xiaoming", 75.0)
xiaoming.run()
xiaoming.eat()
print(xiaoming)
xiaomei = Person("xiaomei", 45)
xiaomei.eat()
xiaomei.run()
xiaomei.run()
print(xiaomei)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值