我是一名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");
}
}
答案 0 :(得分:4)
向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());
}
答案 1 :(得分:1)
public ConstructorClass(String name, int number) {
this.name = name;
this.number = number;
System.out.println(name + "," + number);
}
答案 2 :(得分:1)
构造函数基本上只是另一种方法(但是为了对圣洁的爱,在面试期间甚至从未对你的教授说过),所以这样做没有错:
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);
}
}
但是这个解决方案真的很丑陋而且有点像“hotfixy”。更好的解决方案是让构造函数只获取值并使用单独的方法来打印您想要的内容:
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
来处理这个问题,但这太过于过分,在你的情况下(或任何其他原始情况)确实没有任何好处。
答案 3 :(得分:1)
尝试在班级中使用toString()
public String toString() {
return this.name + "," + this.number;
}
并在您的主要内容中emp1.toString();
将其打印到您的控制台
答案 4 :(得分:0)
如果要正确打印这些值,则应在方法中设置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());
}
然后在使用main方法的类中,为该特定类调用print方法
实施例
ConstructorClass emp1 = new ConstructorClass("Kevin",20);
emp1.print();
希望这有所帮助,享受:)