所以我试图使用一个开关,这样当我点击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: ");
}
}
如你所见,我似乎无法将它们联系起来。
答案 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());