2012-03-25 37 views
1
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"); 

    } 
} 

輸出是給一個該死的猜測多個構造

現在的是我已經宣佈INT小時= h,對我在主類的參數分配的H值爲,所以即時通訊期待值我定義要在文本旁邊顯示的h(System.out.printf(「該死的」,+ m);),,但是它正在做我想做的事情,即時消失

+0

我假設你的意思是*不是*'做我想做的事',但你沒有詳細說明。你取而代之的是什麼?編譯錯誤?例外?意外的輸出?目前這裏沒有問題。 – EJP 2012-03-25 09:17:49

+0

除非你顯示你的主要方法,否則沒有人能夠猜出你在說什麼。 – crowne 2012-03-25 09:22:00

+0

@Himanshu Saxena問題解決了嗎? – 2012-03-25 10:03:19

回答

3

爲什麼你使用逗號System.out.printf(「給一個」, +小時); ?

它必須是System.out.printf(「give one」+ hour);

printf的用法的說明是:

的便捷方法使用指定格式字符串和 參數格式化的字符串寫入到這個 輸出流。 形式out.printf(格式, 參數)的此方法的調用行爲以完全相同的方式調用 out.format(格式,參數) 參數: 格式的格式字符串在格式字符串 描述語法 args格式字符串格式說明符引用的參數 。如果有多個格式爲 的參數,則會忽略額外的參數。參數 的個數是可變的,可能爲零。參數的最大數量受Java虛擬機 規範定義的Java數組的最大維數 限制。空參數上的行爲取決於 的轉換。

+1

我認爲他正在'System.out.print'與'System.out.printf'混合使用。因此,它可能應該是'System.out.print(「give one」+ hour);''或'System.out.printf(「give one%d」,hour);'。 – 2012-03-25 09:20:01

+0

@Ben,對,對.. – Aykut 2012-03-25 09:21:51

0

你需要有一個格式說明,以及在printf語句

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

爲了格式化和打印參數printf()你需要在模式字符串指定它們,如:

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

我認爲它是因爲你還沒有使用%d訪問說明符的方法的printf