【问题标题】:how to print class data members using only object name [duplicate]如何仅使用对象名称打印类数据成员[重复]
【发布时间】:2018-06-29 07:41:25
【问题描述】:
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 中打印值。为什么?

【问题讨论】:

  • java中的toString方法需要学习
  • 你需要写一个toString方法。查看上面的链接。

标签: java


【解决方案1】:

您需要创建一个 getter 才能打印它们,或者在打印时直接访问特定字段。

如果您想要一种通过一次调用打印所有成员的方式,您也可以简单地实现/覆盖 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()

【讨论】:

  • overwrite toString 是正确的术语
  • 这不会编译为toString() 必须返回String。除了在标准输出中打印值之外,toString() 规范的一部分。
  • @Lino 嘿 :) 覆盖你的意思!
  • @davidxxx 这么简单的任务。我完全错过了它。覆盖我的意思。是的:)
【解决方案2】:

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

如果你需要访问一个对象的属性,你需要使用点操作符来访问它们。

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

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 2022-12-18
    • 2019-03-15
    • 1970-01-01
    • 2023-01-16
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多