各位大大…我想在這個程式新增2個方法,第1方法overlap()傳入一個Rectangle物件,並傳回一個Rectangle物件,代表兩個矩形重疊的區域;第2方法isSquare()傳回boolean值,表示該矩形是否為正方形,這二個方法要怎麼寫丫…
class Point {
public int x,y;
public Point(int x,int y) {
this.x = x;
this.y = y;
}
}
class Rectangle {
Point upperleft;
Point lowerright;
// 完整版建構方法
public Rectangle(Point upperleft,Point lowerright) {
this.upperleft = upperleft;
this.lowerright = lowerright;
}
// 不需參數的建構方法
public Rectangle() {
this(new Point(0,0),new Point(5,-5));
}
// 直接指定座標
public Rectangle(int x1,int y1,int x2,int y2) {
this(new Point(x1,y1),new Point(x2,y2));
}
// 正方形
public Rectangle(Point upperleft,int length) {
this(upperleft,new Point(upperleft.x + length,
upperleft.y - length));
}
// 計算面積
public int area() {
return (lowerright.x - upperleft.x) *
(upperleft.y - lowerright.y);
}
}
public class OverloadConstructor {
public static void main(String[] argv){
Rectangle a = new Rectangle(0,0,5,-5);
Rectangle b = new Rectangle(new Point(3,3),4);
System.out.println(\"a的面積:\" + a.area());
System.out.println(\"b的面積:\" + b.area());
}
}
(我急需…給我完整程式~~~拜託!!)
2006-06-19 15:59:35 · 1 個解答 · 發問者 旺旺 2 in 電腦與網際網路 ➔ 程式設計
請問大大…
放在main()裡不能執行耶…有錯誤
public Rectangle overlay(Rectangle r) {
^
1 error
2006-06-20 08:25:36 · update #1
public Rectangle overlay(Rectangle r) { // 首先先排除掉兩個矩形無交集時,傳回 null 值 if ((r.upperleft.x >= lowerright.x && r.upperleft.y >= lowerright.y) || (r.lowerright.x <= upperleft.x && r.lowerright.y <= upperleft.y)) return null; int x1 = (r.upperleft.x > upperleft.x) ? r.upperleft.x : upperleft.x; // 重疊矩形左上角的 x 值 int y1 = (r.upperleft.y > upperleft.y) ? r.upperleft.y : upperleft.y; // 重疊矩形左上角的 y 值 int x2 = (r.lowerright.x > lowerright.x) ? lowerright.x : r.lowerright.x; // 重疊矩形右下角的 x 值 int y2 = (r.lowerright.y > lowerright.y) ? lowerright.y : r.lowerright.y; // 重疊矩形右下角的 y 值 return new Rectangle(x1, y1, x2, y2); } public boolean isSquare() { // 當左上角與右下角的 x 值差及 y 值差相等時,即可視為正方形 return Math.abs(upperleft.x - lowerright.x) == Math.abs(upperleft.y - lowerright.y); }這兩個方法你可以在 main() 裡測試看看。
2006-06-23 16:22:32 補充:
抱歉,我沒有看到你的補充問題。這個 overlay() 方法不能放在 main() 裡面。請放在 Rectangle 類別中,與 area() 同層。如此在 OverloadConstructor 的 main() 中就可以使用之。
2006-06-20 08:07:25 · answer #1 · answered by ? 7 · 0⤊ 0⤋