用java编写对象值
您好,我对我的小程序有疑问,如何打印用java编写对象值,java,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
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());
}
您似乎忘记覆盖
toString()
或者(正如您目前拥有的代码)
您可能还应该在Boss
中添加一个getName()
方法
public String getName() {
return name;
}
对象中的默认toString()
方法打印类名@hash code。您可以重写类中的toString()
方法以打印正确的输出
@Override
public String toString(){
return name;
}
资料来源:
您需要重写
toString
方法以获得所需的功能。另外,我建议在使用时将字符串名称设置为private
。如果需要提供对字符串的访问权
,请创建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());
}
}
什么是toString()
?如果您没有用自己的代码重写toString。它将使用Object.toString()返回您需要覆盖toString的对象@[Location]。对象的“值”不是name
。如果要打印名称,可以实现toString
,也可以打印p1.name
。非常感谢您的帮助:)
@Override
public String toString(){
return name;
}
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());
}
}