bah skrev:
>Jeg har meget generalt følgende code:
>---------------------------------------------
>classs Ejer{
>String name=null;
>adresse=null; ....andre oplysninger
>Bil bil=null;
>public Ejer(String name, String adresse...osv, Bil bil){
>name=name; adresse= adresse; .... bil=bil;
>}
Princippet er o.k., men jeg skal lige være sikker på at du ikke
har en fejl (måske er det bare fordi du skrev hurtigt i
indlægget):
Hvis du skriver name=name, er det bare parameteren der bliver sat
til sig selv, mens instansvariablen forbliver null. Enten skal
parameteren hedde noget andet (min foretrukne løsning), eller
også skal du skrive this.name=name.
>Med hensyn til at en ejer skal kunne eje flere forskellige biller, får jeg
>på denne måde samme ejeroplysninger flere gange. Det vil jeg helst undgå.
Klasserne ser fornuftige ud, men ejeren skal have en datatype der
kan rumme flere elementer til biler. Du kan f.eks. give ejeren et
array med 10 pladser (hvis du ikke vil styre dynamiske strukturer
som faktisk er bedre i det her tilfælde). Altså i ejerklassen:
Bil[] bil=new Bil[10];
og så også en tæller til at holde styr på hvor mange biler han
har:
int antalBiler=0;
>Er det en klodset måde jeg har gjort det på?
Hvis du skriver samme ejer ind flere gange, så ja.
>Det er rigtigt at på denne måde komme bilerne automatisk med, og de >kommer på samme linje med Ejer. Men hvorfor ulogisk ?
Fordi biler og ejere er to helt forskellige ting. Der er dog ikke
noget forkert ved det i den forstand at det færdige program vil
kunne virke udnærket, men den der læser koden om 6 måneder eller
senere, vil undre sig og lettere blive forvirret - det gælder
også dig selv (ved jeg af bitter erfaring).
>Min indexElement bestod først af en "int recordNumber" og en "Ejer
>ejerInfo)" men jeg syntes det var svært at finde fx. til en ejer med en
>bestemt bil via recorNemuber.
Ja, det bliver det når du kun refererer fra ejeren til bilen.
Hvis det skal være nemmere, må du også referere fra bilen til
ejeren - men så bliver det straks mere komplekst.
>Grunden var at jeg fik med denne design flere
>linjer i filen , der havde ejerInfo til fælles men var forsellige i bilens
>navne og model osv. Men deres recordNumber blev også forskellige, selv >om det faktisk var samme ejer.
Det problem løses ved at give ejeren en container (omtalte array)
til hans biler.
PS. Du behøver ikke sætte nye variable til null. Det gør Java af
sig selv. Altså bare:
Bil bil;
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO:
http://fiduso.dk/