为什么Rectangle类的add(int newx,int newy)方法修改高度和宽度参数?

问题描述:

import java.awt.Rectangle; 

public class AddTester { 
    public static void main(String[] args) { 

    Rectangle box = new Rectangle(5, 10, 20, 30); 
    System.out.println(box); 
    //output: java.awt.Rectangle[x=5,y=10,width=20,height=30]  

    box.add(0, 0); 
    System.out.println(box); 
    //output: java.awt.Rectangle[x=0,y=0,width=25,height=40] 
    } 
} 

为什么在对象对象上调用add(int newx,int newy)方法后宽度和高度会发生变化?为什么Rectangle类的add(int newx,int newy)方法修改高度和宽度参数?

我其实刚刚在纸上画了一个笛卡尔系统上的矩形。现在看起来可能是因为另一个矩形作为当前矩形的扩展插入。因此,它在宽度和高度上延伸。它是否正确?

Example

+1

只需阅读文档。它会准确告诉你该方法的功能。 – Boann

+0

您将矩形放大以包含给定的点。当然,它的宽度和/或高度必须改变! –

+0

@king_nak是的,它在绘制后发生在我身上。 add方法(newx,newy)的参数名称使我认为矩形只会改变这些值。 – Dorkymon

你会想先看看Java API,只要你有关于核心Java方法应该是怎样表现的问题。

public void add(int newx, 
       int newy) 

,将一个点,由整数参数下一页末,newy此Rectangle的边界指定。
如果此Rectangle具有小于零的任何维度,则应用不存在矩形的规则。在这种情况下,此矩形的新边界将具有等于指定坐标的位置以及等于零的宽度和高度。