我的程序中出现错误,提示错误:类,接口或枚举预期。该怎么办?

时间:2018-10-05 02:07:53

标签: java encapsulation

ILS类别:

import java.util.Scanner;

class iLs {
    private String name;
    private String section;
    private double one;
    private double two;
    private double three;
    private double four;
    private double genave;


    public iLs(String name, String section, double one, double two, double three, double four, double genave){


        this.name =  name;
        this.section = section;
        this.one = one;
        this.two = two;
        this.three = three;
        this.four = four;
        this.genave = genave;

    }


    public void setName(String name){
        this.name = name;
    }


    public void setSection(String section){
        this.section = section;

    }

    public void setOne(String one){
        this.one = one;

    }

    public void setTwo(String two){
        this.two = two;
    }


    public void setThree(String three){
        this.three = three;
    }


    public void setFour(String four){
        this.four = four;
    }


    public void setGenave(String genave){
        this.genave = genave;
    }


    public String getName(){
        return name;
    }


    public String getSection(){
        return section;
    }


    public double getOne(){
        return one;
    }


     public double getTwo(){
        return two;
    }


    public double getThree(){
        return three;
    }


    public double getFour(){
        return four;
    }


    public double getGenave(){
        return genave;
    }
}

学生班:

import java.util.Scanner;

class Student {
    public static void main(String args[]) {
        String name;
        String section;
        double one;
        double two;
        double three;
        double four;
        double genave;


        iLs a =  new iLs();
        Scanner input = new Scanner(System.in);


        a.setName = (input.nextLine());
        a.setSection = (input.nextLine());
        a.setOne = (input.nextLine());
        a.setTwo = (input.nextLine());
        a.setThree = (input.nextLine());
        a.setFour = (input.nextLine());
        a.setGenave = (input.nextLine());


        System.out.println("Name: " + a.getName());
        System.out.println("\nSection: " + a.getSection());
        System.out.println("\n1q: " + a.getOne());
        System.out.println("\n2q: " + a.getTwo());
        System.out.println("\n3q: " + a.getThree());
        System.out.println("\n4q: " + a.getFour());
        System.out.println("\nGeneral Average: " + a.getGenave());
    }
}

起初,我没有公开课,所以程序要求要公开课。但是当我这样做时,就发生了error: class, interface, or enum expecte帮助!!!

我不知道该怎么做,而且我对计算机编程还很陌生。

4 个答案:

答案 0 :(得分:2)

除了@ghostCat给出的答案之外,学生代码还包括

iLs a =  new iLs();

但是在这个iLS类中,没有一个仅具有零参数的构造函数

public iLs(String name, String section, double one, double two, double three,
                                                  double four, double genave){

答案 1 :(得分:0)

假设上面的内容来自单个文件,那么第一个问题就是在第一个类定义之后的 中有一个导入语句。

在类的开头,导入语句只能出现一次。

答案 2 :(得分:0)

您看过这个吗? Compiler error: "class, interface, or enum expected"

此外,在Student中,您正在尝试实例化新的iL,但是没有匹配的构造函数签名。 iLs中声明的唯一构造函数需要7个参数,并且您尝试调用默认构造函数(即,无参数)。 Java仅在未声明其他构造函数的情况下才提供默认构造函数。声明构造函数后,如果要使用默认构造函数,则也必须声明它。

答案 3 :(得分:0)

您提供的代码不是有效的代码,因为您具有参数化的构造函数,因此请在ILS类中添加默认构造函数以使iLs a = new iLs();在Student类中起作用。更改ILS类的数据类型或转换值以匹配您的数据类型。 Scanner.nextLine将返回string,您所有的one,two,three,four都是double