错误:找不到符号超类和子类

时间:2018-03-30 05:43:16

标签: java cannot-find-symbol

我是java的初学者,我正在尝试编写一个java代码,程序必须计算超类中的算术平均值和子类中的标准差。

这是我的代码:

import java.util.*;
class ArithmeticMean
{
    double  sum=0, mean, variance, sd, vsum;
    double a[] = new double[10];
    int n,i;
    void accept()
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("How many Numbers do you want to enter?");
        n=scanner.nextInt();

        for(i=0; i<n; i++)
        {
            System.out.println("Enter No ["+(i+1)+"] : ");
            a[i] = scanner.nextInt();
        }       
    }
    void calculate()
    {
        for(i=0; i<n; i++)
        {
            sum = sum + a[i];
            mean = sum/n;
        }
    }
}
class StandardDeviation extends ArithmeticMean
{
    void calculateSd()
    {
        for(i=0; i<n; i++)
        {
            vsum = vsum+((a[i]-mean)*(a[i]-mean));
            variance = vsum/(n-1);
            sd=Math.sqrt(variance);
        }
    }
    void display()
    {
        System.out.println("Arithmetic mean = "+mean);
        System.out.println("Variance = "+variance);
        System.out.println("Standard Deviation = "+sd);
    }
}
class u3Program9
{
    public static void main(String args[])
    {
        StandardDeviation s = new StandardDeviation();
        s.accept();
        s.calculate();
        s.calculateSD();
        s.display();
    }
} 

以下是我遇到的错误:

enter image description here

4 个答案:

答案 0 :(得分:1)

Java是区分大小写的编程语言。

  

您已在StandardDeviation类中定义calculateSd()并在StandardDeviation calculateSD()的实例上调用s.calculateSD()。它应该以{{1​​}}

的形式加入

答案 1 :(得分:1)

您的方法声明为calculateSd

在您的主要方法更改

s.calculateSD(); 

s.calculateSd();

答案 2 :(得分:0)

您输入的方法名称失败。 您在StandardDeviation类中的方法:calculateSd。 您调用方法:calculateSD

您需要将方法编号重写为大写或小写。

答案 3 :(得分:0)

错误消息说它找不到名为&#39; calculateSD()&#39;的符号。在StandardDeviation类中。

这给了一个线索。该方法定义为&#39; calculateSd()&#39;在StandardDeviation.class中,小写&#39; d&#39;在后面。