class Objectsmultiplecnstrctrs {
public static void main(String args[]){
ObjectsForMultipleConstructors engg2=new ObjectsForMultipleConstructors(1);
ObjectsForMultipleConstructors engg3=new ObjectsForMultipleConstructors(1,2);
ObjectsForMultipleConstructors engg=new ObjectsForMultipleConstructors(1,2,3);
}
}
// secondary class
public class ObjectsForMultipleConstructors {
private int hour;
private int minute;
private int second;
public ObjectsForMultipleConstructors(int h){
this.hour=h;
System.out.printf("give one ",+hour);
}
public ObjectsForMultipleConstructors(int h,int m){
System.out.printf("goddamn ",+m);
}
public ObjectsForMultipleConstructors(int h,int m,int s){
System.out.println("guess");
}
}
OUTPUT给了一个该死的猜测
现在我已经声明了int hour = h和我在主类的参数中分配的h的值,所以我期望我定义的h的值显示在文本旁边(System.out。 printf(“该死的”,+ m);),,但它正在做我想做的事情,我在哪里失踪
答案 0 :(得分:3)
为什么使用逗号System.out.printf(“给一个”,
+小时); ?
它必须是System.out.printf(“给一个”+小时);
printf用法的描述是:
将格式化字符串写入此的便捷方法 使用指定的格式字符串输出流和 参数。 调用out.printf形式的这种方法(格式, args)的行为与调用完全相同 out.format(格式,args) 参数: format格式字符串,如格式字符串中所述 句法 args格式说明符引用的参数 格式字符串。如果参数多于格式 说明符,额外的参数被忽略。的数量 参数是可变的,可能为零。最大值 参数的数量受最大尺寸的限制 Java虚拟机定义的Java数组 规格。 null参数的行为取决于 转换。
答案 1 :(得分:1)
为了格式化和打印printf()
的参数,您需要在模式字符串中指定它们,例如:
System.out.printf("give one %d ", hour);
答案 2 :(得分:0)
你需要在printf语句
中有一个格式说明符System.out.printf("give one %d ",hour);
答案 3 :(得分:0)
我认为是因为你没有在 printf
方法中使用%d 访问说明符