2016-03-03 44 views
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; 
     } 
    } 
} 

这不是任何东西的重复,我不是问我的字符串方程式,而是关于我想要使用的toString方法!在对象数组上使用toString

所以我有这个代码...它所要做的就是创建一个类型为Foititis的对象数组,名为pinakas并具有四个属性。如果你看类Foititis,你会注意到一个toString方法,我想要做的就是使用toString方法在屏幕上显示一些东西(在这个例子中它简化为数组对象的onoma属性)。请注意,我也想发送我想要看到的数组的某个位置(pos - > j),在这个例子中,位置是固定的(设置为1),但是在实际的代码中它不会。

我试着编译它,我得到了这两个错误,第二个可能是合理的,因为我没有以正确的方式编写代码,但第一个呢?我又做了同样的事情,我没有任何问题(创建一个对象数组)。

The error

+0

也http://stackoverflow.com/questions/4969171/cannot-make-static-reference-to -non-static-method – fabian

+0

@MarounMaroun即使他的if和while中的'==“x”'应该替换为“.equals(”x“)”,这并不是他在他的问题中所要求的。在他连接底部的错误中,他的数组存在问题(请参阅下面的@mikea答案),并且他在静态调用非静态方法时遇到问题(System.out.println(Foititis .toString(pos,pinakas));'应该用'System.out.println(pinakas [pos] .toString());'和'Foititis'中的'toString'方法替换为'public String toString (){return onoma;}' –

+0

@KevinCruijssen非常感谢!IT WORKED!和 –

回答

1

您试图声明数组,所以它应该是:

Foititis pinakas[] = new Foititis[3]; 
+0

真的吗?我怎么错过了...无论如何谢谢你 –

相关问题