zoukankan      html  css  js  c++  java
  • 课时36:类与对象:给大家介绍对象

    目录:

      一、对象=属性+方法

      二、课时36课后习题及答案

    大家之前已经听说过封装的概念,把乱七八糟的数据扔进列表里面,这是一种封装,是数据层面的封装;把常用的代码段打包成一个函数,这也是一种封装,是语句层面的封装;本章学习的对象,也是一种封装的思想,不过这种思想显然要更高级一步:对象的来源是模拟真实世界,把数据和代码都放在了一起。

    打个比方:乌龟就是真是的一个对象:(从两方面来描述:红色的为静态特征的描述,蓝色的为动态的行为)

    ************************

    一、对象=属性+方法

    ************************

     python中的对象也是如此,一个对象的特征称为“属性”,一个对象的行为称为“方法”。

    如果把“乌龟”写成代码,将会是下边这样:

    class Turtle: # Python 中的类名约定以大写字母开头
        """关于类的一个简单例子"""
        # 属性
        color = 'green'
        weight = 10
        legs = 4
        shell = True
        mouth = '大嘴'
    
        # 方法
        def climb(self):
            print("我正在很努力的向前爬......")
    
        def run(self):
            print("我正在飞快的向前跑......")
    
        def bite(self):
            print("咬死你咬死你!!")
    
        def eat(self):
            print("有得吃,真满足^_^")
    
        def sleep(self):
            print("困了,睡了,晚安,Zzzz

     以上代码定义了对象的特征(属性)和行为(方法),但还不是一个完整的对象,将定义的这些称为类(Class)。需要使用类来创建一个真正的对象,这个对象就叫作这个类的一个实例(Instance)也叫实例对象(Instance Objects)

    可以这样理解:这好比工厂的流水线要生产一系列玩具,是不是先做出这个玩具的模具,然后根据这个模具再进行批量生产,才得到真正的玩具。

    再举个例子:盖房子,,是不是得先有个图纸,但光有个图纸你能不能住进去?显然是不能的。图纸只告诉了你这个房子长什么样子,但图纸并不是真正的房子。要根据图纸用钢筋水泥建造出来的房子才能住人,另外根据一张图纸就能盖出很多房子。创建一个对象,也叫类的实例化,其实很简单:

    >>> #先运行程序
    >>> tt = Turtle()

    注意,类名后边跟着的小括号,这跟调用函数是一样的,所以在Python中,类名约定用大写字母开头,函数用小写字母开头,这样更容易区分。另外赋值操作并不是必需的,但如果没有把创建好的实例对象赋值给一个变量,那这个对象就没办法使用,因为没有任何引用指向这个实例,最终会被Python的垃圾收集机制自动回收。

    那如果要调用对象里的方法,使用点操作符(.)即可。

    >>> tt.climb()
    我正在很努力的向前爬......
    >>> tt.bite()
    咬死你咬死你!!
    >>> tt.sleep()
    困了,睡了,晚安,Zzzz

    *******************************

    二、课时36课后习题及答案

    *******************************

     

  • 相关阅读:
    JavaScript对原始数据类型的拆装箱操作
    Javascript继承(原始写法,非es6 class)
    动态作用域与词法作用域
    自行车的保养
    探索JS引擎工作原理 (转)
    C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库
    C语言提高 (6) 第六天 文件(续) 链表的操作
    C语言提高 (5) 第五天 结构体,结构体对齐 文件
    C语言提高 (4) 第四天 数组与数组作为参数时的数组指针
    C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
  • 原文地址:https://www.cnblogs.com/DC0307/p/9524230.html
Copyright © 2011-2022 走看看