我給了一個類PolyShape通過它們的邊數和一個包含它們邊長的數組表示多邊形,並且我必須將它擴展爲一個稱爲四邊形的類,它表示具有4邊的多邊形。我不確定如何解決這個問題。我開始了這個程序,但是有人能幫我解釋一下我應該在數組中包含什麼,以及在這種情況下應該如何使用VarArgs?如何使用繼承來實現VarArgs?
import java.util.Arrays;
public class PolyShape {
private int numSides;
private int[] sideLengths;
public PolyShape(int ... sideLengths) {
this.sideLengths = sideLengths;
this.numSides = sideLengths.length;
}
public int getNumSides() {
return numSides;
}
public int[] getSideLengths() {
return Arrays.copyOf(sideLengths, sideLengths.length);
}
public int getPerimeter() {
int perim = 0;
for(int n : sideLengths)
perim += n;
return perim;
}
public String toString() {
String s = "I am a shape with " + numSides + " sides of length: ";
for(int length : sideLengths)
s += length + " ";
s += "\nI am a polygon.";
return s;
}
}
四邊形類:
public class Quadrilateral extends PolyShape {
private final int POLYGON_SIDES = 4;
public Quadrilateral(int ... sideLengths) {
super(sideLengths);
}
public String toString() {
String parentString = super.toString();
parentString += "\nI am a Quadrilateral.";
return parentString;
}
}
你做了什麼看起來不錯。我想也許你應該做的就是編寫'Quadrilateral'構造函數,這樣必須有四個參數,而不是可變參數。這可能看起來像'public Quadrilateral(int side1,int side2,int side3,int side4){super(side1,side2,side3,side4); }' –
你更可能從http://codereview.stackexchange.com得到任何其他有用的反饋(我絕對可以想到一些) –
@DavidWallace謝謝!這是否意味着我的常數沒有用處?只是爲了擺脫它是否安全?而且我不必包括額外的獲得者和安裝者? – sall