1.类与对象
(1).面向对象两个核心概念
1.类:是一群具有相同特征或形为的事物的一个统称,类是抽象的,不能直接使用。
2.对象:由类创造出来的具体存在。
在开发中,应该先有类,再有对象
(2).类和对象的关系
- 类是模板,对象是根据这个模板创建出来的
类只需要有一个,对象可以有多个(一张图纸可以造多个飞机)
类:属性(信息)和方法(你能完成的事(动作))
(3)类的三要素
1.类名 :这类事物的名字,满足大驼峰命名法
2.属性:这个类创建出的对象有什么特征
3.方法:这个类创建出的对象有什么行为
类是对象吗?
class student:
pass
print(id(student))
print(type(student))
执行结果:说明开辟了内存空间存储,所以称为类对象。
类属性:
直接写在类里的变量,称为类属性。
方法和函数的区别:
定义在类之内的称为方法,定义在类之外的称为函数。
方法的分类:
- 静态方法:
- 类方法:
- 实例方法:
2、对象的创建
例如:
1.需求:
小明今年18岁,身高1.75,每天早上要跑步,然后去吃东西
小美今年17岁,身高1.65,小美不跑步,但是喜欢吃东西
分析:
类名:Person
属性:name,age,height
方法:run(),eat()
实操:
2.需求:
一只黄颜色的狗叫大黄,看见生人汪汪叫,看见家人摇尾巴
分析:
类名:Dog
属性:name,color
方法:shout(),shake()
self: 哪一个对象调用的方法,self就是哪一个对象的引用,可以使用 .属性名
利用赋值语句就可以在类的外部给对象增加属性(不推荐),将对象的属性封装在类中
需求:
小猫爱吃鱼 小猫要喝水
代码:
# 定义类
class Cat():
# 定义类的两个方法: eat(),drink()
def eat(self):
# name: 类的属性
print('%s爱吃鱼' %self.name)
def drink(self):
print('%s要喝水' %self.name)
#创建对象(实例化)
tom = Cat()
#给tom对象的name属性赋值
tom.name = 'Tom'
#返回的是一个对象,因为tom是对象
print(tom)
#调用方法
tom.eat()
tom.drink()
hello_kitty = Cat()
hello_kitty.name='hello_kitty'
hello_kitty.eat()
hello_kitty.drink()