如何仅使用对象名称打印类数据成员

时间:2018-06-29 07:41:26

标签: java

class Jatin{
    int value = 9;
    public static void main(String args[]){
        Jatin obj = new Jatin();
        String str = new String("Hello");

        System.out.println(obj);//prints unique id why
        System.out.println(str);//prints string value why
    }
}

如何修改此代码并使用Jatin类的obj对象打印其所有数据成员,即打印出值= 9。 而在String str sop中输出值。为什么?

2 个答案:

答案 0 :(得分:1)

您需要创建一个吸气剂以打印它们,或者在打印时直接访问特定字段。

如果您想要一种通过一次调用即可打印所有成员的方法,也可以只实现toString方法。

例如:

class Jatin {
  String name = "Jatin";
  int value = 9;

  @Override
  public String toString() {
      System.out.println("Name: " + name + "\n" + " value: " + value);
  }
}

或者,如果您只需要一个特定值,只需在字段上调用即可。

Jatin obj = new Jatin();
System.out.println(obj.value); // will print the value

之所以只获得唯一的哈希,是因为您没有toString()

答案 1 :(得分:1)

直接打印类的实例会返回该对象的 className @ hashcode

如果需要访问对象的属性,则需要使用点运算符访问它们。

在您的情况下,obj.valueSystem.out.println(obj.value);