Avatar billede onkel_satan Nybegynder
15. januar 2005 - 15:13 Der er 5 kommentarer og
1 løsning

Definering af objekt

Hej eksperter!
Går direkte til sgen.

Har en classe der hedder 'Order'
Derudover har jeg to klasser kaldt 'Firm' og 'Private' som begge arver fra en abstract klasse der hedder 'Customer'.

Problemet er nu at 'Order' klassen skal indeholde enten et 'Firm' eller 'Private' objekt, men ved ikke på forhånd hvilket et. Hvordan løser man dette problem. Hvordan definere jeg customer/Firm/Private objektet i 'Order' klassen ?

På forhånd tak.
Avatar billede arne_v Ekspert
15. januar 2005 - 15:17 #1
public class Order {
    private Customer cst;
    ...
}

må være løsningen på det.
Avatar billede arne_v Ekspert
15. januar 2005 - 15:18 #2
Fordu du så kan assigne både Firm og Private objekter til cst.
Avatar billede onkel_satan Nybegynder
15. januar 2005 - 15:27 #3
Hvis jeg forstaar dig ret kan jeg saa gøre saaledes her ?

public class Order {
   
    private Customer customer;
   
    if(custom_type == true){
        customer = new Private();
    }else{
        customer = new Firm();
    }
}
Avatar billede arne_v Ekspert
15. januar 2005 - 15:31 #4
Ovenstående kode er ikke validt da du ikke kan have eksekverbare linier uden for en metode.

public class Order {
    private Customer customer;
    public void setCustomer(Customer customer) {
        this.customer = customer;
    }
    public Customer getCustomer() {
        return customer;
    }
}

og

Order o = new Order();
o.setCustomer(new Firm("Profit A/S"));
Firm f = (Firm)o.getCustomer();
Avatar billede onkel_satan Nybegynder
15. januar 2005 - 15:38 #5
ahh okey..
Ville egentlig oxo have puttet det ind i orders constructor, men kan selv oxo bare lave en metode til det.
Men jeg er med nu.
Smid et svar for point og tak for hjælpen.
Avatar billede arne_v Ekspert
15. januar 2005 - 15:47 #6
ok
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