Avatar billede viciodk Praktikant
11. november 2003 - 02:53 Der er 3 kommentarer og
1 løsning

Fejl med lidt OOP i Java

Hvad er der galt med den kode jeg har her? (se fejlmeddelelse længere nede...)

Vurdering.java:
---------------

class Vurdering
{
    public static void main(String[] args)
    {
        Ejendom k29 = new Ejendom(new Bygning(200, 8000), new Grund(800, 500, 400000));
        Ejendom a11 = new Ejendom(new Bygning( 70, 4000), new Grund(700,  30,  24000));

        System.out.println(k29.vurdering());
        System.out.println(a11.vurdering());
    }
}



Ejendom.java:
-------------

class Ejendom
{
    Bygning bygning;
    Grund grund;

    Ejendom(Bygning bygning, Grund grund)
    {
        this.bygning = bygning;
        this.grund = grund;
    }

    int vurdering()
    {
        return bygning.vurdering() + grund.vurdering();
    }
}



Grund.java:
-----------

class Grund
{
    int areal;
    int kvadratmeterpris;
    int byggeret;

    void Grund(int areal, int kvadratmeterpris, int byggeret)
    {
        this.areal = areal;
        this.kvadratmeterpris = kvadratmeterpris;
        this.byggeret = byggeret;
    }

    int vurdering()
    {
        return areal*kvadratmeterpris+byggeret;
    }
}



Bygning.java:
-------------

class Bygning
{
    int areal;
    int kvadratmeterpris;

    void Bygning(int areal, int kvadratmeterpris)
    {
        this.areal = areal;
        this.kvadratmeterpris = kvadratmeterpris;
    }

    int vurdering()
    {
        return areal*kvadratmeterpris;
    }
}



Jeg får denne fejlmeddelelse:
-----------------------------

C:\Documents and Settings\Administrator\Skrivebord>javac Vurdering.java
Vurdering.java:5: cannot resolve symbol
symbol  : constructor Bygning (int,int)
location: class Bygning
                Ejendom k29 = new Ejendom(new Bygning(200, 8000), new Grund(800, 500, 400000));
                                          ^
Vurdering.java:5: cannot resolve symbol
symbol  : constructor Grund (int,int,int)
location: class Grund
                Ejendom k29 = new Ejendom(new Bygning(200, 8000), new Grund(800, 500, 400000));
                                                                  ^
Vurdering.java:6: cannot resolve symbol
symbol  : constructor Bygning (int,int)
location: class Bygning
                Ejendom a11 = new Ejendom(new Bygning( 70, 4000), new Grund(700,  30,  24000));
                                          ^
Vurdering.java:6: cannot resolve symbol
symbol  : constructor Grund (int,int,int)
location: class Grund
                Ejendom a11 = new Ejendom(new Bygning( 70, 4000), new Grund(700,  30,  24000));
                                                                  ^
4 errors
Avatar billede dresen Nybegynder
11. november 2003 - 03:26 #1
Hej viciodk.

Du skal fjerne void i konstruktørerne i begge dine klasser, dvs. Bygning og Grund.

Konstruktøren er ganske rigtigt en form for metode der ikke returnerer noget, men dette skal ikke eksplicit angives.

Compileren finder automatisk den "metode" der har samme navn som din klasse, når du ønsker at instancierer
Avatar billede viciodk Praktikant
11. november 2003 - 03:31 #2
Hej igen.

Mange tak for hjælpen. Nu virker alt uden problemer.

Vil du lægge et svar, så jeg kan tildele dig dine velfortjente point? Tak
Avatar billede dresen Nybegynder
11. november 2003 - 03:31 #3
hmm.....det skulle have været et svar.
Avatar billede dresen Nybegynder
11. november 2003 - 03:40 #4
Selv tak!!
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