你好,我对我的小程序有疑问如何打印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());
}
答案 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;
}
来源: