Java,将对象传递给其他类

Java的东西

我是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];

错误:

错误:要求的类型不兼容:找到的群集:FeatureVector

如果有帮助,这是我应该达到的要求和输出:

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}}

如果需要更多信息,请告诉我。

太感谢了!这个论坛是一个启示。:)

达卡龙

在add(FeatureVector示例)中,将FeatureVector类的对象存储在数组featureV中

public boolean add (FeatureVector examples){
  [...]
  featureV[currentPosition+1]=examples;
  [...]
}

为此,FeatureV必须是FeatureVector []类或FeatureVector []的超类。

但是,在第二个片段中声明变量featureV时,则将其声明为Cluster []

class Cluster{
  private Cluster [] featureV;

除非FeatureVector扩展了Cluster(在这种情况下可能没有任何意义),否则FeatureV的类型不适合FeatureVector。您需要将featureV的类型更改为FeatureVector []

class Cluster{
  private FeatureVector [] featureV;

为了更简单一点,让我们将类类型和变量名称更改为其他名称:

class FruitBasket {
  private FruitBasket [] fruits;

  public boolean add (Fruit examples){
    fruits[currentPosition+1]=examples;
  }
}

因此,现在我们有了一个FruitBasket类,其中FruitBasket类的每个对象都包含一个FruitBaskets数组。因此,我们有一定数量的可以安装FruitBaskets的插槽。现在,在添加方法中,您选择“水果”,然后尝试将其挤压到“水果篮”插槽中。您知道为什么这行不通吗?您只能将兼容的对象从一个对象投射到另一个对象。因此,当您在使用水果时可以使用苹果或橙子,但在使用FruitBaskets时则不能使用水果。

因此,您要做的是:

class FruitBasket {
  private Fruit [] fruits;

  public boolean add (Fruit examples){
    fruits[currentPosition+1]=examples;
  }
}

这可能就是您想要的。这个FruitBasket现在有一定数量的Fruits插槽,现在您可以使用add()方法将另一个水果添加到购物篮中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过引用将对象传递给其他对象

来自分类Dev

需要帮助将对象传递给其他类(记分板,bukkit)

来自分类Dev

需要帮助将对象传递给其他类(记分板,bukkit)

来自分类Dev

从AngularJS将对象传递给Java

来自分类Dev

将对象传递给JCL加载的类

来自分类Dev

动态将对象传递给类方法

来自分类Dev

qt将对象传递给不同的类

来自分类Dev

Java将对象传递给Quartzjob(Quartz 2)

来自分类Dev

Python将对象传递给对象

来自分类Dev

将其他对象传递给CreateMap

来自分类Dev

将其他对象传递给CreateMap

来自分类Dev

将对象传递给组件

来自分类Dev

将对象传递给SASlideMenuViewController子类

来自分类Dev

将对象传递给$ timeout

来自分类Dev

将对象传递给jQuery.on()

来自分类Dev

将对象传递给Sidekiq

来自分类Dev

c ++:将对象传递给函数

来自分类Dev

将对象传递给PowerShell函数

来自分类Dev

将对象传递给装饰器

来自分类Dev

Rails将对象传递给Partials

来自分类Dev

将对象传递给jQuery.on()

来自分类Dev

Android将对象传递给片段

来自分类Dev

从HTML将对象传递给指令

来自分类Dev

将对象传递给函数方法

来自分类Dev

将对象传递给 setState 失败

来自分类Dev

将对象传递给 redirect()

来自分类Dev

通过另一个类将对象传递给一个类

来自分类Dev

将对象传递给节点的Error类将返回不可访问的对象

来自分类Dev

Java - 将符号类对象传递给方法