我在从列表中检索学生信息或删除它时遇到问题... Heelp ...以下代码:
import java.util.*;
public class Directory
{
private TreeMap<String, Student> studentList;
private int numberOfEntries;
public Directory()
{
studentList = new TreeMap<String, Student>();
numberOfEntries = 0;
}
public void addStudent(Student newStudent)
{
studentList.put(newStudent.StudentInfo(), newStudent);
//numberOfEntries++;
}
public void StudentInfo(String StudentInfo)
{
Object obj = studentList.get(StudentInfo);
System.out.println(obj);
}
public void removeStudent(String StudentInfo)
{
Object obj = studentList.remove(StudentInfo);
System.out.println(obj + "Removed");
}
public void printStudentList()
{
System.out.println("List of Students: " + studentList.keySet());
}
}
=======学生班========(人员包含第一个,最后一个和电子邮件)
public class Student extends Persons
{
private String Sclass;
public Student(String Lname, String Fname, String Email, String Sclass)
{
super(Lname, Fname, Email);
this.Sclass = Sclass;
}
public String StudentInfo()
{
return " Full Name " + Lastname + " " + Firstname + "\n" +
"E-Mail: " + Email + "\n" +
"Class Attending: " + Sclass;
}
public String getName()
{
return Lastname;
}
}
答案 0 :(得分:2)
我可以尝试为你调试这个,但那会破坏目的。 (这是你的作业......目的是你自己学习如何做。)
我的建议如下:
FIRST 修复样式错误:
变量的名称总是以小写字母开头......除非它们是static
final
常量。
方法的名称总是以小写字母开头
方法和变量名称也应该有意义且一致。例如:
public void removeStudent(String StudentInfo)
此处StudentInfo
实际上需要学生姓名,而不是StrudentInfo
方法创建的“学生信息”字符串......
另一个例子:lname
和fname
没有意义。 (我可以猜出他们的意思,但那不够好。)
创建一个测试程序,创建这些类的实例并对它们执行一系列测试。从简单的事情开始,然后继续更复杂的事情。
(在现实世界中,我们设置了一套更为正式的“单元测试”......但你可能尚未做好准备。
事实上,如果您选择更有意义的名称,然后仔细查看 以了解这些名称的使用方式,那么您的错误应该“跳出来并击中您的鼻子”。
但如果您自己完成整个过程,您将获得最大的收益。