我正在开设一个费用课程,但我对我所做的对象需要做什么感到困惑。我想我会让它变得比它想象的更复杂。
开发一个费用类,负责记录和更新单个项目,如煤气,书籍,食品等。数据字段将包括类别,描述,日期,数量等。要测试你的课程,你应该写一个简单驱动程序(带有main方法的Java类),它实例化至少两个开销对象,测试所有类的功能(即所有可用方法)。您可以使用常量来表示数据,而不是从键盘或外部文件输入。这应保留在您的驱动程序中。
这是一些UML - 我认为这个问题非常重要
Expense
- categories: String [0..5] (categories = {"Misc", "education", "food",...})
- catNum: int
+ Expense(catNum:int, desc: String, date: SimpleDateFormat, amt: double, repeat: boolean)
+ Expense(desc: String, date: SimpleDateFormat, amt: double, repeat: boolean)
我遇到的问题是:
“catNum是费用类别的索引。例如,如果是 费用是教育我
可以使用第一个重载的构造函数实例化一个对象:
或者,我可以为足球实例化一个Expense对象 我刚购买的门票
使用no-arg构造函数
book = new Expense(1,“textbook”,...
ticket = new Expense();
“
我在Main中创建了一个对象 - Expenses UserExpen = new Expenses(); 但我真的不知道如何处理它以完成上述任务。
我已经问过我的教授他们的意思,并且不会解释。
答案 0 :(得分:0)
首先 - 听起来这是编程或相关课程的问题。虽然我们当然可以提供帮助并且可能指出您正确的方向,但通常会违反规则来简单地给出答案/解决方案。
话虽这么说,您也可能会要求您的教授就您对作业的具体问题给予指导。
就你所问的而言,听起来你已经创建了第二种情况(例如使用通用构造函数的没有信息的费用)。尝试使用它并创建类似于示例的第二个费用。说实话,我不确定你在问什么,问题非常广泛。
编辑 - 在回复您的评论时,以下是对所发生情况的快速解释。您可以使用Google Java构造函数或Java方法&参数并得到完整的解释。
基本上你拥有的代码,你正在创建一个变量(命名票证或书籍等)并将其分配给新创建的对象。格式与以下类似。
Expense book = new Expense(...);
这将创建一个名为" book"的变量,并为其赋予" Expense(...)"的值。在哪里" ..."是您分配给它的值。在您的具体示例中" book = new Expense(1," book name" ....)" 您正在创建一个新的Expense对象并传递参数" 1","书名"等
更新了新信息
所以我从你最近的编辑中看到你需要创建两件事 - 费用类和驱动程序类。由于我不觉得驾驶员程序真的是作业的重点,我想先澄清你的困惑。驱动程序类通常与实际类分开(在代码中,您在费用类中有一个main方法)。通常情况并非如此。请参阅下面的代码以获取示例。
public class ExpenseDriver {
public static void main(String[] args) {
//Your test code here
Expenses book = new Expenses(...);
}
}
现在您的问题已经表明了您要测试的内容,因此我将上面的示例包含在代码中。请注意" ..."将成为费用的硬编码值的示例。从这里开始,您只需要修改Expense类,以使其正常工作。
我确实有一个问题 - 问题表明你不需要从控制台读取输入,那你为什么这么做?这个问题比你做的要简单得多。