在java中编写对象值

时间:2014-06-23 02:20:50

标签: java

你好,我对我的小程序有疑问如何打印p1的值?当我使用p1.toString()方法时,这仍然向我显示我在google中搜索的对象的地址以及其他方式,我仍然不知道如何执行此操作。这是代码:

public class Boss {
String name;

public Boss(String input) { // This is the constructor
    name = "Our Boss is also known as : " + input;
}

public static void main(String args[]) {
    Boss p1 = new Boss("Super-Man");

    System.out.println(p1.toString());
}

3 个答案:

答案 0 :(得分:1)

您似乎忘记了覆盖toString()

// Add this to Boss
public String toString() {
  return name;
}

或(正如您目前的代码所示),

// System.out.println(p1.toString());
System.out.println(p1.name);

您也应该向getName()添加Boss方法,

 public String getName() {
   return name;
 }

答案 1 :(得分:1)

您需要覆盖toString方法才能获得您期望的功能。另外,我建议您将String name设置为private。如果您需要提供对String的访问权限,请创建get方法以将其返回。这可以防止有人在无权访问时对其进行修改。未在Java中提供访问修饰符,默认为protected

public class Boss {
    private String name; // Change access modifier to private

    public Boss(String input) {
        name = "Our Boss is also known as : " + input;
    }

    @Override
    public String toString(){ // Override the toString method
        return name;
    }

    public static void main(String args[]) {
        Boss p1 = new Boss("Super-Man");
        System.out.println(p1.toString());
    }
}

答案 2 :(得分:0)

Object中的默认toString()方法打印类名@哈希码。您可以覆盖类中的toString()方法以打印正确的输出。

@Override
public String toString(){
    return name;
}

来源:

  1. http://javarevisited.blogspot.com/2012/09/override-tostring-method-java-tips-example-code.html
  2. http://www.geeksforgeeks.org/overriding-tostring-method-in-java/
相关问题