gpt4 book ai didi

java - 设置接口(interface)问题和对象

转载 作者:行者123 更新时间:2023-12-01 15:54:24 26 4
gpt4 key购买 nike

抱歉,主题主题不好,但我找不到正确的内容。 (如有误解,请纠正主题)。

所以我的问题是:我在 Circle 和 Square 之后有接口(interface) Shape 和两个类实现。我需要编写一个收集圆形和方形的类。它必须是不会添加任何重复对象的收集方法之一。在阅读了 java 文档后,我选择了“set”。但我不确定这是否是个好主意。 (我可以使用四种方法之一:map.set.list.或queque)。

毕竟我创建了另一个名为 ShapeSet 的类和方法

public void ShapeSet(Shape Set)

看起来像这样:

public class ShapeSet {
public ShapeSet() {}

Set <Shape> setting; //is it wrong?
public void addShape(Shape shape) {
setting.add(shape);
}
...

}

之后我认为我做得对,我在主类中创建了定义正方形和圆形的构造函数。我还创建了 ShapeSet ss

public static void main(String[] args) {
// TODO code application logic here
ShapeSet ss = new shapes.ShapeSet();
Shape c = new Circle(3);
Shape s = new Square(4);
ss.addShape(c);
ss.addShape(s);
ss.iterator();
}

但是在运行程序时,我在 ss.addShape(x) 行上遇到错误,netbeans 提示他发现了 null 异常。为什么? ;( 我认为输入到方法 shapeset 的类型是错误的,并且可能声明集合设置的位置不好。但是如何解决这个问题?我是 java 新手。我感谢您的帮助。提前致谢。

最佳答案

关于 NullPointerException 的答案可能是因为在您的 ShapeSet 类中,您尚未分配成员字段“setting”,如

Set <Shape> setting = new HashSet<Shape>();

但是我的问题是,为什么要有 ShapeSet 类?看来您只需要将 Set 作为具有 main 方法的类中的字段即可。

关于java - 设置接口(interface)问题和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5369941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com