Java如何设计抽象数据类型(ADT)?
How to design an abstract data type (ADT) in Java?
我的试卷中有一个问题要求为给定场景创建一个 ADT。而且只要求写抽象方法,不写具体实现
它需要代表学校的时间table。学校必须跟踪为每门课程分配的时间。科目可能会根据年级而有所不同,并且这些科目会随着时间而改变。
我不明白 ADT 方法中应该包含什么。我想知道如何在一段时间内使用该 ADT table class.
一般来说,定义 ADT 可以被视为将用户需求转换为可以用编程语言表达的行为规范的行为(java 在这种情况下)。
现在开始:
显然你需要一些抽象来定义时间table,所以你将创建一个class/接口来“表达”这个。
这个抽象的行为应该通过向这个接口或者一个class添加方法来表达。所以你阅读了用户要求(在这种情况下,“用户”是你的老师:)):
School has to keep track of which period is allocated for each subject taught.
好的,你如何表示“所教科目”?可能它值得拥有自己的 class 或者它可能只是一个字符串。或者也许每个受试者都有一个身份证号码?这取决于你的设计。
现在,什么是时期?它是由一些 class Period
识别的,还是你建模它是一对 startTime
/endTime
?(提示,在 java 中你不能 return 同一方法中的两个对象)当您对所有这些问题都有答案时,您可以定义一个方法来接受主题和 return 句点。将此方法添加到您的时间抽象中 table。您已指定行为!
第二句是一个要求,更像是对主题应该是什么样子的解释。
Subjects could vary according to the grades and these subjects can change over time.
现在您知道科目可能必须包含成绩,并且科目会随着时间而变化。如果这一点不是很清楚(对我来说,坦率地说,我相信你可以 ask/find 在练习文档中进行额外的说明)但无论如何,我想我已经描述了你应该完成的过程设计 ADT。
我的试卷中有一个问题要求为给定场景创建一个 ADT。而且只要求写抽象方法,不写具体实现
它需要代表学校的时间table。学校必须跟踪为每门课程分配的时间。科目可能会根据年级而有所不同,并且这些科目会随着时间而改变。
我不明白 ADT 方法中应该包含什么。我想知道如何在一段时间内使用该 ADT table class.
一般来说,定义 ADT 可以被视为将用户需求转换为可以用编程语言表达的行为规范的行为(java 在这种情况下)。
现在开始:
显然你需要一些抽象来定义时间table,所以你将创建一个class/接口来“表达”这个。
这个抽象的行为应该通过向这个接口或者一个class添加方法来表达。所以你阅读了用户要求(在这种情况下,“用户”是你的老师:)):
School has to keep track of which period is allocated for each subject taught.
好的,你如何表示“所教科目”?可能它值得拥有自己的 class 或者它可能只是一个字符串。或者也许每个受试者都有一个身份证号码?这取决于你的设计。
现在,什么是时期?它是由一些 class Period
识别的,还是你建模它是一对 startTime
/endTime
?(提示,在 java 中你不能 return 同一方法中的两个对象)当您对所有这些问题都有答案时,您可以定义一个方法来接受主题和 return 句点。将此方法添加到您的时间抽象中 table。您已指定行为!
第二句是一个要求,更像是对主题应该是什么样子的解释。
Subjects could vary according to the grades and these subjects can change over time.
现在您知道科目可能必须包含成绩,并且科目会随着时间而变化。如果这一点不是很清楚(对我来说,坦率地说,我相信你可以 ask/find 在练习文档中进行额外的说明)但无论如何,我想我已经描述了你应该完成的过程设计 ADT。