Avatar billede keet Nybegynder
04. september 2003 - 23:08 Der er 6 kommentarer og
1 løsning

constructor problem i bluej

Jeg bruger bluej har har en klasse ved navn Tegning og en konstruktør med navnet Tegning(). Når jeg så opretter en instans af Tegning skal den så ik automatisk gøre det der står i konstruktøren?

kode:

public class Tegning
{
    private int oje;
   
    public void Tegning()
    {
        this.oje = 7;
    }

    public void kast()
    {
        double ran = Math.random()*6+1;
        this.oje = (int) ran;
    }
   
    public int antalOjne()
    {
        return this.oje;
    }
}
Avatar billede keet Nybegynder
04. september 2003 - 23:09 #1
Når jeg har lavet en instans af Tegning og bruger antalOjne siger den at oje=0. Hvorfor ikke 7?
Avatar billede bearhugx Nybegynder
04. september 2003 - 23:10 #2
det er fordi du har void foran din constructor

public Terning() {
  this.oje = 7;
}

skal det være :-)
Avatar billede arne_v Ekspert
04. september 2003 - 23:11 #3
Prøv lige at ret:

public void Tegning()

til:

public Tegning()
Avatar billede bearhugx Nybegynder
04. september 2003 - 23:12 #4
en constructor kan _IKKE_ returnere en værdi (end ikke void :-) - derfor vil ovenstående ikke blive betragtet som en constructor, og bliver derfor ikke kørt, når du instantierer objektet...
Avatar billede keet Nybegynder
04. september 2003 - 23:13 #5
Nååå ja.. Jeg troede lige det var BlueJ der lavede en fejl :)
Avatar billede arne_v Ekspert
04. september 2003 - 23:15 #6
Og hvis der ingen constructor er angivet så laver Java selv en
constructor uden argumenter som ikke laver noget.
Avatar billede bearhugx Nybegynder
04. september 2003 - 23:16 #7
arne_v >> yeps :-) .. og derfor vil oje stadigvæk være på sin default-værdi
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