Gå til innhold

overloade konstruktør, "videresende" instansiering


Anbefalte innlegg

Videoannonse
Annonse

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 av pgdx
Lenke til kommentar
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
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" :blush:

Endret av Patton
Lenke til kommentar
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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...