在对象数组上使用toString import java.io.*; 类Main0 { 公共静态void main(字符串参数[]) { 字符串onoma,修饰语,key01; short AriMit,EtosEis,AM,key02; int i,pos; 松叶性箔炎[]=新发性箔炎(3); 对于(i=0;ij),在本例中,位置是固定的(设置为1),但在实际代码中不会
这不是任何东西的复制品,我不是问我的字符串方程,而是问我想使用的toString方法 所以我有这个密码。。。它所做的只是创建一个类型为在对象数组上使用toString import java.io.*; 类Main0 { 公共静态void main(字符串参数[]) { 字符串onoma,修饰语,key01; short AriMit,EtosEis,AM,key02; int i,pos; 松叶性箔炎[]=新发性箔炎(3); 对于(i=0;ij),在本例中,位置是固定的(设置为1),但在实际代码中不会,java,arrays,string,Java,Arrays,String,这不是任何东西的复制品,我不是问我的字符串方程,而是问我想使用的toString方法 所以我有这个密码。。。它所做的只是创建一个类型为foitisis的对象数组,名为pinakas,具有四个属性。如果您查看名为foitis的类,您会注意到一个toString方法,我只想使用toString方法在屏幕上显示一些内容(在本例中,它被简化为数组对象的onoma属性)。注意,我还想发送我希望看到的数组的特定位置(pos->j),在本例中,位置是固定的(设置为1),但在实际代码中不会 我试着编译它,我得到
foitisis
的对象数组,名为pinakas
,具有四个属性。如果您查看名为foitis
的类,您会注意到一个toString
方法,我只想使用toString
方法在屏幕上显示一些内容(在本例中,它被简化为数组对象的onoma
属性)。注意,我还想发送我希望看到的数组的特定位置(pos->j),在本例中,位置是固定的(设置为1),但在实际代码中不会
我试着编译它,我得到了这两个错误,第二个可能是合理的,因为我没有以正确的方式编写代码,但是第一个呢?我又做了同样的事情,我没有遇到任何问题(创建一个对象数组)
您正试图声明一个数组,因此它应该是:
import java.io.*;
class Main0
{
public static void main(String args[])
{
String onoma, epitheto, key01;
short AriMit, EtosEis, AM, key02;
int i, pos;
Foititis pinakas[] = new Foititis(3);
for (i = 0; i < pinakas.length; i++)
{
System.out.println("Ola ta stoixeia na einai taksinomimena symfwna me ton Arithmo Mitroou." + "\n" + "Dwste Onoma.");
do
{
onoma = FUserInput.getString();
if (onoma == "x")
System.out.println("Mh egkyrh timh. Epanalagete");
} while (onoma == "x");
System.out.println("Dwste Epitheto.");
do
{
epitheto = FUserInput.getString();
if (epitheto == "x")
System.out.println("Mh egkyrh timh. Epanalagete");
} while (epitheto == "x");
System.out.println("Dwste Arithmo Mitrwou.");
do
{
AriMit = FUserInput.getshort();
if (AriMit == -1)
System.out.println("Mh egkyrh timh. Epanalagete");
} while (AriMit == -1);
System.out.println("Dwste Etos Eisagwghs.");
do
{
EtosEis = FUserInput.getshort();
if (EtosEis == -1)
System.out.println("Mh egkyrh timh. Epanalagete");
} while (EtosEis == -1);
pinakas[i] = new Foititis(onoma, epitheto, AriMit, EtosEis);
}
pos = 1;
System.out.println(Foititis.toString(pos, pinakas));
}
}
class Foititis
{
private String onoma, epitheto;
private short AriMit, EtosEis;
public Foititis (String on, String ep, short AM, short EE)
{
onoma = on;
epitheto = ep;
AriMit = AM;
EtosEis = EE;
}
public String getEpwnymo() //alles klaseis
{
return epitheto;
}
public String toString(int j, Foititis b[])
{
String emf;
emf = b[j].onoma;
}
}
class FUserInput
/*dedomenwn kateli3a na xrisimopoihsw thn "FUserInput" gia ola ta dedomena, anti na kanw "catch" to "exception" gia kathe scanner ksexwrista, kathws eixa skopo na xrisimopoihsw mono scanner)*/
{
static String getString()
{
String line;
InputStreamReader eisodosDouble = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(eisodosDouble);
try
{
line = br.readLine();
return line;
}
catch(Exception e)
{
return "x";
}
}
static short getshort()
{
String line;
InputStreamReader eisodosDouble = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(eisodosDouble);
try
{
line = br.readLine();
short i = Short.parseShort(line);
return i;
}
catch(Exception e)
{
return -1;
}
}
}
另外@marounnaroun即使他的if's和while's中的
==“x”
应该替换为.equals(“x”)
,但这不是他在问题中所问的问题。在他在底部链接的错误中,他的数组有问题(见下面@mikea的答案),他对非静态方法的静态调用有问题(System.out.println(foitis.toString(pos,pinakas));
应该与System.out.println(pinakas[pos].toString()关联)
和foitis
中的toString
方法应该替换为public String toString(){return onoma;}
@KevinCruijssen非常感谢!它起作用了!andrealy?我怎么会错过这个…无论如何,谢谢你
Foititis pinakas[] = new Foititis[3];