当前位置: 首页 > 知识库问答 >
问题:

为什么java初始化会出现错误?[副本]

姜业
2023-03-14

我试图在循环中初始化数组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_anlysis类型的封闭实例。必须使用cluster_anlysis类型的封闭实例限定分配(例如,x.new A(),其中x是cluster_anlysis的实例)。

共有1个答案

欧阳玺
2023-03-14

使用外部类实例从外部类的静态方法创建内部类实例。

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

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

cluster_anlysis obj = new Cluster_anlysis();

你可以做得很简单。

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

在java中阅读关于内部类

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

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

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

 类似资料:
  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • 我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消

  • 问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件

  • 我正在课堂上尝试设置rabbitmq连接工厂。希望使用@value注释读取application.properties文件中定义的属性。但是,bean配置不正确。我不能理解这一点。代码如下: 以下是错误: 2019-06-18 10:58:02.642信息29037---[main]o.apache.catalina.core.StandardService:正在停止服务[Tomcat]2019-

  • 我花了三天的时间来寻找答案,看视频和论坛帖子,但没有运气。请看这四张照片。它似乎只在问题有图像文件时才这样做。

  • 问题内容: 我正在努力理解为什么我在使用Swift的iOS项目中遇到此编译器错误。如果我创建以下类: 我在“初始化前使用了变量’self.c’” 这一行上收到编译器错误。 起初我以为这是因为编译器无法验证该方法是否无法访问,但是后来我尝试将init方法混入一点: 这次的错误是“在初始化之前使用了变量’self.b’”(在同一行上)。这表明编译器 是 能够检查其性能的方法访问,所以据我可以看到应该有