第三十六课:类和对象:给大家介绍对象

内容来源于网络,本人只是在此稍作整理,如有涉及版权问题,归小甲鱼官方所有。

练习题(来自小甲鱼官方论坛)

0.对象中的属性和方法,在编程中实际是什么?

答:变量(属性)和函数(方法)。


1.类和对象是什么关系呢?

答:类和对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类为它的全部对象给出了一个统一的定义,而它的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。


2.如果我们定义了一个猫类,那你能想象由“猫”类实例化的对象有哪些?

答:实例化就是对类的具体化,是一个真实的猫,比如加菲猫,哆啦A梦,Tom猫,或者你家养的那只小白猫……


3.类的定义有些时候或许不那么“拟物”,有时候会抽象一些,例如我们定义一个矩形类,那你会为此添加哪些属性和方法呢?

答:属性可以是长和宽,方法可以是计算周长和面积等。


4.类的属性定义应该尽可能抽象还是尽可能具体?

答:正确的做法是应该尽可能的抽象,因为这样更符合面向对象的思维。


5.请用一句话概括面向对象的几个特征?

答:
封装:对外部隐藏对象的工作细节
继承:子类自动共享父类之间数据和方法的机制
多态:可以对不同类的对象调用相同的方法,产生不同的效果


6.函数和方法有什么区别?

答:函数和方法其实几乎完全一样,但有一点区别是方法默认有一个self参数,这个参数是什么意思,请听下一讲详细分解。


编程题

0.按照以下提示尝试定义一个Person类并生成实例对象。

属性:姓名(默认姓名为“小甲鱼”)
方法:打印姓名
提示:方法中对属性的引用形式需加上self,如self.name

答:代码如下:

class Person:
    name = '小甲鱼'

    def printName(self):
        print(self.name)

1.按照以下提示尝试定义一个矩形类并生成类实例对象。

属性:长和宽
方法:设置长和宽 -> setRect(self),获得长和宽 -> getRect(self),获得面积 -> getArea(self)
提示:方法中对属性的引用形式需加上self,如self.width

答:代码如下:

class Rectangle:
    length = 5
    width = 4

    def setRect(self):
        print("请输入矩形的长和宽")
        self.length = float(input("长:"))
        self.width = float(input("宽:"))

    def getRect(self):
        print("这个矩形的长是:%.2f,宽是:%.2f" % (self.length, self.width))

    def getArea(self):
        return self.length * self.width

2.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

  • 对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
  • 类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

你可能感兴趣的:(第三十六课:类和对象:给大家介绍对象)