Avatar billede muingaza Nybegynder
17. januar 2005 - 21:47 Der er 11 kommentarer

Hvordan fungere "this"?

I denne kode hvad svarer "this" så til hvis jeg i en main metode har følgende:

RoomBehavior x = new BasicRoom("kitchen", "pasta");
Explorer harpo = new Explorer("Harpo Marx", "swordfish");

kode:

public class Explorer implements PlayerBehavior {
   
    private String my_name;
    private String my_secret_word;
    private RoomBehavior where_I_am_now;
   
    public Explorer(String name, String word){
       
        my_name = name;
        my_secret_word = word;
        where_I_am_now = null;
       
      }
   
    public String speak(){
       
        return my_secret_word; }
   
   
    public void exitRoom(){
       
        if ( where_I_am_now != null )
          { where_I_am_now.exit(this);
            where_I_am_now = null;
          }
      }
   
    public boolean explore(RoomBehavior r){
       
        if ( where_I_am_now != null )
          { exitRoom(); }
     
        boolean went_inside = r.enter(this);
        if ( went_inside )
          { where_I_am_now = r; }
        return went_inside;
      }
   
    public RoomBehavior locationOf(){
       
        return where_I_am_now; }
    }
Avatar billede arne_v Ekspert
17. januar 2005 - 21:49 #1
this er objektet selv
Avatar billede arne_v Ekspert
17. januar 2005 - 21:50 #2
og i class Explorer for Explorer harpo = new Explorer("Harpo Marx", "swordfish")
er det så Harpo Marx.
Avatar billede kalp Novice
17. januar 2005 - 21:56 #3
Du kan møde "this" i mange sammenhænge.. her er et eksempel

Hvis du har denne kode

public class Klasse
{
String fornavn;

public Klasse(String fornavn)
{
this.fornavn = fornavn;
}
}


this.fornavn refere til den øverste i klassen! :) for de hedder det samme hvilket gør det svært at se forskel på dem!
Avatar billede muingaza Nybegynder
17. januar 2005 - 22:02 #4
Hvordan ville man have skrevet explorer metoden hvis man ikke måtte bruge "this"?
Avatar billede arne_v Ekspert
17. januar 2005 - 22:04 #5
Det ville være meget svært måske umuligt.
Avatar billede kalp Novice
17. januar 2005 - 22:05 #6
muingaza>> er det et opgave spørgsmål du har fået stillet? for måske mener de noget andet ?
Avatar billede muingaza Nybegynder
17. januar 2005 - 22:22 #7
Næ det var bare en tanke jeg fik for bedre at forstå anvendelsen af this
Avatar billede kalp Novice
18. januar 2005 - 09:25 #8
muingaza>> okay:) kan ikke lige komme på andre tidspunkter jeg anvender this end i det kodeeksempel du selv har og i det kodeeksempel jeg kom med
Avatar billede arne_v Ekspert
18. januar 2005 - 09:30 #9
Man bruger this når:

- man har argumenter og instans variable som hedder det samme

- man skal kalde en constructor fra en anden constructor

- man skal have en reference til sig selv over i en metode
Avatar billede arne_v Ekspert
30. januar 2005 - 19:53 #10
Tid at få afsluttet dette spørgsmål ?
Avatar billede arne_v Ekspert
25. februar 2005 - 22:15 #11
??

og et svar fra mig
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