Вопрос конструктора Java - PullRequest
2 голосов
/ 07 февраля 2010

Как мне написать конструктор, чтобы заменить целые числа на целые, длинные или строковые .... Я делаю систему памяти, и у меня есть код для памяти и элемент памяти (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 ]

1 голос
/ 07 февраля 2010

Если вы можете позволить себе потерять точность, тогда вы можете разыграть:

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

и разбор:

public MemEL(String str) {
    elements = Integer.parseInt(str);
}
1 голос
/ 07 февраля 2010

elements является int. byte и short можно привести неявно (без вашего ведома) к int. long и String не могут, поэтому вы не сможете добавить конструктор в класс MemEl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...