java中的多个构造函数

时间:2012-03-25 09:13:11

标签: java arguments

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);),,但它正在做我想做的事情,我在哪里失踪

4 个答案:

答案 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 访问说明符