python_04_面向对象

1.面向对象

1)定义
面向对象
是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程:
就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
2)面向对象的基础语法
定义简单的类;
定义只包含方法的类;

定义只包含方法的类;
class 类名():
	def 方法1(self, 参数列表) ;
		pass
	def 方法2(self, 参数列表) :
		pass

当一个类定义完成之后,要使用这个类来创建对象,语法格式如下

对象变量=类名()

例如:小狗爱玩球,小狗爱吃肉

# 定义一个‘狗’类
class Dog():
    def play(self):
        print '小狗爱玩球'
    def eat(self):
        print '小狗爱吃肉'
# 创建一个‘狗’对象
dog = Dog()
dog.eat()
dog.play()

执行如下:
这里写图片描述
self的用法:

class Dog():
    # 哪个对象调用的方法,self就是哪个的引用
    def play(self):
        print '%s 爱玩球' % self.name
    def eat(self):
        print '小狗爱吃肉'
# 创建一个狗对象
xixi = Dog()
xixi.name = 'xixi'
xixi.play()
xixi.eat()
# 创建一个狗对象
haha = Dog()
haha.name = 'haha'
haha.play()
haha.eat()

执行如下:
这里写图片描述
3)初始化方法
初始化方法
使用类名()创建对象时,python的解释器会自动执行以下操作:
1.为对象再内存中分配空间–创建对象
2.调用初始化方法为对象的属性设置初始值–初始化方法__init__
这个初始化方法就是__init__方法,__init__是对象的内置方法
__init__方法是专门用来定义一个类具有那些属性的方法
示例:

class Dog():
    def __init__(self,dog_name):
        self.name = dog_name
        # 在类中,任何方法都可以使用self.name
    def swim(self):
        print '%s 爱游泳' % self.name

# 使用类名()创建对象的时候,会自动调用初始化方法__init__
xixi = Dog('xixi')
xixi.swim()

haha = Dog('haha')
haha.swim()

执行结果:
这里写图片描述

2.内置方法

1)__del__方法
在python中,当使用类名()创建对象时,为对象分配完空间后,自动调用__init__
当一个对象被从内存中销毁前,会自动调用__del__方法
例:

class Dog():
    def __init__(self,dog_name):
        self.name = dog_name
        print '%s来了' % self.name
    def __del__(self):
        print '%s走了' % self.name

xixi = Dog('xixi')
print xixi.name

del xixi
print '*' * 50

执行如下:
销毁前自己调用
这里写图片描述
我们手动调用了之后就销毁了,最后不再自动调用
这里写图片描述
2)__str__方法
在python中,使用python输出对象变量
默认情况下,会输出这个变量引用的对象是由哪一个类创建的以及在内存中的地址(十六进制表示)
如果在开发中,希望使用print输出对象变量时,能够打印自定义的内容,就可以利用__str__ 这个内置方法了
例:

class Dog():
    def __init__(self,dog_name):
        self.name = dog_name

    def __str__(self):
        # 必须返回一个字符串
        return '我是%s' % self.name

xixi = Dog('xixi')
print xixi

执行结果:
这里写图片描述

3.面向对象的三大特征

1.封装

1)定义
封装是面向对象编程的一大特点
面向对象编程的第一步将属性和方法封装到一个抽象的类中
外界使用类创建对象,然后让对象调用方法
对象方法的细节都被封装在类的内部
根据职责把属性和方法封装在一个抽象的类中,定义类的准则

例1:xx爱跑步,体重是XX,每次跑步减轻0.5kg,每次吃东西增重1kg

class Person():
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight
    def __str__(self):
        return '体重是%.2f'% self.weight
    def run(self):
        print '%s爱跑步' % self.name
        self.weight -= 0.5
    def eat(self):
        print '%s吃东西' % self.name
        self.weight += 1

lin = Person('llj',45.0)
lin.run()
lin.eat()
print lin

执行结果:
跑步,吃东西
这里写图片描述
吃东西
这里写图片描述
跑步
这里写图片描述
例2:摆放家具
摆放家具需求:
1.房子有户型,总面积和家具名称列表
新房子没有任何的家具
2.家具有名字和战地面积,其中
床:占4平米衣柜:占2平面餐
桌:占1.5平米
3.将以上三件家具添加到房子中
4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

# 定义家具类
class Furniture():
    def __init__(self,name,area
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值