【发布时间】:2026-01-16 21:35:01
【问题描述】:
我是 Java 新手,正在尝试了解面向对象的编程。
我正在尝试将一个对象存储在一个数组中。但是,该数组位于与原始对象不同的类中。我得到一个编译器错误“不兼容的类型”需要(1 个类)找到(另一个类)。
请查看我的代码,让我知道我做错了什么。
这是来自“Cluster”类,该方法应该将“FeatureVector”类中的一个对象存储到一个名为“featureV”的数组中。
public boolean add (FeatureVector examples){
int currentPosition;
if (this.getSize()==this.featureV.length){
return false;
}
else
currentPosition=this.getSize();
featureV[currentPosition+1]=examples;
return true;
编辑:
这是 Cluster 和 featureV 的定义方式:
class Cluster{
private Cluster [] featureV;
Cluster(int capacity){
Cluster [] featureV= new Cluster [capacity];
错误:
错误:不兼容的类型 必需:集群 找到:特征向量
如果有帮助,这是我应该实现的要求和输出:
Cluster c;
c = new Cluster(10);
c.add(new FeatureVector("A", new double[] { 0.0, 0.0 }));
c.add(new FeatureVector("B", new double[] { 1.0, 1.0 }));
c.add(new FeatureVector("C", new double[] { 1.0, 0.0 }));
c.add(new FeatureVector("D", new double[] { 2.0, 0.0 }));
FeatureVector.setVerbose(true);
System.out.println(c);
以上语句会在控制台显示如下:
Cluster: {A: {0.0, 0.0}, B: {1.0, 1.0}, C: {1.0, 0.0}, D: {2.0, 0.0}}
如果需要更多信息,请告诉我。
非常感谢!这个论坛是一个启示。 :)
【问题讨论】:
-
featureV是如何声明的? -
请发布您得到的确切错误,并指出源代码中此错误所指的位置。还显示如何声明类型,例如
featureV是什么? -
考虑一下您的对象模型。 Cluster 对象包含一个 Cluster 对象数组没有多大意义。它是什么集群?
-
这里的想法是FeatureVector类包含大量的实例(数据的例子),Cluster类是保存来自FeatureVector集合的若干组(或集群)数据。说:我在 FeatureVector 中有 40 个对象,但我想把它分成 5 个对象。所以我将有 5 个集群实例存储来自 FeatureVector 的 8 个对象
-
所以Cluster包含一个FeatureVector数组,FeatureVector包含...?
标签: java arrays class object methods