Java:如何向作为图形节点的矩形添加名称?

Java:如何向作为图形节点的矩形添加名称?,java,awt,Java,Awt,我是java新手,在以下练习中遇到一些问题: 这就是我要做的: 据我所见,用java.awt.Rectangle制作的矩形具有x和y坐标以及宽度和高度。因此,我可以创建这样的矩形(例如): 但是,我不确定如何向该矩形添加名称。到目前为止,我已经创建了这样一个节点类: import java.awt.Rectangle; public class Node { private int x; private int y; private int width; pr

我是java新手,在以下练习中遇到一些问题:
这就是我要做的:

据我所见,用java.awt.Rectangle制作的矩形具有x和y坐标以及宽度和高度。因此,我可以创建这样的矩形(例如):

但是,我不确定如何向该矩形添加名称。到目前为止,我已经创建了这样一个节点类:

import java.awt.Rectangle;

public class Node {
    private int x;
    private int y;
    private int width;
    private int height;
    private String name;

    public Node(int x, int y, int width, int height, String name) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
        this.name = name;
    }

}

我不确定这是否正确,因为根据我的理解,矩形对象在我的节点构造函数中已经有了5个参数中的4个。那么,正确的做法是什么呢?我应该为一个矩形创建一个父类,然后创建一个节点子类,在这个子类中我只需要在构造函数中添加一个名称吗?希望这足够清楚,我真的很困惑。。。谢谢你抽出时间

您的构造函数已经看起来不错了。据我所知:

节点有一个矩形和一个名称

因此,您的班级成员应该是:

public class Node{
    private String name;
    private Rectangle rectangle;

    ... 
}
通过保持相同的构造函数签名,您可以初始化这两个成员
name
rectangle

对于第三点,您需要有第二个构造函数,默认情况下没有初始化名称和矩形的参数。 默认构造函数如下所示:

public Node(){
      ...
}
编辑(回答您的评论)

几乎:)我不太清楚是否必须在构造函数中传递一个矩形,或者更像位置和大小。如果这取决于我,我会实现这两个

public class Node{

    private String name;
    private Rectangle rectangle;

    public Node(){
        this.name = "some default name";
        this.rectangle = // however you initialise your default rectangle
    }

   public Node(String name, int x, int y, int width, int height){
       this.name = name;
       this.rectangle = .... // use x,y, width and height to create a new rectangle
   }

   // your solution:
   public Node(String name, Rectangle rectangle){
       this.name = name;
       this.rectangle = rectangle;
   }

您的构造函数已经看起来不错了。据我所知:

节点有一个矩形和一个名称

因此,您的班级成员应该是:

public class Node{
    private String name;
    private Rectangle rectangle;

    ... 
}
通过保持相同的构造函数签名,您可以初始化这两个成员
name
rectangle

对于第三点,您需要有第二个构造函数,默认情况下没有初始化名称和矩形的参数。 默认构造函数如下所示:

public Node(){
      ...
}
编辑(回答您的评论)

几乎:)我不太清楚是否必须在构造函数中传递一个矩形,或者更像位置和大小。如果这取决于我,我会实现这两个

public class Node{

    private String name;
    private Rectangle rectangle;

    public Node(){
        this.name = "some default name";
        this.rectangle = // however you initialise your default rectangle
    }

   public Node(String name, int x, int y, int width, int height){
       this.name = name;
       this.rectangle = .... // use x,y, width and height to create a new rectangle
   }

   // your solution:
   public Node(String name, Rectangle rectangle){
       this.name = name;
       this.rectangle = rectangle;
   }

非常感谢。我不确定我是否正确理解了这一点,那么,我的代码应该是这样的吗?导入java.awt.Rectangle;公共类节点{私有字符串名称;私有矩形矩形;公共节点(矩形矩形,字符串名称){this.Rectangle=Rectangle;this.name=name;}公共节点(){this.Rectangle=Rectangle;this.name=name;}(我不确定如何在注释中显示代码,我对堆栈溢出有点陌生,抱歉)谢谢!我不确定我是否正确理解了这一点,我的代码应该是这样的吗?导入java.awt.Rectangle;公共类节点{私有字符串名称;私有矩形矩形;公共节点(矩形矩形,字符串名称){this.rectangle=rectangle;this.name=name;}public Node(){this.rectangle=rectangle;this.name=name;}}}(我不知道如何在注释中显示代码,我对堆栈溢出有点陌生,抱歉)