繁体   English   中英

java中的多个构造函数

[英]multiple constructors in java

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

为什么使用逗号System.out.printf(“给一个” , +小时);

它必须是System.out.printf(“给一个”+小时);

printf用法的描述是:

使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。 调用out.printf(format,args)形式的此方法的行为与调用out.format(format,args)完全相同。参数:format格式字符串语法中描述的格式字符串args引用的参数格式字符串中的格式说明符。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受Java虚拟机规范定义的Java数组的最大维数限制。 null参数的行为取决于转换。

为了格式化和打印printf()参数,您需要在模式字符串中指定它们,如:

System.out.printf("give one %d ", hour);

您还需要在printf语句中使用格式说明符

System.out.printf("give one %d ",hour);

我认为这是因为你没有在方法printf中使用%d访问说明符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM