java有多个类的问题

时间:2017-02-10 09:51:26

标签: java

所以我试图使用一个开关,这样当我点击1到4的范围时,每个都被定向到一个类并执行它的功能。选择“1”应该要求用户输入id,名称,其他名称和标记,然后计算它的平均值。然后第二堂课应显示所有信息,我不知道该怎么做。

这是我的主要代码:

public class lab3q1 {

    public static void main (String args[]){

        Scanner sc = new Scanner(System.in);

        Entries entriesobject = new Entries(); //object declaration
        display displayobject = new display(); //object declaration
        displayall displayallobject = new displayall(); //object declaration
        sortdata sortdataobject = new sortdata();

        System.out.println("1. Add new entries: ");
        System.out.println("2. Display an entry: ");
        System.out.println("3. Display all entries: ");
        System.out.println("4. Sort Data: ");
        System.out.println("5. Exit: ");
        int s = sc.nextInt();

        switch(s){

                case 1:{
                    if(s==1)
                    try{
                        entriesobject.method0();
                    }
                    catch(Exception e){
                        System.out.println("You can't do that");

                    }
                }
                case 2:{
                    if(s==2){
                        try{
                        displayobject.method();
                        }
                        catch(Exception e){
                            System.out.println("You can't do that");
                        }
                    }

                }

                case 3:{
                    if(s==3){
                        try{
                        displayallobject.method2();
                    }
                        catch(Exception e){
                            System.out.println("You can't do that");
                        }   
                    }
                }
                case 4:{
                    if(s==4){
                        try{
                            sortdataobject.method3();
                        }
                            catch(Exception e){
                                System.out.println("You can't do that");
                    }   
                    }
                }
                case 5:{
                    if(s==5){break;}
                }               
   }
  }
}

这是第一堂课:

public class Entries {    
    public void method0(){          
        int total=0,total2;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the student id: ");
        int id = sc.nextInt();
        sc.nextLine();
        System.out.println("Enter the student name: ");
        String name = sc.nextLine();
        System.out.println("Enter the student other names: ");
        String othername = sc.nextLine();

        for(int i=1;i<=4;i++){

        System.out.println("Enter the student marks" +(i));
        int mark = sc.nextInt();
        total += mark;
        total2 =total/4;
        System.out.println("The average marks is: "+total2); 
        }           
    }       
}

这是我的第二堂课:

public class display {
  public void method() {            
        int n;          
        Scanner sc = new Scanner(System.in); 
        System.out.println("Here is the student id: ");         
    }    
}

如你所见,我似乎无法将它们联系起来。

1 个答案:

答案 0 :(得分:0)

回答你的问题:当不同的班级想要了解其他类(也就是其他对象的字段)中的数据时,你需要有办法来访问它,例如:

public class Student {
  private int id;
  ... methods to put a value into id

  public int getId() { return id; }

然后其他一些拥有一个Student对象的类可以做。

除此之外:你的“关注点分离”是错误的。您应该使用一个类来使用扫描程序来“收集”用户的数据。这个类创建了各种其他对象;并将用户的数据放入这些对象中。

您的所有其他类都没有/需要扫描程序对象。他们获取他们的数据,例如作为其构造函数的参数。

System.out.println("The id is: " + someStudentObject.getId());