gpt4 book ai didi

java - 为什么这个java初始化会出错?

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

我试图在循环中初始化数组 C,但它给出错误:
C 是类 ipdata 的数组,我已经声明它并尝试在循环内初始化它。

import java.io.*;
import java.util.*;
public class cluster_anlysis {
class ipdata{


float a,b;
int cluster;

ipdata()
{
a=0;
}
}
public float modc(float a){
if(a<0.0)
a=-a;
return a;
}
public static void main(String[] args) {
cluster_anlysis obj=new cluster_anlysis();
ipdata C[] = new ipdata[50];
float mean1,mean2,mean3;
int i,j,n1=0,n2=0,n3=0,flag=0;
float ina=0.0f;
float inb=0.0f;

//BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Scanner scan =new Scanner(System.in);
System.out.println("pls enter no of data: ");
Integer no = scan.nextInt();
System.out.println("\nnow enter the x and y values");
for(i=0;i<no;i++)
{
ina=scan.nextFloat();
inb=scan.nextFloat();
System.out.println(ina);
C[i]= new ipdata(); // this line is giving error

C[i].a=ina;
C[i].b=inb;
C[i].cluster=0;
}


}

}

可能是什么问题?它说 :无法访问类型 cluster_ananalysis 的封闭实例。必须使用 cluster_anthesis 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 cluster_ananalysis 的实例)。

最佳答案

您使用外部类实例外部类的静态方法创建一个内部类实例

c[i]= new cluster_anlysis().new ipdata();

因为您已经在 main 方法的第一行中创建了 cluster_ananalysis 实例。

cluster_anlysis obj = new Cluster_anlysis();

你可以简单地做。

c[i]= obj.new ipdata();

了解 Inner classes in java

但如果您想从外部类的非静态方法创建内部类实例,则不需要外部类的实例。

 public class OuterClass {
public void method(){
InnerClass inner = new InnerClass();
}
class InnerClass{
}
}

并且还遵循 @A.R.S 和 @JB Nizet 在其解决方案中发布的类名称约定。

关于java - 为什么这个java初始化会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218813/

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