2

我在这里有这个对象:

public class ItemInfo {

    String productName;
    String rfidTagNumber;
    String originalLocal;
    String currentLocal;
    double productPrice;

    public ItemInfo(String name, String tag, String origLoc, String curLoc, double price) {
        productName = name;
        rfidTagNumber = tag;
        originalLocal = origLoc;
        currentLocal = curLoc;
        productPrice = price;
    }

我需要ItemInfo在这里创建并引用一个对象:

public class ItemInfoNode {

    ItemInfoNode next;
    ItemInfoNode prev;

    public ItemInfoNode(){

    }

    public void setInfo(ItemInfo info) {

    }

    public ItemInfo getInfo(){
        return null;    
    }

    public void setNext(ItemInfoNode node) {

    }

    public void setPrev(ItemInfoNode node) {

    }

    public ItemInfoNode getNext() {
        return null;
    }

    public ItemInfoNode getPrev() {
        return null;
    }
}

我知道如何制作新对象,但我不太确定这是正确的,所以我省略了这一行,我如何只创建一个引用?

编辑:只是另一个小侧边栏,我有两个 ItemInfoNode 对象 next 和 prev 如上所示,我只是将构造函数留空吗?可以吗?我粘贴了课程的其余部分以显示功能,如果无论如何这将有助于答案。再次感谢!

4

4 回答 4

5

在 Java 中,new关键字返回对新构造对象的引用。因此,在

String s = new String("foo");

variable 的值s是对 String 对象的引用。然后,如果你要做类似的事情

String t = s;

那么你已经设置t了与 相同的值s,也就是说,它现在是对同一个对象的引用。

于 2013-02-19T05:30:03.133 回答
0

目前尚不清楚您要完成什么,但创建对象的最简单方法是使用类名ItemInfonew关键字。例如,您可以使用这行代码并全局声明您的对象引用:

ItemInfo myObj= new ItemInfo();
于 2013-02-19T05:30:18.860 回答
0

您可以像这样创建一个新实例

ItemInfo myObj = new ItemInfo("name", "tag", "location", "local", 0.0);

或者,做这样的事情: -

public class ItemInfoNode{

        ItemInfo myObj;

        public ItemInfoNode(ItemInfo myObj){

        this.myObj = myObj;

}
于 2013-02-19T05:32:23.867 回答
0

这看起来像是LinkedList的实现。因此,您要做的是使用 setter 存储对下一个节点和上一个 ItemInfoNode 的引用 - 即 setNext() 和 setPrev() 方法,方法是将参数(它们是引用)存储为您的类变量 next 和 prev已经宣布了。然后在你的吸气剂中 - 即 getPrev() 和 getNext() 你可以返回你存储的变量。

public void setNext(ItemInfoNode node){
    next = node;
}
public void setPrev(ItemInfoNode node){
    prev = node;
}
public ItemInfoNode getNext(){
    return next;
}
public ItemInfoNode getPrev(){
    return prev;
}
于 2013-02-19T06:04:28.870 回答