Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java代码编辑帮助_Java_Oop - Fatal编程技术网

Java代码编辑帮助

Java代码编辑帮助,java,oop,Java,Oop,好的,我有一个内存系统的包…我有类内存,内存和测试…我需要一些帮助来编辑我的代码…我不知道它有什么问题。因此,如果你能给我一些提示或帮助我编辑代码,那将非常有帮助…谢谢…还有我的MemEl我正在尝试为MemEl(Int)、MemEl(long)和MemEl(String)创建一个构造函数…我已经完成了MemEl()、MemEl(byte)和MemEl(short)…我可以用与short和byte相同的方法来完成Int和long吗 现在,当我试图编译内存或MemEl时,我得到了错误 javac M

好的,我有一个内存系统的包…我有类内存,内存和测试…我需要一些帮助来编辑我的代码…我不知道它有什么问题。因此,如果你能给我一些提示或帮助我编辑代码,那将非常有帮助…谢谢…还有我的MemEl我正在尝试为MemEl(Int)、MemEl(long)和MemEl(String)创建一个构造函数…我已经完成了MemEl()、MemEl(byte)和MemEl(short)…我可以用与short和byte相同的方法来完成Int和long吗

现在,当我试图编译内存或MemEl时,我得到了错误

javac MemEl.java
MemEl.java:9:缺少返回语句
}
^
MemEl.java:13:缺少返回语句
}
^
MemEl.java:17:缺少返回语句
}
^

那么我该如何解决这个问题呢?我所做的只是尝试创建构造函数,将int转换为字节,将int转换为short等等,所以我对这个错误有点困惑

这是我的Memory.java代码

class Memory{

    //Here are my instance variables, MemEl[] which is an array of memory elements and I h\
ave my interger size, which is the amount of memory locations available.//

    private MemEl[] memArray;
    private int size;

    //Here are my Constructors for my Memory system.//

    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());

    }
}

Here is my MemEl file code


    class MemEl{

     //MemEl is a memory element with all the characteristics of memory. It can write some val\
     to some address and read some address and return the "elements" or value that are located\
     at that memory location.//

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

}




 Here is my code for Test

class Test{
    public static void main(String[] args)
    {

        int size = 100;
        Memory mymem;
        mymem = new Memory(size);
        mymem.write(98,44);
        mymem.write(96,7);
        MemEl x;
        x = mymem.read(98);
        System.out.println(mymem);
        mymem.dump();
        }
}
类内存{
//下面是我的实例变量MemEl[],它是一个内存元素数组,I h\
ave my interger size,即可用内存位置的数量//
私有MemEl[]memArray;
私有整数大小;
//这是我的内存系统的构造函数//
公共内存(INTS)
{size=s;
memArray=新的MemEl[s];
对于(int i=0;i=0&&loc
您将x声明为整数,但分配给它的值是MemEl类型

您需要将x的声明更改为
MemEl x

javac Memory.java
./MemEl.java:6: missing method body, or declare abstract
public Memory MemEl();
您意外地在方法的实际代码(也称为主体)之前结束了该方法。在第6行中,删除末尾的分号。你的方法是

public Memory MemEl();
{
    elements = 0;
}
但应该是

public Memory MemEl()
{
    elements = 0;
}
./MemEl.java:6:缺少方法体,或声明抽象公共内存MemEl()

编译器错误告诉您MemEl.java的第6行有问题

特别是,它抱怨缺少方法体。方法体是方法的实现,即
{
}

编译器怀疑您是否忘记了方法体,或者您的方法是否因为是
抽象的
而不应该有一个体

编译器找不到方法体,因为第6行多余的分号结束了方法声明,使得编译器不再读取方法体。这个分号确实不应该存在,删除它应该可以解决编译问题

java:9:缺少返回语句

您可能想让代码成为构造函数,但构造函数没有返回类型。现在
这里有一个方法声明返回类型
Memory
,但没有返回语句

看起来你编辑了你的问题来解决deyur指出的问题。如果您在deyur的回答中添加一条注释,表明您已经修复了问题,这将非常有帮助。Brian,您认为您会通过让其他人解决您的编译问题来学习如何编写代码吗?我非常怀疑这会起作用……这不是他问的问题的原因,但这可能是他会遇到的下一个问题。
public Memory MemEl()
{
    elements = 0;
}