好的,所以我有一个内存系统的包...我有类内存,MemEl和测试......我需要一些帮助来编辑我的代码..我无法弄清楚它是什么问题。所以,如果你能给我一些指示或帮助我编辑我的代码,那将非常有帮助...谢谢......也是为了我的MemEl我正在尝试为MemEl(Int),MemEl(long)创建构造函数,以及MemEl(String)...我有MemEl(),MemEl(byte)和MemEl(short)完成....我可以用短和字节的方式做Int和Long吗?
现在当我尝试编译Memory或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();
}
}
答案 0 :(得分:1)
您将x声明为整数,但您指定给它的值是MemEl类型。
您需要将x的声明更改为MemEl x;
。
答案 1 :(得分:1)
javac Memory.java
./MemEl.java:6: missing method body, or declare abstract
public Memory MemEl();
你不小心在方法的实际代码(aka body)之前结束了一个方法。在第6行,删除末尾的分号。你的方法是
public Memory MemEl();
{
elements = 0;
}
但应该是
public Memory MemEl()
{
elements = 0;
}
答案 2 :(得分:0)
./ MemEl.java:6:缺少方法体,或声明抽象公共Memory MemEl();
编译器错误告诉您MemEl.java的第6行出错。
特别是,它抱怨缺少方法体。方法体是该方法的实现,即{
和}
编译器想知道你是否忘记了方法体,或者你的方法是否因为abstract
而不应该有一个体。
编译器找不到方法体,因为第6行的多余分号结束了方法声明,使编译器不再读取方法体。那个分号确实没有业务存在,删除它应该摆脱这个编译问题。
答案 3 :(得分:0)
public Memory MemEl() { elements = 0; }
MemEl.java:9:缺少返回语句
您可能认为代码是构造函数,但构造函数没有返回类型。现在
你有什么方法声明一个返回类型Memory
,但缺少一个return语句。