Menu
CoddyTech

回顾:汽车工厂

本课属于 Coddy Lua 学习旅程的“面向对象编程”单元。第 11 课,共 70 课。

challenge icon

挑战

简单

让我们来构建一个完整的 Car 类,把你在本章学到的所有内容结合起来!你将创建一个汽车工厂系统,每辆车都有自己的型号和颜色,以此展示正确的模块组织方式和彼此独立的实例。

你将把代码分成两个文件:

  • Car.lua:按照标准的原型模式定义 Car 类。这个类需要一个 :new(model, color) 构造函数,用来创建各自拥有属性的汽车。还要包含一个 :describe() 方法,让每辆车都能介绍自己。
  • main.lua:引入 Car 模块,并创建多个汽车实例,以展示每辆车都能保持自己的独立状态。

你的 :describe() 方法应该按照以下确切格式打印:

A [color] [model]

你将收到 4 个输入:

  1. 第一辆车的型号
  2. 第一辆车的颜色
  3. 第二辆车的型号
  4. 第二辆车的颜色

在主文件中,使用提供的输入创建两辆车,并让它们各自在单独一行介绍自己。

例如,如果输入是 Sedan、blue、Truck 和 red,输出应该是:

A blue Sedan
A red Truck

每辆车都应该保存自己的型号和颜色,以证明你的类创建的实例确实彼此独立。

亲手试试

-- 加载 Car 模块
local Car = require('Car')

-- 读取输入
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()

-- TODO:使用 Car:new() 创建两个汽车实例
-- TODO:对每辆汽车调用 :describe(),打印其描述

面向对象编程中的所有课

自己练习: Lua 在线编译器