Constructor method ni nini?

Hii ni method ambayo hutumika kutengeneza object moja kwa moja, ama kuweka property kwenye object moja kwa moja. Constructor method haina return  value. Pia jina ma construct method linatakiwa liwe sawa na jina la class husika.


 

Katika somo hili tutaendelea utumia kifano yetu ya somo lililopita il tupate kuelewa zaidi. Utaona tofauti ya kutumia constructor na kutokutumia.

 

Class gari

Kwanza tutatengeneza class gari kama tulivyoona katika somo lililopita.

class gari{

String? jina;

String? rangi;

int? matairi;

 

}

Baada ya hapo ndani ya class body tutatengeneza constructor method, ambayo itakuwa na jina sawa na jina la class.

class gari{

String? jina;

String? rangi;

int? matairi;

 

   gari(){

 

    }

}

 

Properties zetu tutazipitisha kama parameter kwenye constructor method.

class gari{

String? jina;

String? rangi;

int? matairi;

 

   gari(String jina, String rangi, int matairi){

 

    }

}

 

Sasa tunakwenda kutumia properties zetu kwenye construct function. Tunapotaka kutumia property ndani ya class tunatumia keyword this. Katika somo liliopita hatukutuia keyword this  ila tulitumia ina la class moja kwa moja ni kwa sababu tulitumia prpperty nje ya class.

 

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(String jina, String rangi, int matairi){

   print(" Tunauza gari aina ya ${jina}. Ina rangi ${rangi}. Ina matairi ${matairi}.");

 

   this.jina = jina;

   this.rangi = rangi;

   this.matairi = matairi;

 }

 

}

 

Hatuwa iliobaki ni kutengeneza object na kuweka property. Kwa mujibu wa somo lililopita tulitakiwa tufanye hivi:-

gari toyota = gari();

 toyota.jina = 'Toyota avalon';

 toyota.rangi = "Nyeusi mpauko";

 toyota.matairi = 4;


 

Ila kwa kuwa tmetumia constrct method, tutaweza kutengeneza object na kuweka value kwenye properties zake moja kwa moja kw akufanya hivi:-

gari toyota = gari( "Toyota Avalon", "nyeusi", 4);

Zingatia huo mpagilio naendana na mpangilio wa parameter kwenye construct method. Hivyo code zote zitaonekana hivi:-

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(String jina, String rangi, int matairi){

   print(" Tunauza gari aina ya ${jina}. Ina rangi ${rangi}. Ina matairi ${matairi}.");

 

   this.jina = jina;

   this.rangi = rangi;

   this.matairi = matairi;

 }

 

}

 

void main(){

 gari toyota = gari( "Toyota Avalon", "nyeusi", 4);

}

 

 

Pia tunaweza kuandika code hizi kwa mtindo huu:

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(String jina, String rangi, int matairi){

   this.jina = jina;

   this.rangi = rangi;

   this.matairi = matairi;

 }

 

}

 

void main(){

 gari toyota = gari( "Toyota Avalon", "nyeusi", 4);

 print(" Tunauza gari aina ya ${toyota.jina}. Ina rangi ${toyota.rangi}. Ina matairi ${toyota.matairi}.");

}

 

 

Pia tunaweza kuzinadika hizi code kwa kuweka function nyingine, huku constructor method ikiwa katika mstari mmoja tu wa code.

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(String this.jina, String this.rangi, int this.matairi);

 

 void tangazo(){

   print(" Tunauza gari aina ya ${this.jina}. Ina rangi ${this.rangi}. Ina matairi ${this.matairi}.");

 }

}

 

void main(){

 gari toyota = gari( "Toyota Avalon", "nyeusi", 4);

 toyota.tangazo();

}

 

 

Pia unaweza kutumia default parameter kwenye construct method. Rejea somo la Dart parameter kama concept za parameter umezisahau.somo la 15

 

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(this.jina, {this.rangi, this.matairi});

 

 void tangazo(){

   print(" Tunauza gari aina ya ${this.jina}. Ina rangi ${this.rangi}. Ina matairi ${this.matairi}.");

 }

}

 

void main(){

 gari toyota = gari( "Toyota Avalon", rangi :"nyeusi", matairi: 4);

 toyota.tangazo();

}

 

Pia unaweza kuweka default value moja kwa moja kwenye dafault parameter.

class gari {

//properties

 String? jina;

 String? rangi;

 int? matairi;

 

 //method

 gari(this.jina, {this.rangi = "Nyeusi", this.matairi});

 

 void tangazo(){

   print(" Tunauza gari aina ya ${this.jina}. Ina rangi ${this.rangi}. Ina matairi ${this.matairi}.");

 }

}

 

void main(){

 gari toyota = gari( "Toyota Avalon",  matairi: 4);

 toyota.tangazo();

}

 

 

Pia tunaweza kuwa na default constructor. hii hutengenezwa automatic wakati code zinapo run.

class gari {

 gari(){

  print("tunauza gari aina ya toyota avalon");

 }

}

 

void main(){

 gari toyota = gari();

}

 

Angalia mfanoo huu hapa chini, nimejaribu kuchanganya na concept za nyuma kidogo:-

class Gari {

 String? jina;

 String? rangi;

 int? matairi;

 

 // Default Constructor

 Gari() {

   print("Taarifa za gari");

   matairi = 4;

 }

}

 

void main() {

 // Here toyota is an object of class Gari.

 Gari toyota = Gari();

 toyota.jina = "Toyota Avalon";

 toyota.rangi = 'Nyeusi';

 

 print("Jina la gari: ${toyota.jina}");

 print("Rangi: ${toyota.rangi}");

 print("Idadi ya matairi ni: ${toyota.matairi}");

}

 

 

Mwisho:

Katika somo linalofuata tutakwenda kuingia ndani zaidi kwenye somohili la constructor. Kuhusu named constructor na ilivyo tofauti na constructor ambayo tumetoka kujifunza hapo juu.