oya Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) Hei! Holder på med en obligatorisk oppgave ved uio, og har et lite problem. abstract class Ytre { public boolean remove(Object o) { return false;} protected class Indre implements Iterator { public void remove(){ // Hvordan kan jeg nå kalle metoden remove(object o) fra den Ytre? } } } Hvordan får jeg kallt på remove(Object o) når jeg er i den indre klassen? Funker ikke med super, this, Ytre.this, og kan jo ikke lage noe objekt av ytre klasse. Kan heller ikke forandre på abstract, og navn på metoder. Endret 5. mai 2007 av oya Lenke til kommentar
gunnard Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) I Ytre: protected Ytre denne = this; I Indre: this.remove(o) EDIT: denne.remove(o) selvfølgelig.. Eller som wernie sier.. Endret 5. mai 2007 av gunnard Lenke til kommentar
___ Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Hei! Holder på med en obligatorisk oppgave ved uio, og har et lite problem. abstract class Ytre { public boolean remove(Object o) { return false;} protected class Indre implements Iterator { public void remove(){ // Hvordan kan jeg nå kalle metoden remove(object o) fra den Ytre? } } } Hvordan får jeg kallt på remove(Object o) når jeg er i den indre klassen? Funker ikke med super, this, Ytre.this, og kan jo ikke lage noe objekt av ytre klasse. Kan heller ikke forandre på abstract, og navn på metoder. 8543752[/snapback] Ytre.this fungerer da utmerket. import java.util.Iterator; abstract class Ytre { public boolean remove(Object o) { return false;} protected class Indre { public void remove(){ // Hvordan kan jeg nå kalle metoden remove(object o) fra den Ytre? Ytre.this.remove(new String("abc")); } } } Hilsen Werner Lenke til kommentar
oya Skrevet 6. mai 2007 Forfatter Del Skrevet 6. mai 2007 (endret) I Ytre:protected Ytre denne = this; I Indre: this.remove(o) EDIT: denne.remove(o) selvfølgelig.. Eller som wernie sier.. 8545983[/snapback] lurt. Funka fint med den. Desverre funka ikke ytre.this.remove(...), skal være Object som sendes. Fikk opp en kjedelig feilmelding når jeg skulle kompilere. Endret 6. mai 2007 av oya Lenke til kommentar
pgdx Skrevet 13. mai 2007 Del Skrevet 13. mai 2007 I indre: this.remove kaller den indres remove, remove kaller ytres remove, tar jeg ikke feil. Lenke til kommentar
blackbrrd Skrevet 18. mai 2007 Del Skrevet 18. mai 2007 du kan ikke skrive ytre.this.remove, det må være Ytre.this.remove. Mao du må bruke klassenavnet Ytre, ikke evt objektnavn. Parameteren må være et objekt ja, men men du har ikke spesifisert hvilket objekt som skal sendes til Ytre sine remove metode, så derfor har wernie laget et dummy objekt. (og en String er et Object). Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå