2012-04-14 47 views
0

我有一个Java分配,我想看看我目前是在正确的轨道上创建一个静态对象...是否有可能在一个静态方法使用Java

问题是我要创建一个新的类名称测试器,它声明我不需要任何实例变量或构造函数。除此课程外,我还有4个其他课程,分别是Product类,Lineitem类,Inventory类和Money类。

接下来我要添加一个方法:private static void addTestItems(inventory theInventory)

此方法允许我将四种不同类型的物品添加到清单中。对于每一个,我需要创建一个产品对象,然后创建一个包含该产品的Lineitem对象,然后使用addItem()(我在Inventory类中声明的方法)添加产品对象。

该方法是私有的,因为它只是另一个主要方法的助手:public static void test()在此方法中,我将使用此方法打印出一些输出,说明已添加到清单中的产品。

什么我管理研究是在这样的类中,我不需要声明实例变量和构造函数。来源:http://www.allinterview.com/showanswers/62694.html中的答案#2。

但是,我想知道的是,如果我能够在此方法中创建一个静态产品对象。如果不是,我应该如何去宣布产品对象被添加到库存类中?

除了我的好奇心,通过不声明实例变量和构造函数并直接使用静态方法,这是否意味着这是一个静态类?有没有人有一个关于静态类或静态方法的好例子,或者与我所面对的非常相似?

顺便说一下,我使用BlueJ来完成我的任务。我想感谢大家阅读或帮助我解决这个问题如果你觉得这个问题很糟糕,请发表评论,并告诉我如何改进。顺便一提。

+0

“静态类”只是一个普通的类。事实上,任何其他类型都是可憎的(幸好你不需要担心)。 – 2012-04-14 03:37:41

+0

@BrendanLong“静态类”不仅仅是一个普通的类。 'class Outer {int x; static class AStaticClass {} class ANormalClass {void meth(){Outer.this.x = 5; }}}' – emory 2012-04-14 04:03:01

+0

@emory - 这只是术语的区别。通过正常的课程,我的意思是顶级。我完全知道内部类如何在Java中工作,我的观点是顶级类自动是静态类(内部类对初学者不重要,因为它们只是使代码难以阅读)。 – 2012-04-14 04:13:19

回答

3

难道你不能只是在类上声明一个静态变量来保存你的库存吗?

private static List<inventory> list = new LinkedList<inventory>(); 

它不需要在构造函数或方法中,它可以只是您的变量声明。由于你的类是静态的,它只会被初始化一次。

+0

类本身总是静态的 - 它只会被实例化一次,因为**变量是静态的**。 – 2012-04-14 03:38:17

相关问题