一、面向对象两个核心概念:
- 类:是一群具有相同特征或形为的事物的一个统称,类是抽象的,不能直接使用
- 对象:由类创造出来的具体存在
- 在开发中,应该先有类,再有对象
类和对象的关系:
- 类是模板,对象是根据这个模板创建出来的
- 类只需要有一个,对象可以有多个(一张图纸可以造多个飞机)
- 类:属性(信息)和方法(你能完成的事)
- 类名 :这类事物的名字,满足大驼峰命名法
- 属性:这个类创建出的对象有什么特征#3.方法
- 方法:这个类创建出的对象有什么行为
例子:
class Cat():
def eat(self): #self:哪一个对象调用的方法,self就是哪一个对象的引用
print('%s爱吃鱼' %self.name)
def drink(self): ##定义方法喝
print('小猫要喝水')
tom = Cat() ##利用Cat类,创建一个对象tom
tom.name = 'Tom' #可以使用 .属性名 利用赋值语句就可以在类的外部
print(tom) ##打印出tom是一个对象
tom.eat() ##调用方法
tom.drink()
hello_kitty = Cat()
hello_kitty.name = 'hello_kitty'
hello_kitty.eat()
hello_kitty.drink()
结果:
<__main__.Cat object at 0x7f05ecc8b588>
Tom爱吃鱼
小猫要喝水
hello_kitty爱吃鱼
小猫要喝水
二、面向对象中常用内置方法
一、初始化方法
- init()方法 当使用类名()创建对象时,Python解释器会自动执行以下操作:
- 为对象在内存中分配空间———创建对象
- 调用初始化方法为对象的属性设置初始值——初始化方法(init)
- 这个初始化方法是对象的内置方法,是专门用来定义一个类具有哪些属性的方法
class Cat():
def __init__(self,name):
print('这是一个初始化方法')
self.name = name
def eat(self):
print('%s爱吃鱼' %self.name)
cat = Cat('tom') ##使用类名()创建对象时,会自动调用初始化方法
print(cat.name)
hello_kitty = Cat('HK')
print(hello_kitty.name)
hello_kitty.eat()
结果:
这是一个初始化方法
tom
这是一个初始化方法
HK
HK爱吃鱼
二、 __str__方法:
- str ( ) 在Python中,如果直接输出创建的对象,会输出这个变量引用的对象是由哪一个,类创建的对象以及在内存中的地址(十六进制)
- 如果希望使用print输出对象变