猜数字游戏:类的对象的区别

上一节课我们第一次领略了 OOP 的风采,于模棱两可的类和对象究竟是什么东西呢?这节课我们用一个简单的小栗子来向你介绍。

尝试解释

我们说类和对象的关系是设计图和产品的关系,就拿我们的房子来说,一栋楼肯定会有对应的设计图,但设计图绝不会只能对应一栋楼,至少一个小区肯定会用一套设计图不是吗?我们的“类”就是这个“设计图”。我们用这个设计图设计了对象的属性、功能等等的一系列内容,然后通过实例化来产生这个类的对象。

比如我们新建了一个“汽车”的类,然后我们就可以实例化出不同的对象了,比如卡车是汽车,轿车也是汽车。

一个猜数字的小程序

我们来用一个具体的小程序像你说明类和对象的区别——一个游戏主体的类,一个猜数字的玩家的类:

接下来是玩家的类:

两个类都搞定了,但是编译程序发现没有任何动静——没关系,因为我们还没有告诉系统程序的入口。

找到 main 文件,我们来吧游戏主体实例化:

这样,运行后就会有大概如下的结果——由于我们产生了随机数,所以每次的执行结果都会完全一样。

总结

你看,我们在 GuessGame 类中实际上生成了3个玩家的对象,但实际上我们都是从同一个类生成,我们把这三个玩家的对象叫做“实例”,它们都是 Player 这个类产生的,但在实际的运行当中,由于它们的属性各自不同,又不会完全一样——这就是对象的差别。

 

课后题

这里有一段被破坏了的代码文件,我们还记录着当时运行输出的结果,现在需要你来把它补齐。

记得每一行只能写一句代码哟~否则就算是作弊了!

下面是代码执行后的结果:

……对了,如果结果不是10,而是24,那代码又该如何修改呢?

 

“猜数字游戏:类的对象的区别”的2个回复

  1. import Foundation

    class Echo {
    var count = 0
    func hello() {
    print(“hellooooo…..”)
    }
    }

    var e1 = Echo()

    var e2 = Echo()

    var x = 0

    while x < 4 {
    e1.hello()

    e1.count += x

    e2.count = e2.count + e1.count
    x += 1
    }

    print(e2.count)

发表评论

电子邮件地址不会被公开。 必填项已用*标注