Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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,我是一名java初学者,我正在努力适应对象。我是否可以在main中打印构造函数的值?我怎样才能打印出20岁的凯文?谢谢 public class MainConstructor { public static void main(String[] args) { ConstructorClass emp1 = new ConstructorClass("Kevin", 20); } } //构造函数类 public class ConstructorClas

我是一名java初学者,我正在努力适应对象。我是否可以在main中打印构造函数的值?我怎样才能打印出20岁的凯文?谢谢

public class MainConstructor {

    public static void main(String[] args) {

        ConstructorClass emp1 = new ConstructorClass("Kevin", 20);
    }
}
//构造函数类

public class ConstructorClass {

    private String name;
    private int number;

    public ConstructorClass(String name, int number) {
        this.name = name;
        this.number = number;
        System.out.println("called");
    }
}
toString()
方法添加到
ConstructorClass

public String toString() {
    return name + "," + number;
}
然后从
main
调用此命令:

public static void main(String[] args) {
    ConstructorClass emp1 = new ConstructorClass("Kevin",20);
    System.out.println(emp1.toString());
}

构造器基本上只是另一种方法(但出于对神圣事物的热爱,在面试时,甚至对你的教授都不要这样说),所以这样做没有错:

public class ConstructorClass {
private String name;
private int number;
public ConstructorClass(String name, int number) {
    this.name = name;
    this.number = number;
    System.out.println(name+" "+number);
    }
}
但这个解决方案真的很难看,有点“热固定”。更好的解决方案是让构造函数只获取值,并使用单独的方法打印所需内容:

public ConstructorClass(String name, int number) {
        this.name = name;
        this.number = number;
}
void printNameAndNumber() {
        System.out.println(name+" "+number);
}
在你的主要课程中使用这样的课程

ConstructorClass c = new ConstructorClass("John",85)
c.printNameAndNumber();
还有一些人喜欢通过循环和重写
ToString
来处理这个问题,但这太过分了,在您的情况下(或任何其他原始情况下)实际上没有任何好处。

尝试在类中使用ToString()

public String toString() {
        return this.name + "," + this.number;
    }

在您的主要任务中,只需执行
emp1.toString()
将其打印到控制台

如果要正确打印这些值,应该在方法中设置getter方法

下面的例子

public String getName(){
    return name;
}

public int getNumber(){
    return number;
} 
然后要打印这些值,您应该使用方法toString()和方法print()来显示您的值

范例

public String toString(){
   return getName() + " " + getNumber();
}

public void print(){
   System.out.println(toString());
}
ConstructorClass emp1 = new ConstructorClass("Kevin",20);
emp1.print();
然后在带有main方法的类中,为该特定类调用print方法

范例

public String toString(){
   return getName() + " " + getNumber();
}

public void print(){
   System.out.println(toString());
}
ConstructorClass emp1 = new ConstructorClass("Kevin",20);
emp1.print();

希望对您有所帮助,请欣赏:)

System.out.println(name+”,“+number)您还可以实现getter/setter moethods…您可以在类中实现以下方法:public void print(){System.out.println(name+”,“+number)},然后调用emp1.print();谢谢你的帮助。
emp1.toString()
我想相当于
emp1
。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。
emp1.toString()
emp1
有什么区别吗?我想你可以做emp1.toString();或System.out.println(emp1);(在控制台中打印)应该是一样的。由于toString是一个类的默认打印值,所以您只会覆盖它,所以更改该类的输出。