2012-10-03 38 views
0

我的任務(現在編輯全asssignment)的Java需要幫助有關構造函數

  • 使類平底船與上面定義的屬性(座標需求與斧頭和y的值來定義。選擇正確的數據類型。
  • 讓2個構造函數的類平底船不接受任何參數
  • 一個構造函數,並把它初始化爲(0,0)
  • 一個構造函數接受兩個參數x和y座標這其中有被初始化到x和y值並且有th eir各自的值作爲參數

    在Punt類中打印print()方法以打印座標。 •通過在名爲Main的main()類中執行以下操作來測試Punt類。 o使用不帶參數的構造函數從Punt創建一個對象。 o使用另一個構造函數(帶有2個參數的構造函數)在Punt中創建另一個對象。來自 O調用對象的打印方式,並檢查輸出是否正確

我的問題是數據類型,我應該用什麼?一個int和一個int的y或應該使用雙?另外對於不接受參數的構造函數,我該如何寫這個?

這個類將

+0

你可以更好地去雙.. –

+0

不要使用浮點座標點... – Shark

+0

所以使用雙打座標? –

回答

1
public class Punt 
{ 
    private int x, y; 

    public Punt() 
    { 
     this(0,0); 
    } 

    public Punt(int x, int y) 
    { 
     this.x = x; 
     this.y = y; 
    } 

    public void print() 
    { 
     System.out.println("(X, Y) = ("+x+", "+y+")"); 
    } 
} 

JB Nizet並進行有效的點。

public class Main 
{ 
    public static void main(String[] args) 
    { 
     Punt p1 = new Punt(); 
     Punt p2 = new Punt(-2, -1); 

     p1.print(); 
     p2.print(); 
    } 
} 

現在可能還有完成它......

+2

OP不要求給他的代碼..即使他問,你不應該.. –

+1

你沒有回答OP的問題,你只是完成了他的任務。此外,你可以用最不合適的方式之一完成它。 (對this()的調用是不必要的,格式化很尷尬,封裝被忽略,默認的構造函數是沒有理由的私有的)。 – Vulcan

+2

爲什麼你選擇了兩個參數的構造函數來調用無參數的構造函數,而不是做出更合乎邏輯的相反的事情。 –

2

您使用的數據類型取決於您的設計決策。您希望網格具有多少特異性?你想讓所有的Punt完全落在網格線上,還是你希望在你的飛機上有兩個度數?如果前者使用int;如果是後者,則使用double。這個決定不需要任何真正的編程知識,只需要一些批判性思維。

無參數構造函數的寫法與編寫無參數方法的方式相同。

public Punt() { 

    //Do stuff 

} 
1

你需要多少精度?你的座標是否只是整數或實數的一部分?這應該回答你關於什麼數據類型的問題。 ORACLE JavaDocs在constructors上有幾頁。

+0

它會像(0,0)和(-2,1)等。 –

+0

在這種情況下,整數就可以了。如果你想擁有(1.5,2.3),你需要漂浮或雙打。 – lcs

1

你應該使用的數據類型取決於這個類將用於什麼。如果你只需要整數 - 使用int,如果你需要更多的精度,使用非整數(double需要更多的空間,因爲你沒有任何關於精度浮點的具體要求似乎是最合理的選擇)。