Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java编写对象值_Java - Fatal编程技术网

用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());
        }
    }