Lungemannen Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 Jeg har to konstruktører; en no-arg, og en som tar inn en boolean. Er det mulig å "videresende" instansieringen til no-arg konstruktøren om boolean-verdien er false? Som et metodekall på en måte. Om boolean-argumentet er false, skal den gjøre nøyaktig det samme som no-arg'en. Lenke til kommentar
Mr.Garibaldi Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 Jada, det går helt greit. public MyClass() { //do what you need here } public MyClass(boolean someTest) { if(someTest) { //do something }else{ this(); } } Mer info her... Lenke til kommentar
Lungemannen Skrevet 31. januar 2008 Forfatter Del Skrevet 31. januar 2008 (endret) Takker! Endret 31. januar 2008 av Lungemannen Lenke til kommentar
pgdx Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 (endret) Dog det er ofte vanligere at den tomme konstruktøren kaller den ikke-tomme konstruktøren med de nødvendige argumenter. Det teller selvsagt ikke i ditt tilfelle, men vanligvis vil man velge å strukturere det slik: class MyClass { public MyClass() { this("default"); } public MyClass(String name) { this.name = name; } } Endret 31. januar 2008 av pgdx Lenke til kommentar
Patton Skrevet 1. februar 2008 Del Skrevet 1. februar 2008 Jada, det går helt greit. public MyClass() { //do what you need here } public MyClass(boolean someTest) { if(someTest) { //do something }else{ this(); } } Mer info her... Et konstruktorkall kan bare brukes som foerste argument i en annen konstruktor, saa eksempelet ditt over vil nok ikke fungere. Lenke til kommentar
Mr.Garibaldi Skrevet 1. februar 2008 Del Skrevet 1. februar 2008 Et konstruktorkall kan bare brukes som foerste argument i en annen konstruktor, saa eksempelet ditt over vil nok ikke fungere. Whoops, my bad. Flott at du fikk korrigert det Lenke til kommentar
Patton Skrevet 1. februar 2008 Del Skrevet 1. februar 2008 (endret) Et konstruktorkall kan bare brukes som foerste argument i en annen konstruktor, saa eksempelet ditt over vil nok ikke fungere. Whoops, my bad. Flott at du fikk korrigert det Ser at jeg maa korrigere meg selv her. Jeg mente "som foerste statement" og ikke "som foerste argument" Endret 1. februar 2008 av Patton Lenke til kommentar
pgdx Skrevet 2. februar 2008 Del Skrevet 2. februar 2008 Jada, det går helt greit. public MyClass() { //do what you need here } public MyClass(boolean someTest) { if(someTest) { //do something }else{ this(); } } Mer info her... Et konstruktorkall kan bare brukes som foerste argument i en annen konstruktor, saa eksempelet ditt over vil nok ikke fungere. Dette blir mer korrekt: public MyClass() { this(false); } public MyClass(boolean someTest) { if(someTest) { //do something } else { // do something else } } Ps: Husk at brackets skal begynne på samme linje som uttrykket, ikke på neste linje. Lenke til kommentar
CruellaDeVille Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 Ps: Husk at brackets skal begynne på samme linje som uttrykket, ikke på neste linje. Er ikke det mer et spørsmål om smak og behag? Lenke til kommentar
NevroMance Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 I java er det vel en konvensjon at bracets skal starte på samme linje som uttrykket. I C/C++ er det derimot mest brukt at klasser og metoder har startbraceten under uttrykket, mens resten av de starter som i java. Hvorfor det er blitt slik vet jeg ikke, da jeg synes det er greiere å se hvor en metode/klasse starter i C++ en i java. Lenke til kommentar
pgdx Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 Ps: Husk at brackets skal begynne på samme linje som uttrykket, ikke på neste linje.Er ikke det mer et spørsmål om smak og behag?Nei, men det er et spørsmål om konvensjoner. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå