Java 创建、保存和编辑费用类别对象中的信息

Java 创建、保存和编辑费用类别对象中的信息,java,object,Java,Object,我正在制作一个expenses类,但我对我制作的对象需要做什么感到困惑。我想我把事情弄得比想象的更复杂了 开发一个expense类,负责记录和更新单个项目,如煤气、书籍、食品等。数据字段将包括类别、描述、日期、金额等。要测试您的类,您应该编写一个简单的驱动程序(一个带有主方法的Java类),实例化至少两个expense对象,测试类的所有功能(即所有可用方法)。您可以为数据使用常量,而不是从键盘或外部文件输入。这应该保留在您的驱动程序中 这是一些UML,我认为对这个问题很重要 Expense -

我正在制作一个expenses类,但我对我制作的对象需要做什么感到困惑。我想我把事情弄得比想象的更复杂了

开发一个expense类,负责记录和更新单个项目,如煤气、书籍、食品等。数据字段将包括类别、描述、日期、金额等。要测试您的类,您应该编写一个简单的驱动程序(一个带有主方法的Java类),实例化至少两个expense对象,测试类的所有功能(即所有可用方法)。您可以为数据使用常量,而不是从键盘或外部文件输入。这应该保留在您的驱动程序中

这是一些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是费用类别的索引。例如,如果 费用是教育费

可能使用第一个重载构造函数实例化对象:

或者,我可以为足球实例化一个费用对象 我刚买的票

使用无参数构造函数

书本=新费用(1,“教科书”

门票=新费用()

"

我在Main中创建了一个对象-Expenses UserExpen=new Expenses(); 但我真的不知道如何使用它来完成上述任务


我已经问过我的教授这是什么意思,但没有真正解释。

首先也是最重要的一点-听起来这是一个编程或相关课程的问题。虽然我们当然可以帮助您,也许可以为您指出正确的方向,但简单地给出答案/解决方案通常是违反规则的

也就是说,你可能还需要你的教授就你在作业中遇到的具体问题给予指导

就你所问的而言,听起来你已经创建了第二个案例(例如,没有信息的费用,使用通用构造函数)。试着玩弄它,创建类似于示例的第二个费用。老实说,我不确定你在问什么,问题非常广泛

编辑-作为对您评论的回应,这里是对正在发生的事情的一个快速解释。您可以使用google Java构造函数或Java方法和参数,并获得完整的解释

基本上是您拥有的代码,您正在创建一个变量(命名为tickets或book等)并将其分配给一个新创建的对象

Expense book = new Expense(...);
这将创建一个名为“book”的变量,并为其指定“Expense(…)”的值,其中“…”是您为其指定的值。在您的特定示例中,“book=new Expense(1,“book name”…)”您正在创建一个新的Expense对象并传递参数“1”、“book name”等

用新信息更新

因此,我从您最近的编辑中看到,您需要创建两个类-费用类和驱动程序类。由于我觉得驱动程序不是任务的真正重点,我想首先澄清您的困惑。驱动程序类通常与实际类分开(在您的代码中,您在expense类中有一个main方法)。通常情况下,情况并非如此。请参阅下面的代码以获取示例

public class ExpenseDriver {
    public static void main(String[] args) {
        //Your test code here
        Expenses book = new Expenses(...);
    }
}
现在,您的问题已经指出了您要测试的内容,因此我已将上面的示例包括在代码中。请注意,“…”将是您的示例硬编码费用值。从这里开始,您必须仅修改费用类,以便使其正常工作


不过我有一个问题——这个问题表明你不需要从控制台读取输入,那么你为什么要这样做呢?这个问题比你要做的要简单得多。

你学校的作业中清楚地说明了这一点

首先,您必须创建费用类(使用UML中的给定数据)以及必要的构造函数和方法(如我所见,您已经部分完成了)

其次,您必须从Expense类实例化一个对象

For e.g: Expense userExpenses = new Expense(); //Pass in the necessary arguments
Last,在driver类(保存main()方法的类)中测试您的Expense对象。通过调用您在Expense类中创建的所有方法来测试它是否有效,并确保实际结果与预期结果类似

示例

userExpenses.printExpenses();  
System.out.println(userExpenses.getDesc());
userExpenses.delete();

那么,你到底想问什么?如何将其转换为代码?我想…我真的不知道如何将其用于“book=新费用(1,“book name”…)”你或你的学校提出的这个问题真的很难理解。那么你的学校要求你做什么呢?你有学校完整的问题吗?你应该问一个具体的问题,你很快就会得到一个具体的答案。但到目前为止,我仍然不知道你的问题到底是什么。
但我真的不知道该怎么办,我知道n执行上述任务。
如何执行创建的对象取决于学校指定的任务。(此处显然未显示)添加了代码并添加了应该做的事情的摘要。很抱歉回复太晚了!添加了代码并添加了应该做的事情的摘要。很抱歉回复太晚了!代码是你写的,还是作业提供的?我自己写的。哦,是的。我一定是真的仔细考虑过了。非常感谢你!@Isabella Wel来吧,如果我的解决方案解决了你的疑问,你可以接受我的解决方案。如果你还有更多问题要问,请写在下面的评论中。哦,不,lol对不起。我在课堂上。非常感谢你的帮助!我现在几乎完成了这个项目。我仍然在学习java,忘记了一些简单的事情…很抱歉。