Metode til at samle et bestemt objekt op med?
HejsaJeg sidder med følgende klasser:
import java.util.*;
/**
* Visitor modellerer en besøgende, der kan
* gå rundt i rum og samle genstande op
*/
public class Visitor
{
private String name;
private Room location;
private List items;
/**
* Konstruktør for Visitor-objekter
* @param name Navnet på den besøgende
* @param r Rummet, som den besøgende starter i
*/
public Visitor(String name, Room r)
{
this.name = name;
this.location = r;
items = new ArrayList();
}
/**
* Returnerer rummet, hvor den besøgende befinder sig
* @return Rummet, hvor den besøgende befinder sig
*/
public Room getLocation()
{
return location;
}
/**
* Flytter den besøgende i retning dir
* @param dir Retningen, som den besøgende går i
*/
public void move(int dir)
{
if (getLocation().roomExists(dir) == false)
{
}
else location = getLocation().leadTo(dir);
System.out.println( name + " has moved to " + getLocation());
}
/**
* Den besøgende samler Item i op, som bliver
* fjernet fra det rum, som den besøgende befinder sig i
* @param i Genstanden, som den besøgende samler op
*/
public void pickUp(Item i)
{
if (getLocation().itemExists() == true)
{
getLocation().chooseItem();
Item thisi = getLocation().chooseItem();
items.add(thisi);
System.out.println( name + " just picked up a " + thisi + " from " + getLocation() );
getLocation().removeItem(i);
}
}
/**
* gets Item i in Visitors items ArrayList in this case
* @ param Item i
*/
public Item getItem()
{
Random rnd = new Random();
int rndInt = rnd.nextInt(items.size());
return (Item) items.get(rndInt);
}
/**
* Vistitor leaves Item i in the room he is currently in
* removes Item i from visitors List items
* Adds Item i to the room
* @param i Item the visitor leaves
*/
public void dropItem(Item i)
{
items.remove(i);
System.out.println( name + " has just dropped a " + i + " in " + getLocation());
location.addItem(i);
}
/**
* returns string with information on Visitor
* name, location and items
*/
public String toString()
{
return ("Name: " + name + " Location: " + getLocation() + " Items: " + items.toString());
}
}
og
/**
* Item modellerer genstande, der kan
* ligge i rum og samles op af besøgende.
*/
public class Item
{
private String name;
/**
* Kontruktør for et Item
* @param name Navnet på genstanden
*/
public Item(String name)
{
this.name = name;
}
/**
* Returnerer navnet på genstanden
* @return Navnet på genstanden
*/
public String getName()
{
return name;
}
/**
* returns toString
*/
public String toString()
{
return name;
}
}
Mit spørgsmål er, hvordan laver jeg en metode i Visitor klassen, som tillader en visitor til at samle et bestemt objekt op (i stedet for et tilfældigt objekt).
For det andet vil jeg lave en metode til at finde ud af, om et objekt overhovedet befinder sig i Arraylisten
Tak på forhånden
Romina
