Re: Can we over-load "+" in Java?
Hi,
Following is my code. My "primitive" data structure is Person, then one
level up, Team, then one more level up, Department. The program works fine.
I feel OO is fun, because at the level of Team, it doesn't care how
Person class methods are implemented and at the level of Department, it
doesn't even care about how Team and Person's methods are implemented,
only if interface is fixed.
Thank you very much for your any feedbacks.
============Person.java==========
public class Person {
private String sName;
public Person()
{
//empty
}
public Person(String s)
{
this.sName = s;
}
public String getName()
{
return sName;
}
}
=========Team.java=============
import java.util.*;
public class Team {
private Person leader;
private Vector members; //Vector is not good for this, but I am
familiar with it. So just for now.
public Team()
{
this.leader = new Person();
this.members = new Vector();
}
public void setTeamLeader(Person p)
{
this.leader = p;
}
public Person getLeader()
{
return leader;
}
public void addMemeber(Person p)
{
this.members.addElement(p);
}
public void removeMember(Person p)
{
this.members.removeElement(p);
}
public void showMembers()
{
Person temP;
temP = this.getLeader();
System.out.println("The team leader is: " + (String)temP.getName());
for (int i=0; i < members.size(); i++)
{
temP = (Person)members.elementAt(i);
System.out.println(temP.getName());
}
}
}
=========Department.java=======
import java.util.*;
public class Department {
private Vector teams;
public Department()
{
teams = new Vector();
}
public void addTeam(Team t)
{
teams.addElement(t);
}
public void removeTeam(Team t)
{
teams.removeElement(t);
}
public void showAllMemebers()
{
System.out.println("Our department has the following members:");
Team temT;
for (int i= 0; i < teams.size(); i++ )
{
temT = (Team)teams.elementAt(i);
temT.showMembers();
}
}
}
=========Demo.java==========
public class Demo {
public static void main(String[] args)
{
Team dreamTeam = new Team();
Person person1 = new Person("John");
Person person2 = new Person("Ed");
Person person3 = new Person("Linda");
dreamTeam.addMemeber(person1);
dreamTeam.addMemeber(person2);
dreamTeam.addMemeber(person3);
dreamTeam.setTeamLeader(person2);
dreamTeam.showMembers();
dreamTeam.removeMember(person1);
dreamTeam.showMembers();
Team secondTeam = new Team();
Person person4 = new Person("Lee");
Person person5 = new Person("Tom");
secondTeam.addMemeber(person4);
secondTeam.addMemeber(person5);
secondTeam.setTeamLeader(person4);
secondTeam.showMembers();
Department newDept = new Department();
newDept.addTeam(dreamTeam);
newDept.addTeam(secondTeam);
newDept.showAllMemebers();
}
}