Avatar billede kovalt Nybegynder
05. december 2002 - 11:42 Der er 7 kommentarer og
2 løsninger

Simpelt spm.

Hej

  Det skal lige siges indledningsvist at jeg er helt grøn i java.

Jeg har to klasser en game-klasse og en player-klasse. I player-klassen har jeg et hashmap som indeholdet en liste over alle de items spillere bærer rundt på. Jeg kunne godt tænke mig at få udskrevet en liste over de ting som spilleren har og kaldet skal ske via en kommando der hedder "inventory".

I game-klassen ser det sådan her ud:

.
.
.
        else if (commandWord.equals("inventory"))
            getInventoryString();
.
.
.


    private String getInventoryString()
    {
        return showInventory();
    }

og i player-klassen sådan her:

    public String showInventory() {
        String returnString = "Der er ingenting";
        return returnString;
    }

når jeg kører det får jeg en fejl om "cannot resolve symbol" som peger på linien

return showInventory();

hvad er der galt
Avatar billede kovalt Nybegynder
05. december 2002 - 11:43 #1
selvom metoden er public i player lader det ikke til at den kan finde den.... hvorfor kan det være?
Avatar billede di8leva Nybegynder
05. december 2002 - 11:48 #2
i game-klassen skall du skrive return <navnet_på_player_variabel>.showInventory();
Avatar billede dannymoeller Nybegynder
05. december 2002 - 11:50 #3
Du har vel en reference til player klassen i game-klassen, den skal du kalde med. :

Player p1 = newPlayer(...);

private String getInventoryString()
    {
        return p1.showInventory();
    }
Avatar billede dannymoeller Nybegynder
05. december 2002 - 11:52 #4
Det skulle have været et svar og Player skal defineres sammenmed eller før dine else if sætninger altså

Player p1 = new Player(...);
.
.
.
        else if (commandWord.equals("inventory"))
            getInventoryString();
.
.
.
Avatar billede kovalt Nybegynder
05. december 2002 - 11:53 #5
Den skriver det stadig ikke ude......

er der et sted hvor jeg skal skrive

System.out.println(getInventoryString)

eller noget i den stil
Avatar billede dannymoeller Nybegynder
05. december 2002 - 11:55 #6
Ja, selvfølgelig skal du selv skrive det ud.
Avatar billede dannymoeller Nybegynder
05. december 2002 - 11:56 #7
Og du skal skrive System.out.println(getInventoryString()), medmindre du har en (String)variabel der hedder getInventoryString
Avatar billede kovalt Nybegynder
05. december 2002 - 11:56 #8
takker for hælpen...... deler point
Avatar billede dannymoeller Nybegynder
05. december 2002 - 11:59 #9
Hvis du laver en String-variabel der hedder et eller andet (f.eks. tilUdskrift) kan du gøre følgende:

String tilUdskrift = "";
.
.
        else if (commandWord.equals("inventory"))
            tilUdskrift = getInventoryString();
.
.
.
System.out.println(tilUdskrift);

så får du skrevet det ud til sidst, og kan nøjes med en System.out linie.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester