java在处理多个类时遇到问题
所以我尝试使用一个开关,当我点击1到4的范围时,每个开关都指向一个类并执行它的功能。选择“1”应该要求用户输入id、名称、其他名称和标记,然后计算其平均值。第二个类应该显示所有的信息,我不知道怎么做 这是我的主要代码:java在处理多个类时遇到问题,java,Java,所以我尝试使用一个开关,当我点击1到4的范围时,每个开关都指向一个类并执行它的功能。选择“1”应该要求用户输入id、名称、其他名称和标记,然后计算其平均值。第二个类应该显示所有的信息,我不知道怎么做 这是我的主要代码: public class lab3q1 { public static void main (String args[]){ Scanner sc = new Scanner(System.in); Entries entriesob
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 Student {
private int id;
... methods to put a value into id
public int getId() { return id; }
然后另一个类,还有一个学生对象可以做
除此之外:你的“关注点分离”是错误的。您应该有一个类,该类使用扫描仪从用户“收集”数据。此类创建各种其他对象;并将来自用户的数据放入这些对象中
您所有的其他类都没有/需要扫描仪对象。它们获取其数据,例如作为构造函数的参数
System.out.println("The id is: " + someStudentObject.getId());
对不起,我不是指点击,我是指打字。对不起,伙计,糟糕的代码。您希望我们花时间来帮助您,因此请您花5分钟来正确格式化/缩进所有源代码,使其具有可读性。然后:只有当方法可以抛出已检查异常时,才使用try-catch。你不能盲目地放弃尝试/抓住;更重要的是:您打印捕获的异常,因为它告诉您出了什么问题。仅仅捕获一个错误,仅仅打印“一些错误”根本没有帮助!要添加到@GhostCat comment,请命名您的方法以反映它们正在做的事情。如果你找不到一个好名字,你将不得不重新思考它到底应该做什么。原谅我所有的错误,是的,我知道尝试和捕捉是无用的,但我只是看看它是如何工作的。我是个初学者,你的评论帮助很大;你想让我们帮你。在你的问题中有任何对你的问题不重要的代码。。。你让这更难。顺便说一句:你也让事情变得更难。代码中的每一行。。。这是有原因的。如果这个理由不再有效,那就扔掉那条线。马上。不要随身携带垃圾!我又做了一些更新。但这里真正的信息是:请先学习更多的教程/书籍。你的代码远没有做任何有用的事情。这不是一所编程学校,我们会牵着你的手,解决你代码中无数的小问题和大问题。我想当你在第一段写“类”时,你指的是“实例”…因为你指的是实例属性和方法。
System.out.println("The id is: " + someStudentObject.getId());