Avatar billede themepark Nybegynder
23. september 2005 - 19:43 Der er 6 kommentarer og
1 løsning

Constructor og return i java.awt.color

Hvordan fungerer Color farve = new Color(0, 0, 0); ?

Det er jo en constructor, og så kan den ikke returnere noget, det ved jeg da. Men alligevel må der jo blive returneret noget da farve jo bliver sat til at være en farve.

Grunden til mit spørgsmål er at jeg selv pusler med at lave en lignende constructor.

Farve test = new Farve();

ville så sætte test til at være...tja f.eks. rød. Jeg kan blot ikke gennemsku hvordan jeg skal kunne både starte constructoren og returnere farven i en og samme.
Avatar billede arne_v Ekspert
23. september 2005 - 19:46 #1
du kan ikke angive eksplicit at en constructor skal returnere noget

men når du laver new X får du en X og constructor kaldes på den X, så du
kan sige at en constructor implict altid returnerer en instans af sin egen klasse
Avatar billede kalp Novice
23. september 2005 - 20:07 #2
Et simpelt eksempel til at illustere hvordan det virker.

public class Person
{

int alder;
String navn;

public Person(int alder, String navn)
{

this.alder = alder;
this.navn = navn;
}

}


Hvis du så opretter objektet..

Person test = Person(22,"Anders");

Nu er det ikke farver vi sætter, men vi giver jo objektet både en alder og et navn.

Håber du forstår ideen i det:)
Avatar billede arne_v Ekspert
04. november 2005 - 20:09 #3
tid at få afsluttet spørgsmålet ?
Avatar billede themepark Nybegynder
05. november 2005 - 14:18 #4
Ja, det er det da vist *g* Men et lille ekstra spørgsmål. Hvis jeg som nævnt gerne vil kunne skrive

Farve test = new Farve();

kan jeg så ikke lade min Farve klasse extende Color og dermed i constructoren bare sætte rød, blå og grøn til nogle værdier? Jeg er ikke 100 % sikker, derfor spørgsmålet, men så vidt jeg kan se, må det da kunne lave test til en Color, som f.eks. rød som nævnt :)
Avatar billede arne_v Ekspert
05. november 2005 - 14:25 #5
Hvis den sætter farven i constructor så var det måske mere logisk at kalde
klassen noget som angav farven f.eks.:

Pink test = new Pink();

Men ja - du kan sagtens extende og så sætte nogle værdier i bassis klassen.
Avatar billede themepark Nybegynder
05. november 2005 - 14:34 #6
He he, ja jeg havde ikke lige tænkt over det, men jeg har selvfølgelig parametre med til min konstruktor :) Men fair nok, smid et svar, så lukker jeg spørgsmålet :)
Avatar billede arne_v Ekspert
05. november 2005 - 14:39 #7
svar
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