Avatar billede tentakkel Nybegynder
13. januar 2006 - 17:10 Der er 3 kommentarer og
1 løsning

Klasser , invoke og objekter

Hej

jeg har en opgave hvor jeg skal behandle en besked med det ene eller det andet reglsæt.

hver reglsæt har hver sin klasse med hvert sit navn (naturligvis). Vi kan jo kalde dem ReglA og ReglB.

begge klasser har en funktion der heder

public String afkodBesked(String besked)

fra resten af programmet ønsker jeg at gøre det simpelt at tilgå det valgte reglsæt så jeg har lavet en reglKontainer der har det valgte reglsæt som variable

public Class valgteRegl

der sættes til
valgteRegl = new ReglA()
eller
valgteRegl = new ReglB()

Nu var ideen at jeg fra resten af programmet kunne afkode min besked med

String afkodetBesked = reglKontainer.valgteRegl.afkodBesked(besked)

MEn det er tilsyneladende ikke bare lige sådan.

jeg er kommet ind på lidt med getMethod().invoke() men jeg kan ikke gå tingene til at gå op (med hvilke parametre der skal være og sådan)

hvordan kalder jeg afkodBesked() fra mit program?
er der en bedre måde at tilgå to forskellige reglsæt, men så samme måde fra resten af programmet?
Avatar billede arne_v Ekspert
13. januar 2006 - 17:16 #1
Hvis en abstrakt basis klasse P med en abstrakt metode m har 2 sub klasser C1 og C2
med konkrete implementationer af m så kan du:

P o;
if(noget) {
  o = new C1();
} else {
  o = new C2();
}
o.m();
Avatar billede arne_v Ekspert
13. januar 2006 - 17:16 #2
du kan også lave P som interface hvis ikke den indeholder nogen
kode overhovedet
Avatar billede tentakkel Nybegynder
16. januar 2006 - 16:13 #3
TADAAAAA - det var jo lige det jeg manglede at indse for at hele ideen med Java og abstrakte klasser kunne åbenbare sig for mig :)

smid svar :)
Avatar billede arne_v Ekspert
16. januar 2006 - 16:52 #4
kommer her
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