Java &引用;错误:找不到符号";关于继承相关程序

Java &引用;错误:找不到符号";关于继承相关程序,java,inheritance,netbeans-8,Java,Inheritance,Netbeans 8,我收到一条消息说错误:找不到关于c1的符号。certificateAwarded(等级)语句。我不知道是什么问题。我真的需要所有能得到的帮助 代码如下: ExamDetails.java package Exams; import javax.swing.JOptionPane; public class ExamDetails { public static void main(String[] args) { StudentResults sr = new S

我收到一条消息说
错误:找不到关于
c1的符号
。certificateAwarded(等级)语句。我不知道是什么问题。我真的需要所有能得到的帮助

代码如下:

ExamDetails.java

package Exams;

import javax.swing.JOptionPane;

public class ExamDetails {

    public static void main(String[] args) {

        StudentResults sr = new StudentResults();
        sr.inputStudentName();
        sr.inputExamName();
        sr.inputScore();
        sr.inputGrade();
        sr.DisplayDetails();

        Certificates c1 = new Certificates();
        c1.certificateAwarded(grade);
    }

}
package Exams;

import javax.swing.JOptionPane;

public class StudentResults {

    private String fullname;
    private String examName;
    private int examScore;
    private int examGrade;

    public String getStudentName()
    {
        return fullname;
    }

    public void setStudentName(String name)
    {
        fullname = name;
    }

    public String getExamName()
    {
        return examName;
    }

    public void setExamName(String exam)
    {
        examName = exam;
    }

    public int getExamScore()
    {
        return examScore;
    }

    public void setExamScore(int score)
    {
        examScore = score;
    }

    public int getExamGrade()
    {
        return examGrade;
    }

    public void setExamGrade(int grade)
    {
        examGrade = grade;
    }

    public void inputStudentName()
    {
        fullname  = JOptionPane.showInputDialog("Enter the student's name");
    }

    public void inputExamName()
    {
        examName  = JOptionPane.showInputDialog("Enter the subject's name");
    }

    public void inputScore()
    {
        String scoreString = new String();
        JOptionPane.showInputDialog("Enter the student's score");
        examScore = Integer.parseInt(scoreString);
    }

    public void inputGrade()
    {
        String gradeString = new String();
        JOptionPane.showInputDialog("Enter the student's grade");
        examGrade = Integer.parseInt(gradeString);
    }

    public String DisplayDetails()
    {
        String d;
        d = "Student Name : " + fullname + "Exam Name : " + examName + "Score : " + examScore + "Grade : " + examGrade;
        return d;
    }
}
package Exams;

public class Certificates extends StudentResults {

    private String certificate;
    public String Grade;

    Certificates()
    {
        super();
        certificate = "No Certificate Awarded";
    }

    String certificateAwarded(/*int grade*/) {

        //StudentResults g = new StudentResults();
        //Grade = g.inputGrade();
        //Grade = inputGrade(examGrade);

        if(Grade.equals("Grade : A"))
        {
            this.certificate = "Certificate of Excellence";
        }
        else
            if(Grade.equals("Grade : B"))
            {
                this.certificate = "Certificate of Achievement";
            }
            else
                if(Grade.equals("Grade : C"))
                {
                    this.certificate = "Certificate of Achievement";
                }
                else
                    this.certificate = "No Certificate Awardedt";

           return this.certificate;
    }  
}
StudentResults.java

package Exams;

import javax.swing.JOptionPane;

public class ExamDetails {

    public static void main(String[] args) {

        StudentResults sr = new StudentResults();
        sr.inputStudentName();
        sr.inputExamName();
        sr.inputScore();
        sr.inputGrade();
        sr.DisplayDetails();

        Certificates c1 = new Certificates();
        c1.certificateAwarded(grade);
    }

}
package Exams;

import javax.swing.JOptionPane;

public class StudentResults {

    private String fullname;
    private String examName;
    private int examScore;
    private int examGrade;

    public String getStudentName()
    {
        return fullname;
    }

    public void setStudentName(String name)
    {
        fullname = name;
    }

    public String getExamName()
    {
        return examName;
    }

    public void setExamName(String exam)
    {
        examName = exam;
    }

    public int getExamScore()
    {
        return examScore;
    }

    public void setExamScore(int score)
    {
        examScore = score;
    }

    public int getExamGrade()
    {
        return examGrade;
    }

    public void setExamGrade(int grade)
    {
        examGrade = grade;
    }

    public void inputStudentName()
    {
        fullname  = JOptionPane.showInputDialog("Enter the student's name");
    }

    public void inputExamName()
    {
        examName  = JOptionPane.showInputDialog("Enter the subject's name");
    }

    public void inputScore()
    {
        String scoreString = new String();
        JOptionPane.showInputDialog("Enter the student's score");
        examScore = Integer.parseInt(scoreString);
    }

    public void inputGrade()
    {
        String gradeString = new String();
        JOptionPane.showInputDialog("Enter the student's grade");
        examGrade = Integer.parseInt(gradeString);
    }

    public String DisplayDetails()
    {
        String d;
        d = "Student Name : " + fullname + "Exam Name : " + examName + "Score : " + examScore + "Grade : " + examGrade;
        return d;
    }
}
package Exams;

public class Certificates extends StudentResults {

    private String certificate;
    public String Grade;

    Certificates()
    {
        super();
        certificate = "No Certificate Awarded";
    }

    String certificateAwarded(/*int grade*/) {

        //StudentResults g = new StudentResults();
        //Grade = g.inputGrade();
        //Grade = inputGrade(examGrade);

        if(Grade.equals("Grade : A"))
        {
            this.certificate = "Certificate of Excellence";
        }
        else
            if(Grade.equals("Grade : B"))
            {
                this.certificate = "Certificate of Achievement";
            }
            else
                if(Grade.equals("Grade : C"))
                {
                    this.certificate = "Certificate of Achievement";
                }
                else
                    this.certificate = "No Certificate Awardedt";

           return this.certificate;
    }  
}
Certificates.java

