一、面向对象简介

考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍。而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁。

用我们的现实思维方式该怎么用程序表达呢?

面向过程:根据业务逻辑从上到下写代码。

面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。

面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑。

今天来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)。

面向对象编程的2个非常重要的概念:类和对象。

对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。

类就相当于制造飞机时的图纸,用它来进行创建的飞机就相当于对象。

二、分析类与对象

1. 类

物以类聚,人以群分。

具有相似内部状态和运动规律的实体的集合(或统称为抽象)。

具有相同属性和行为事物的统称。

类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在,一个类可以找到多个对象。

2. 对象

某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。可以是直接使用的。

3. 类和对象之间的关系

小总结:类就是创建对象的模板。

4. 区分类和对象

奔驰smart 类

张三的那辆奔驰smart 对象

水果 类

苹果 类

红苹果 类 红富士苹果 类

我嘴里吃了一半的苹果 对象

5. 类的构成

类(Class) 由3个部分构成

类的名称:类名

类的属性:一组数据

类的方法:允许对对象进行操作的方法 (行为)

举例:

1)人类设计,只关心3样东西:

事物名称(类名):人(Person)

属性:身高(height)、年龄(age)

方法(行为/功能):跑(run)、打架(fight)

2)狗类的设计

类名:狗(Dog)

属性:品种 、毛色、性别、名字、 腿儿的数量

方法(行为/功能):叫 、跑、咬人、吃、摇尾巴

6. 类的抽象

如何把日常生活中的事物抽象成程序中的类?

拥有相同(或者类似)属性和行为的对象都可以抽像出一个类。

方法:一般名词都是类(名词提炼法)

<1> 坦克发射3颗炮弹轰掉了2架飞机

坦克 --> 可以抽象成类。

炮弹 --> 可以抽象成类。

飞机 --> 可以抽象成类。

<2> 小明在公车上牵着一条叼着热狗的狗

小明 --> 人类。

公车 --> 交通工具类。

热狗 --> 食物类。

狗 --> 狗类。

<3>【想一想】如下图中,有哪些类呢?

说明:

子弹

手榴弹

刀子

箱子

<4>【想一想】如下图中,有哪些类呢?

说明:

向日葵

类名:xrk

属性:颜色、品类

行为:放阳光

豌豆

类名:wd

属性:颜色 、发型、血量

行为:发炮、摇头

坚果:

类名:jg

属性:血量、类型

行为:阻挡

僵尸:

类名:js

属性:颜色、血量、 类型、速度

行为:走、跑跳、吃、死

三、项目

1. 定义类

定义一个类,格式如下:

class 类名:

方法列表

demo:定义一个Cat类

# 定义类

class Cat:

# 方法

def eat(self):

print("猫在吃鱼....")

def drink(self):

print("猫在喝可乐...")

说明:

定义类时有2种:新式类和经典类,上面的Cat为经典类,如果是Cat(object)则为新式类

类名的命名规则按照"大驼峰"。

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编程语言,方便大家增加对类和对象的认识,希望对大家的学习有帮助。

想学习更多Python网络爬虫与数据挖掘知识,大家可前往专业网站:http://pdcfighting.com/

java列举生活中类和对象_趣味解读Python面向对象编程 (类和对象)相关推荐

  1. python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...

    一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢? 面向 ...

  2. python面向对象图片_趣味解读Python面向对象编程 (类和对象)

    一.面向对象简介 考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍.而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁. 用我们的现实思维方式该怎么用程序表达呢?面向过 ...

  3. 面向对象编程——类和对象

    面向对象编程 类和对象 类(Class):用来描述具有相同属性和方法的对象的集合 class Student:name='stu'#属性def say(self):#方法print("hel ...

  4. Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合

    Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...

  5. python面向对象编程之类和对象的概念

    首先需要明确,面向对象编程不是python独有的: 面向对象是一种编程思想: 在面向对象的思想中 万物都是对象 面向对象的简单理解: 面向对象是把一组数据结构和处理他们的方法组成对象,把具有相同行为的 ...

  6. python面向对象编程的语言_怎么使用python面向对象编程

    怎么使用python面向对象编程 发布时间:2020-08-25 13:42:19 来源:亿速云 阅读:89 作者:Leah 本篇文章给大家分享的是有关怎么使用python面向对象编程,小编觉得挺实用 ...

  7. java 01 02_Java知识系统回顾整理01基础02面向对象01类和对象

    一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一 ...

  8. python中可迭代对象_什么是python中的可迭代对象(iterable object)?

    我们经常在打印报错信息中和英文的文档中看到iter这个词根,可以组合成iterable/iterate等派生词.这个iter可以翻译成"迭代",这样iterable object的 ...

  9. JAVA300集——面向对象编程-类和对象-构造方法及其重载-方法调用

    本章概述 "如何开车":(由多个步骤组成),简单问题,可以使用面向过程. "如何造车":(成千上万个零件,细节很多),复杂问题,宏观上用面向对象把握,微观操作用 ...

  10. Day16:面向对象编程——类和对象

    一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低 ...

最新文章

  1. matlab格拉姆施密特,改进的格拉姆-施密特正交化(modified Gram-Schmidt Process)
  2. 【Python】反转列表 list 的几种方法
  3. PWN2OWN 2017 Linux 内核提权漏洞分析
  4. Python爬虫学习系列教程-----------爬虫系列 你值的收藏
  5. .NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记
  6. HDU2501_多米诺骨牌
  7. 暨南大学计算机复试线2019,暨南大学2019年考研复试分数线
  8. QByteArray
  9. js用函数实现输出100以内与7有关的数_走近(javascript, 函数式)
  10. [JavaEE] 了解Java连接池
  11. OpenGLES.gpus_ReturnNotPermittedKillClient
  12. java教学视频全集迅雷,BAT大厂面试总结
  13. 下手重了,我把同事小刘的腿打断了...
  14. 计算机数学英语基础,2020考研计算机数学复习四大基本方向
  15. 数据库原理及应用实验:数据库安全性控制
  16. Apm飞控学习笔记之-电机解锁和故障保护-Cxm
  17. 还在用 Guava Cache?它才是 Java 本地缓存之王!
  18. python微信投票该用户被锁定、恢复时间_因投票微信账号出现异常被封禁7天的解封方法讲解...
  19. 【PR】简单一招教你使用蒙版做文字动画
  20. 利用Java语言编写一个猜数字游戏(有次数限制)

热门文章

  1. 怎么卸载VS2013?亲测有效
  2. srb timestamp2 (2022/04/22)
  3. 100流明相当于多少w_GE的50W卤素灯光通量标明1500流明实际有这么高吗换几W的LED灯较合适...
  4. 谷歌邮箱SMTP Password:SMTP授权码如何获得
  5. 微诺“新婚”一年:相濡以沫 前路未知
  6. 杭州马开始坐不住,深圳腾窃喜,小龙信为何露出淫淫的笑容
  7. 服务启动类型:自动、自动(延时启动)、手动、禁用
  8. 基于草图的图像检索的文献综述
  9. 20 年来,从微软亚洲研究院走出了中国互联网的半壁江山
  10. 北京内推 | 微软亚洲研究院自然语言计算组招聘NLP研究实习生