有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我在部门函数的if-else中的部门构造函数中出错

dept()方法中的if-else语句中的Department构造函数有一个错误。我该怎么解决这个问题

我尝试了几次使用不同的函数名将函数抽象出来,但都不起作用

教材

import java.util.*; 

class Book
{
    int Book_id;
    String Book_Name;
    String Author_Name;
    int pages;
    float prices;

    void getbook()
    {
        Scanner SC=new Scanner(System.in);
        System.out.println("Enter the Book ID");
        Book_id=SC.nextInt();
        System.out.println("Enter the Book Name");
        Book_Name=SC.next();
        System.out.println("Enter the Author Name");
        Author_Name=SC.next();
        System.out.println("Enter the pages");
        pages=SC.nextInt();
        System.out.println("Enter the prices");
        prices=SC.nextFloat();
    }

    void display()
    {
        System.out.println("Book Id"+Book_id);
        System.out.println("Book Name"+Book_Name);
        System.out.println("Author Name"+Author_Name);
        System.out.println("Pages"+pages);
        System.out.println("Prices"+prices);
    }
}

班级学生

class Student extends Book
{
    String Student_N;
    int roll_no;
}

班级部门

class Department extends Student 
{
    int choice;
    String Dept_Code;
    Department(int roll,String C)
    {

        System.out.println(""+C+""+roll_no);
    }

    void  dept()
    {
        Scanner SC=new Scanner(System.in);
        System.out.println("1.Civil Enginerring");
        System.out.println("2.Computer Enginerring");
        System.out.println("3.Information Tecnology");
        System.out.println("4.Mechanical Engineering");
        System.out.println("5.Electorics Enginerring");
        System.out.println("6.Electrical Enginerring");
        System.out.println("Enter the choice");
        choice=SC.nextInt();
        switch (choice)
            {
            case 1:
                dept_data(); 
                break;
            case 2:
                dept_data();
                break;
            case 3:
                dept_data();
                break;
            case 4:
                dept_data();
                break;
            case 5:
                dept_data();
                break;
            case 6:
                dept_data();
                break;

        }
    }

    void dept_data()
    {
        Scanner SC=new Scanner(System.in);
        System.out.println("Enter the Student Details");
        System.out.println("Enter the Student Name");
        SC.next();
        System.out.println("Enter the Student Roll No");
        SC.nextInt();
        System.out.println("Enter the Book ID");
        SC.nextInt();
        System.out.println("Enter the Book Name");
        SC.next();
    }

    int dept_del(String C)
    {
        Scanner SC=new Scanner(System.in);
        if(C.compareTo("ci")==0||C.compareTo("CI")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
        else if(C.compareTo("IT")==0||C.compareTo("it")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
        else if(C.compareTo("CO")==0||C.compareTo("co")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
        else if(C.compareTo("ME")==0||C.compareTo("me")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
        else if(C.compareTo("EC")==0||C.compareTo("ec")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
        else if(C.compareTo("EE")==0||C.compareTo("ee")==0)
        {
            System.out.println("Enter the roll no");
            roll_no=SC.nextInt();
            Department(roll_no,C); //error
        }
    }

}

课堂项目

class Project 
{
    public static void main(String[] args)
    {
        int i=1,flag=0;
        Department A[]=new Department[100];
        Scanner SC=new Scanner(System.in);
        System.out.println("Enter the Choice");
        System.out.println("1.Add a Book\n2.Display the Book");
        while(flag==0)
        {
            int choice=SC.nextInt();
            switch (choice)
            {
                case 1 :                    
                        A[i].getbook(); 
                        i++;                        
                case 2:
                        int n=i;
                        for(i=0;i<n;i++)
                          A[i].display();

                case 3:
                        flag=1;
                        break;
                default:
                        System.out.println("Wrong Choice");
            }

        }

    }
}

共 (1) 个答案

  1. # 1 楼答案

    构造函数中的问题是,它接收int roll, String C,而不与它们和实例变量int choice&^构造函数执行后,{}未定义

    也许你想做:

    Department(int choice, String Dept_Code) {
        this.choice = choice;
        this.Dept_Code = Dept_Code;
        System.out.println("" + Dept_Code + " - " + choice);
    }
    

    switch(choice)中,案例1&;2如果您想将添加一本书fom显示该书并与案例3分开:

    switch(choice) {
        case 1 :
            A[i].getbook(); 
            i++;
            break;
    
        case 2:
            int n=i;
            for(i=0;i<n;i++)
              A[i].display();
            break;
    
        case 3:
            flag=1;
            break;
    
        default:
            System.out.println("Wrong Choice");
    }
    

    在另一个开关中,如果所有的情况都执行相同的dept_data(),那么创建一个开关是没有意义的 密码

    作为一项建议,在比较时最好始终首先使用常量,以防止出现可能的空指针: "ci".compareTo(C)C.compareTo("ci")好,因为如果C未定义,第二个选项可能会引发空指针异常。另外,看看命名约定:https://www.geeksforgeeks.org/java-naming-conventions/