2015-11-24 3 views
-1

, когда я печатаю значение чувства, оно дает мне это значение почему? Настроения @ 1540e19d Настроения @ 677327b6получить значения из другого класса или объекта в java

public class Sentiment extends Sample{ 
    public String value; 

    public Sentiment(String val){ 

     value = val; 

    } 
} 

in main class 
Sentiment positive = new Sentiment("+"); 
     Sentiment negative = new Sentiment("-"); 

     System.out.println(positive); 
     System.out.println(negative); 
+1

переопределить метод ToString в классе настроений и записать его на выходе какой Youd, как это в – JRowan

ответ

1

Поскольку поведение по умолчанию toString() является печать имя класса и хэш-код для класса.

Override toString() в своем классе, чтобы получить лучшую печать дружественных результатов

например:

public class Sentiment extends Sample{ 
    public String value; 

    public Sentiment(String val){ 

     value = val; 

    } 
     @Override 
    public String toString(){ 
    return "Value = " +value; 
    } 
} 
1

вы должны либо сделать

System.out.println(positive.value); 

или

определяют toString() в Sentiment класса

public class Sentiment extends Sample{ 
    public String value; 

    public Sentiment(String val){ 

     value = val; 

    } 

public String toString(){ 

return ""+value; 

} 
} 
0

Когда вы пытаетесь записать на stdout, Java автоматически вызовет метод toString(). Когда объект явно не имеет метод toString(), он возвращается к классу Object, который имеет этот метод.

Object.java:toString()

getClass().getName() + '@' + Integer.toHexString(hashCode()) 
Смежные вопросы