一、面向对象简介
考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍。而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁。 用我们的现实思维方式该怎么用程序表达呢?今天来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)。 面向对象编程的2个非常重要的概念:类和对象。 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。 类就相当于制造飞机时的图纸,用它来进行创建的飞机就相当于对象。 二、分析类与对象1. 类物以类聚,人以群分。 具有相似内部状态和运动规律的实体的集合(或统称为抽象)。 具有相同属性和行为事物的统称。 类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在,一个类可以找到多个对象。 2. 对象
# 某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。 # 可以是直接使用的 3. 类和对象之间的关系
小总结:类就是创建对象的模板。
4. 区分类和对象# 奔驰smart 类 # 张三的那辆奔驰smart 对象 # 水果 类 # 苹果 类 # 红苹果 类 红富士苹果 类 # 我嘴里吃了一半的苹果 对象 5. 类的构成类(Class) 由3个部分构成 类的名称:类名 类的属性:一组数据 类的方法:允许对对象进行操作的方法 (行为)
举例:1)人类设计,只关心3样东西: 2)狗类的设计 类名:狗(Dog) 属性:品种 、毛色、性别、名字、 腿儿的数量 方法(行为/功能):叫 、跑、咬人、吃、摇尾巴
6. 类的抽象
如何把日常生活中的事物抽象成程序中的类? 拥有相同(或者类似)属性和行为的对象都可以抽像出一个类。 方法:一般名词都是类(名词提炼法) <1> 坦克发射3颗炮弹轰掉了2架飞机坦克 --> 可以抽象成类。 炮弹 --> 可以抽象成类。 飞机 --> 可以抽象成类。
<2> 小明在公车上牵着一条叼着热狗的狗小明 --> 人类。 公车 --> 交通工具类。 热狗 --> 食物类。 狗 --> 狗类。
<3>【想一想】如下图中,有哪些类呢?说明:
<4>【想一想】如下图中,有哪些类呢?说明:
向日葵 豌豆 类名:wd 属性:颜色 、发型、血量 行为:发炮、摇头
坚果: 僵尸: 类名:js 属性:颜色、血量、 类型、速度 行为:走、跑跳、吃、死
三、项目1. 定义类定义一个类,格式如下: demo:定义一个Cat类 # 定义类 class Cat: # 方法 def eat(self): print("猫在吃鱼....")
def drink(self): print("猫在喝可乐...")
说明:
2. 创建对象Python中,可以根据已经定义的类去创建出一个个对象。 创建对象的格式为: 创建对象demo: # 定义一个类 class Cat: # 属性 # 方法 def eat(self): print("猫在吃鱼....")
def drink(self): print("猫在喝可乐...")
# 根据类,创建一个对象 tom = Cat()
3. 调用对象的方法class Cat: # 属性 # 方法 def eat(self): print("猫在吃鱼....")
def drink(self): print("猫在喝可乐...")
# 创建了一个对象 tom = Cat() tom.eat() # 调用对象的eat方法 tom.drink()
运行结果,如图所示: 4. 给对象添加属性 class Cat: # 属性 # 方法 def eat(self): print("猫在吃鱼....")
def drink(self): print("猫在喝可乐...")
# 创建了一个对象 tom = Cat()
# 给对象tom添加了一个属性,叫name,里面的值是"汤姆" tom.name = "汤姆"
# 给对象tom添加了一个属性,叫age,里面的值是30 tom.age = 30
# 调用tom的方法 tom.eat() tom.drink() print(tom.name) print(tom.age)
运行结果,如图所示: 5. 通过方法获取对象属性。 class Cat: # 属性 # 方法 def eat(self): print("猫在吃鱼....")
def drink(self): print("猫在喝可乐...")
def introduce(self): # print("名字是:%s, 年龄是:%d" % (汤姆的名字, 汤姆的年龄)) print("名字是:%s, 年龄是:%d" % (tom.name, tom.age))
# 创建了一个对象 tom = Cat()
# 给对象tom添加了一个属性,叫name,里面的值是"汤姆" tom.name = "汤姆" tom.age = 30
# 调用tom的方法 tom.eat() tom.drink()
# 直接通过对象获取其属性 print(tom.name) print(tom.age)
print("-"*30)
# 调用tom的方法,在其方法中获取它的属性 tom.introduce()
运行结果,如图所示: 四、总结 本文以生活中的基础现象为切入点,主要介绍了Python的面向对象基础知识,用丰富的案例帮助大家更好的去了解对象,最后以一只猫作为小项目,使用Python编程语言,方便大家增加对类和对象的认识,希望对大家的学习有帮助。 看完本文有收获?请转发分享给更多的人
IT共享之家
|