Java构造函数问题

时间:2010-02-07 19:45:45

标签: java constructor

如何编写构造函数来将整数更改为整数或长整数或字符串....我正在创建一个内存系统,我有内存和内存元素(MemEl)的代码和我的测试代码,我正在尝试编写这些构造函数:MemEl(int),MemEl(long),MemEl(String)我已经为短路和字节做了它,但我需要一些帮助。感谢。

这是我的记忆码:

class Memory{
    private MemEl[] memArray;
    private int size;
    public Memory(int s)
    {size = s;
        memArray = new MemEl[s];
        for(int i = 0; i < s; i++)
            memArray[i] = new MemEl();
    }
    public void write (int loc, int val)
    {if (loc >=0 && loc < size)
            memArray[loc].write(val);
        else
            System.out.println("Index Not in Domain");
    }
    public MemEl read (int loc)
    {return memArray[loc];
    }
    public void dump()
    {
        for(int i = 0; i < size; i++)
            if(i%1 == 0)
                System.out.println(memArray[i].read());
            else
                System.out.print(memArray[i].read());
    }
}

这是我的记忆元素代码:

class MemEl{

    private int elements;
    public Memory MemEl[];
    {
        elements = 0;
    }
    public void  MemEl(byte b)
    {
        elements = b;
    }
    public void MemEl(short s)
    {
        elements = s;
    }
    public int read()
    {
        return elements;
    }
    public void write(int val)
    {
        elements = val;
    }

}

这是我的测试代码

class Test{
    public static void main(String[] args)
    {
        int size = 100;
        Memory mymem;
        mymem = new Memory(size);
        mymem.write(98,4444444);
        mymem.write(96,1111111111);
        MemEl elements;
        elements = mymem.read(98);
        System.out.println(mymem);
        mymem.dump();
        }
}

2 个答案:

答案 0 :(得分:1)

elementsintbyteshort可以隐式(不知道)转发给intlongString不能,因此您无法将构造函数添加到MemEl

答案 1 :(得分:1)

如果你有能力输掉精度,那么你可以施放:

public MemEl(long longValue) {
    elements = (int) longValue;
}

并解析:

public MemEL(String str) {
    elements = Integer.parseInt(str);
}