package Exams;

import javax.swing.JOptionPane;

public class ExamDetails {

    public static void main(String[] args) {

        StudentResults sr = new StudentResults();
        sr.inputStudentName();
        sr.inputExamName();
        sr.inputScore();
        sr.inputGrade();
        sr.DisplayDetails();

        Certificates c1 = new Certificates();
        c1.certificateAwarded(grade);
    }

}
package Exams;

import javax.swing.JOptionPane;

public class StudentResults {

    private String fullname;
    private String examName;
    private int examScore;
    private int examGrade;

    public String getStudentName()
    {
        return fullname;
    }

    public void setStudentName(String name)
    {
        fullname = name;
    }

    public String getExamName()
    {
        return examName;
    }

    public void setExamName(String exam)
    {
        examName = exam;
    }

    public int getExamScore()
    {
        return examScore;
    }

    public void setExamScore(int score)
    {
        examScore = score;
    }

    public int getExamGrade()
    {
        return examGrade;
    }

    public void setExamGrade(int grade)
    {
        examGrade = grade;
    }

    public void inputStudentName()
    {
        fullname  = JOptionPane.showInputDialog("Enter the student's name");
    }

    public void inputExamName()
    {
        examName  = JOptionPane.showInputDialog("Enter the subject's name");
    }

    public void inputScore()
    {
        String scoreString = new String();
        JOptionPane.showInputDialog("Enter the student's score");
        examScore = Integer.parseInt(scoreString);
    }

    public void inputGrade()
    {
        String gradeString = new String();
        JOptionPane.showInputDialog("Enter the student's grade");
        examGrade = Integer.parseInt(gradeString);
    }

    public String DisplayDetails()
    {
        String d;
        d = "Student Name : " + fullname + "Exam Name : " + examName + "Score : " + examScore + "Grade : " + examGrade;
        return d;
    }
}
package Exams;

public class Certificates extends StudentResults {

    private String certificate;
    public String Grade;

    Certificates()
    {
        super();
        certificate = "No Certificate Awarded";
    }

    String certificateAwarded(/*int grade*/) {

        //StudentResults g = new StudentResults();
        //Grade = g.inputGrade();
        //Grade = inputGrade(examGrade);

        if(Grade.equals("Grade : A"))
        {
            this.certificate = "Certificate of Excellence";
        }
        else
            if(Grade.equals("Grade : B"))
            {
                this.certificate = "Certificate of Achievement";
            }
            else
                if(Grade.equals("Grade : C"))
                {
                    this.certificate = "Certificate of Achievement";
                }
                else
                    this.certificate = "No Certificate Awardedt";

           return this.certificate;
    }  
}

在ExamDetails.java类中,您不会声明或实例化传递给
certificateAwarded
方法的
grade
变量


另外,在Certificates.java类中注释掉了参数。您应该取消对参数的注释。

要编译代码,
grade
必须是

  • 在main方法中声明的局部变量
  • ExamDetails类上定义的字段
  • 这两个声明都不存在,因此编译器告诉您它找不到等级“符号”


    尝试添加
    int grade=sr.getExamGrade()或类似内容。

    正如评论所建议的,您需要声明“等级”。没有它,编译器就无法完成确定Certificates.certificateAwarded的签名,因为参数列表中的内容是签名的一部分。更重要的是,代码中包含以下内容:

    向上的字符串证书(/*int grade*/)

    参数“int grade”被注释掉。因此,编译器看到:

    字符串证书向前()

    因此,编译器可能告诉您的是,它正在寻找一个名为certificateAwarded的证书方法,该方法接受1个类型为{无论“grade”是什么类型的}的参数。它没有发现

    我说“可能是”是因为你在问题行中缺少两个符号:等级和一个带有匹配签名的方法

    我可以想到两件事,你可以尝试修复它:

  • 将“c1.certificateAwarded(等级);”更改为“c1.certificateAwarded();”
  • 将“等级”声明为main中某个位置(或main中可见的位置)的int,并将“String certificateAwarded(/int grade/)”更改为“String certificateAwarded(int grade)”

  • 我会先尝试第一种选择。如果有必要尝试第二种方法,您需要在main(或main可以看到等级的位置)和certificateAwarded方法中添加额外的代码。

    哪里声明了等级?
    等级未声明。完整的错误消息是什么?Hi@PaulBoddington、@Kami和@iamnotmaynard。我刚刚删除了
    等级
    ,但现在程序在输入(从字符串到int)后停止。在“inputScore”语句中。为什么会这样?感谢各位的回复。正如9Deuce提到的,一旦你修复了这个问题,你发布的代码将产生其他编译器错误,即使在添加了这个答案中建议的行时也是如此。我尝试了这个语句,但仍然出现了错误,所以我只是删除了
    等级
    。但另一件事困扰着我,程序在输入(从字符串到int)后停止。在“inputScore”语句中。为什么会这样?谢谢你的回复。请注意,“等级”与“等级”是不同的变量。Java区分大小写。我刚刚删除了
    等级
    。但另一件事困扰着我,程序在输入(从字符串到int)后停止。在“inputScore”语句中。为什么会这样?谢谢你的回复。我刚刚删除了
    等级
    。但另一件事困扰着我,程序在输入(从字符串到int)后停止。在“inputScore”语句中。为什么会这样?谢谢您的回复。@JwanRadzi,因为您没有将从
    JOptionPane
    中拉入的值赋给任何东西。查看此站点,您正在将空白
    字符串
    解析为
    整数