java课后题学生类和借书卡类设计,无法运行的处理
package javastudent423; public class studentcard { class Student{//定义Student类,标记为static静态 private String name; private String mail;//定义name和mail,分别代表学生姓名和电子邮箱 public void Setname(String names) { name = names; }//将外部调用传来的name参数赋值给私有成员变量name public void Setmail(String mails) { mail = mails; }//将外部调用传来的mail参数赋值给私有成员变量mail public String Outname() { return name; }//将name返回 public String Outmail() { return mail; }//将mial返回 } class BorrowBookCard{//定义Student类,标记为BorrowBookCard静态 private String name; private int number;//定义学生姓名和借书的本数; public void Setnames(String names) { name = names; } public void Setnumber(int numbers) { number = numbers; } public String Outname() { return name; } public int Outnumber() { return number; } public void OutAll() { System.out.println("姓名:"+name+'\t'+"已经借出书籍数量:"+number); } } public class Test{ public void main(String[] args) {//定义主函数,标记为static。 Student s1 = new Student();//实例化一个Student类的对象 s1.Setname("文姬的九命猫"); s1.Setmail("1554178896@qq.com");//传入参数 String s1_name; s1_name = s1.Outname();//将返回值赋值给一个String类的变量 System.out.println("通过内部方法返回名字:"+s1_name);//输出这个变量 BorrowBookCard b1 = new BorrowBookCard();//实例化一个BorrowBookCard类的对象 String n1 = "文姬的九命猫"; b1.Setnames(n1); b1.Setnumber(4);//传入参数 System.out.println("显示借书卡类记录信息:"); b1.OutAll(); } } }
在写完上面学生类和借书卡类和测试类main函数之后无论如何都运行不了。
修改前Run As只有Run Configurations...
在参考教材后,将
class Student和class BorrowBookCard加上static并全部放入测试类,并将
public class Test{
public void main(String[] args)
改为
public static class Test{
public static void main(String[] args)
之后就可以运行。
public class studentcard { public static class Test{ static class Student{//定义Student类,标记为static静态 private String name; private String mail;//定义name和mail,分别代表学生姓名和电子邮箱 public void Setname(String names) { name = names; }//将外部调用传来的name参数赋值给私有成员变量name public void Setmail(String mails) { mail = mails; }//将外部调用传来的mail参数赋值给私有成员变量mail public String Outname() { return name; }//将name返回 public String Outmail() { return mail; }//将mial返回 } static class BorrowBookCard{//定义Student类,标记为BorrowBookCard静态 private String name; private int number;//定义学生姓名和借书的本数; public void Setnames(String names) { name = names; } public void Setnumber(int numbers) { number = numbers; } public String Outname() { return name; } public int Outnumber() { return number; } public void OutAll() { System.out.println("姓名:"+name+'\t'+"已经借出书籍数量:"+number); } } public static void main(String[] args) {//定义主函数,标记为static。 Student s1 = new Student();//实例化一个Student类的对象 s1.Setname("文姬的九命猫"); s1.Setmail("1554178896@qq.com");//传入参数 String s1_name; s1_name = s1.Outname();//将返回值赋值给一个String类的变量 System.out.println("通过内部方法返回名字:"+s1_name);//输出这个变量 BorrowBookCard b1 = new BorrowBookCard();//实例化一个BorrowBookCard类的对象 String n1 = "文姬的九命猫"; b1.Setnames(n1); b1.Setnumber(4);//传入参数 System.out.println("显示借书卡类记录信息:"); b1.OutAll(); } } }
此后又将static class Student和static class BorrowBookCard放到测试类之前,发现也可以正常运行。
package javastudent423; public class studentcard { static class Student{//定义Student类,标记为static静态 private String name; private String mail;//定义name和mail,分别代表学生姓名和电子邮箱 public void Setname(String names) { name = names; }//将外部调用传来的name参数赋值给私有成员变量name public void Setmail(String mails) { mail = mails; }//将外部调用传来的mail参数赋值给私有成员变量mail public String Outname() { return name; }//将name返回 public String Outmail() { return mail; }//将mial返回 } static class BorrowBookCard{//定义Student类,标记为BorrowBookCard静态 private String name; private int number;//定义学生姓名和借书的本数; public void Setnames(String names) { name = names; } public void Setnumber(int numbers) { number = numbers; } public String Outname() { return name; } public int Outnumber() { return number; } public void OutAll() { System.out.println("姓名:"+name+'\t'+"已经借出书籍数量:"+number); } } public static class Test{ public static void main(String[] args) {//定义主函数,标记为static。 Student s1 = new Student();//实例化一个Student类的对象 s1.Setname("文姬的九命猫"); s1.Setmail("1554178896@qq.com");//传入参数 String s1_name; s1_name = s1.Outname();//将返回值赋值给一个String类的变量 System.out.println("通过内部方法返回名字:"+s1_name);//输出这个变量 BorrowBookCard b1 = new BorrowBookCard();//实例化一个BorrowBookCard类的对象 String n1 = "文姬的九命猫"; b1.Setnames(n1); b1.Setnumber(4);//传入参数 System.out.println("显示借书卡类记录信息:"); b1.OutAll(); } } }
虽然解决了,但还没搞清楚是什么原因,希望以后能弄明白。
大二学生第一次发博客,先抛块砖,有玉的前辈尽管砸过来,谢谢园子。