11. maj 2005 - 00:40Der er
11 kommentarer og 1 løsning
Klasser og queryDataSet1
Jeg har nedenstående kode i en klassen "jRadioButtoms_actions" og jdbTablen, der benytter sig af den i klassen "MainFrame". Koden fungere kun, når den er i samme klasse som tabellen. Hvorfor?
package elevdatabase; import com.borland.dx.sql.dataset.*; public class jRadioButtoms_actions extends MainFrame { public void jRadioB(String filter) { queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT CPR,FORNAVN,MELLEMNAVN,EFTERNAVN,\"BY\" FROM MyTable WHERE STATUS=filter;", null, true,Load.ALL)); } }
Hvorfor skulle det være et problem, at hele koden er min klasse? Man har vel altid godt kunne bruge metoder i andre klasser? Hvad forslår du? At jeg laver det som en metode i MainFrame? Jeg havde egentligt planer om, at putte alt det, der har noget med databasen at gøre, i én klasse.
De kommer fra MainFrame, der er bruger denne klasse. Det er derfor jeg bruger extends. Jeg får ingen fejl. Queryen afvikles overhovdet ikke. Den virker, hvis jeg indsætter den i MainFrame. Forøvrigt skal der står '"+filter+"'.
"De kommer fra MainFrame, der er bruger denne klasse. Det er derfor jeg bruger extends."
Dette her giver ikke helt mening. Grunden til at du extender MainFrame skal være, at du har nogle ting i MainFrame du gerne vil bruge i en subclass. Og ikke omvendt.
Du kan en superclass og en subclass. Denne superklasse indeholder så en instans af sin egen subclass? Dette giver i mine øjne ingen mening. Så kunne du ligeså godt ha' metoden i superklassen eller lade være med at extende, og så smide de nødvendige oplysninger med som parametre i metoden.
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.