Vector-problem
Jeg har en vektor af personer, som jeg ikke kan regne ud hvordan returneres til en anden klasseJeg skal lave min Role-klasse om, så den refererer til dén person, den tilhører, men kan ikke finde andre metoder end get(int index) i JDK'en. Den bør vel kunne kombineres med elemantAt(int index), men lige hvordan...
Jeg ved ikke hvordan jeg returnerer lige præcis den rigtige person: Jeg kan ikke se hvad der styrer hvad mellem Person og Role.
Hele koden kommer her:
import java.util.Vector;
public class ReuseWithComposition{
public static void main( String[] args ){
Person p1 = new Person( "Freddy Fræk" );
Role r1 = new Instructor( 12000 );
p1.addRole( r1 );
System.out.println( p1 );
Person p2 = new Person( "Hans Ottosen" );
Role r2 = new Student( Student.SWU );
p2.addRole( r2 );
System.out.println( p2 );
Person p3 = new Person( "Rasmus Lund" );
Role r3 = new Student( Student.SWU );
Role r4 = new Instructor( 200000 );
p3.addRole( r3 );
p3.addRole( r4 );
System.out.println( p3 );
}
}
class Person{
private String fullName;
private String eMail;
private Vector roller = new Vector();
public Person( String fullName ){ setFullName( fullName ); }
public void setFullName( String fullName ){
if( fullName == null || fullName.equals( "" ) ){
throw new IllegalArgumentException( fullName + "is an Illegal name" );
}
else{
this.fullName = fullName;
}
}
public void setEMail( String eMail ){
if( eMail == null || eMail.equals( "" ) ){
throw new IllegalArgumentException( eMail + "is an Illegal e-mail" );
}
else{
this.eMail = eMail;
}
}
public String getFullName(){ return fullName; }
public String getEMail(){ return eMail; }
public void addRole( Role rolle ){
if( rolle == null ){
throw new IllegalArgumentException( rolle + " is not a legal role" );
}
roller.add( rolle );
}
public Role getRole( int rolleNummer ){
if( ! (roller.size() > rolleNummer) ){
throw new IllegalArgumentException( "Der er ingen roller med nummer " + rolleNummer );
}
else {
return (Role) roller.get( rolleNummer );
}
}
public int getNumberOfRoler(){
return roller.size();
}
public String toString(){
String s = "Person[fullName=" + fullName;
s += ", eMail=" + eMail;
s += ", roller=" + roller + "]";
return s;
}
}
class Role{
Person rolle_person;
public Role(Person p)
{
rolle_person = p;
}
public Person getPerson(int index)
{
...æh....
}
}
