我正在为学生信息系统创建一个转储Java应用程序,用于学习和实现继承,抽象,多态和封装等OOPS概念。
我正在做的是,我创建了Faculty
班级,Student
班级和大学班级。现在我想在大学里增加新的教师。所以我的方法是在大学课程中创建一个方法,即addFaculty(Faculty f)
和fireFaculty(Faculty f)
,现在我想在Faculties
课程中添加College
。
最好的办法是什么?如何在Faculty
对象中存储College
对象的列表。因为我可以在大学里增加一个以上的教师和一个以上的学生。
在OOPS中解决此问题的最佳方法是什么?
这是我实施的College.java代码,它运行正常,但这是我解决它的最好方法吗?
public class College
{
String name;
String location;
String courses[];
HashMap<String,Faculty> faculties;
int noOfFaculties = 0;
int noOfStudents = 0;
public College(String name,String location,String courses[])
{
this.name = name;
this.location = location;
this.courses = courses;
faculties = new HashMap<>();
}
public void addFaculty(Faculty faculty)
{
faculties.put(faculty.getName(),faculty);
}
public void printFaculties()
{
Set<String> set = faculties.keySet();
if(set.size()>0)
{
for(String s:set)
{
System.out.println(faculties.get(s).getName());
}
}
else
{
System.out.println("No Faculties Currently Working");
}
}
public void fireFaculty(Faculty faculty)
{
faculties.remove(faculty.getName());
}
public String getName()
{
return name;
}
public String getLocation()
{
return location;
}
public String[] getCourses()
{
return courses;
}
}
答案 0 :(得分:3)
有很多方法可以做到。处理存储对象集合的最简单方法可能是使用Java提供的Collections之一。对于初学者,可能最容易理解的是ArrayList
,它基本上是一个根据集合中对象的数量动态增大的数组。
因此,作为一个例子,您的代码可能是这样的:
public class College
{
private ArrayList<Faculty> faculty;
public College()
{
faculty = new ArrayList<Faculty>();
}
public void addFaculty(Faculty f)
{
faculty.add(f);
}
public void fireFaculty(Faculty f)
{
faculty.remove(f);
}
}
答案 1 :(得分:3)
如果你不介意重复使用HashSet<Faculty>
,如果你不介意使用List<Faculty>
。
示例:
class College {
private List<Faculty> listFactories = new ArrayList<>(); // dupes allowed
private Set<Faculty> setFactories = new HashSet<>(); // no dupes allowed
}
答案 2 :(得分:0)
imho这取决于大学学院提供什么样的服务。如果我正在编码,我会从: -
开始<div class="dropdown-toggle" data-toggle=>"dropdown"><%= link_to current_user.first_name, profileshow_path(current_user)%></div>
<ul class="dropdown-menu">
<li><%= link_to "Account Settings", edit_user_registration_path%></li>
<li><%= link_to "Your Profile", profileshow_path(current_user) %></li>
<li class='last'><%= link_to "Logout", destroy_user_session_path, :method => :delete %></li>
</ul>
<script>
$('.dropdown-toggle').dropdown()
</script>
如果需要,可以在以后更改为替代品。