Paano Ipapatupad ang Pribadong Tagabuo sa Java



Magbibigay sa iyo ang artikulong ito ng isang detalyado at komprehensibong kaalaman tungkol sa Pribadong Tagabuo sa Java at ginagamit ito sa mga halimbawa.

Mga tagapagbuo ay ginagamit upang simulan ang estado ng isang bagay. Katulad ng mga pamamaraan, ang isang tagapagbuo ay maaari ring magkaroon ng isang koleksyon ng mga pahayag, na maaaring tinatawag na walang iba kundi mga tagubilin. Sa artikulong ito, tatalakayin namin ang Pribadong Tagatayo sa sa sumusunod na pagkakasunud-sunod:

Panimula sa Tagatayo sa Java

Ang mga konstruktor ay naisakatuparan sa oras ng paglikha ng bagay. Upang makakuha ng isang mas mahusay na pag-unawa sa tagabuo at mga aplikasyon nito, isipin lamang ang isang kahon bilang isang klase. Ang isang klase sa Kahon ay ipinapalagay na mayroong ilang mga variable ng klase (ibig sabihin ang haba, lawak, at taas). Gayunpaman, sa oras ng paglikha ng object nito (ibig sabihin, ang Box ay mayroon sa memorya ng computer), kaya maaari ding magkaroon ang isang kahon na walang tinukoy na halaga para sa mga dimensional na dami nito.





Malinaw naman, hindi.

abstract klase at pagkakaiba-iba ng interface

Samakatuwid, ang isang tagapagbuo ay ipinakilala upang magtalaga ng mga halaga sa mga variable ng klase sa paglikha ng bagay. Maaari itong malinaw na gawin ng programmer o ng Java mismo. Kapag tapos na ng Java mismo ito ay tinatawag na isang default na tagapagbuo.



Kinakailangan na maunawaan na ang anumang pamamaraan, na nagtataglay ng access specifier na ibinigay ng coder sa konstruktor, na ginawang pribado, ay maaari lamang ma-access sa loob mismo ng klase.

Pribadong Tagatayo sa Java

Singleton Class

Mula sa mismong pangalan, maaari kaming tumawag sa isang klase ng isang singleton kung nililimitahan nito ang bilang ng mga bagay sa klase na iyon sa isa. Ang isang klase ay hindi maaaring magkaroon ng higit sa isang solong object sa mga ganitong kaso. Ang mga klase ng singleton ay ginagamit nang lubusan sa mga konsepto tulad ng pagkakakonekta sa network at database. Ang klase ng singleton ay a pribadong klase .



Dapat mayroong ibang paraan upang kunin ang halimbawa ng klase at isang pabalik na paraan upang makuha ang resulta. Sa ibaba ay isang apt na guhit ng pareho. Inilalarawan ng unang piktograph ang maaaring resulta kung saan ang halaga ng 'a.x' ay katumbas ng 20 at ang halaga ng 'b.x' ay nagreresulta din sa 20. Sa code, habang tinutukoy namin ang pribadong klase ng singleton, ang mga nagtayo nito ay hindi ma-access sa labas ng klase.

Halaga ng a.x = 20

Halaga ng b.x = 20

// Java program upang maipakita ang pagpapatupad ng Singleton // pattern gamit ang mga pribadong konstruktor. i-import ang java.io. * klase MySingleton {static MySingleton instance = null public int x = 10 // pribadong konstruktor ay hindi ma-access sa labas ng klase ng pribadong MySingleton () {} // Paraan ng pabrika upang maibigay sa mga gumagamit ang mga pagkakataon na static na pampublikong MySingleton getInstance () {if (instance == null) instance = bagong MySingleton () return instance}} // Driver Class class Pangunahing {public static void main (String args []) {MySingleton a = MySingleton.getInstance () MySingleton b = MySingleton.getInstance () ax = ax + 10 System.out.println ('Value of ax =' + ax) System.out.println ('Value of bx =' + bx)}}

Epekto ng Pribadong Tagatayo sa Java

Hindi ma-access ng mga pribadong tagapagtayo ang nagmula sa mga klase mula sa ibang klase. Sa gayon, kailangan naming magbigay ng isang pampublikong pag-andar, na tumatawag sa pribadong tagapagbuo. Sa kaso, ang bagay ay hindi naisauna, o kailangan naming ibalik ang isang halimbawa sa bagay kung ito ay naisimulan. Lalo na kapaki-pakinabang ito para sa mga bagay, na hindi maaaring gawing simula. Ginagamit ang isang pribadong tagapagbuo sa mga sumusunod na kaso:

  • Ang mga kaukulang klase, na mayroon lamang mga static na pamamaraan at miyembro.
  • Ang mga tukoy na klase, na kung saan ay malawak na ginamit static pangwakas na mga miyembro (pare-pareho).
  • Upang isama ang mga singleton.
  • Upang isama ang mga pamamaraan ng pabrika.

Upang magamit ang mga enumerasyon, na kung saan ay ligtas na uri.

Panloob na Chain ng Panloob

Ang panloob na chain ng tagapagbuo ay kapag ang isang tagatayo ay tumawag sa isa pang tagapagbuo ng parehong klase pagkatapos ay maaari itong matukoy bilang tagapagbuo ng konstruktor. Tungkulin nating gamitin ang keyword na ito upang tumawag sa isa pang tagapagbuo ng klase. Sa ilang mga pagkakataon, ginagamit ito upang tukuyin ang ilang mga default na halaga ng mga variable ng klase. Mangyaring tandaan din na ang isa pang tawag sa konstruktor ay dapat na ang unang pahayag sa code block.

php i-convert ang object sa array

Bilang karagdagan, hindi dapat magkaroon ng mga recursive na tawag, na lilikha ng isang walang katapusang loop. Tingnan natin ngayon ang isang halimbawa ng isang tagapagbuot ng chain sa programang java.

package com.journaldev.constructor pampublikong klase ng empleyado {pribadong int id pribadong pangalan ng String pampublikong empleyado () {this ('John Doe', 999) System.out.println ('Default na Nilikha ng Empleyado')} pampublikong Empleyado (int i) { ito ('John Doe', i) System.out.println ('Nilikha ang Empleyado na May Default na Pangalan')} pampublikong empleyado (String s, int i) {this.id = i this.name = s System.out.println ( 'Nilikha ang empleyado')} pampubliko na static na walang bisa (String [] args) {Empleyado ng empleyado = bagong empleyado () System.out.println (emp) Empleyado ng emp1 = bagong Empleyado (10) System.out.println (emp1) Emp2 emp2 = bagong empleyado ('Pankaj', 20) System.out.println (emp2)} @Override public String toString () {return 'ID =' + id + ', Name =' + name} public int getId () {return id } public void setId (int id) {this.id = id} public String getName () {return name} public void setName (String name) {this.name = name}}

Huwaran ng Disenyo ng Klase ng Singleton

  • Miyembro sa Antas ng Klase (Pamamaraan ng Eager Initizationization):

  1. Una, gumawa ng isang pribadong pare-pareho na static na halimbawa ng isang klase ng singleton.

  2. Pagkatapos, magsulat ng isang static na pamamaraan, na magbabalik ng object ng isang klase ng singleton, na nilikha namin bilang isang halimbawa ng miyembro ng klase.

  3. Posibleng markahan ang isang static na miyembro bilang publiko upang direktang ma-access ang pare-pareho ang static na halimbawa.

  4. Ang klase ng singleton ay nag-iiba mula sa isang normal na klase sa Java sa mga tuntunin ng instantiation. Sa isang normal na klase, ginagamit ang isang tagapagbuo ngunit para sa singleton na klase ginagamit namin ang paraan ng pagkuha Instance ().

  • Miyembro sa Antas ng Klase (Lazy Initialization Method):

  1. Una, simulan ang isang tagapagbuo bilang pribado.

  2. Pagkatapos ay lumikha ng isang pribadong static na halimbawa ng klase ng singleton na ito. Tandaan na HINDI ito igintatag.

  3. Pagkatapos, sumulat ng isang static na pamamaraan, na suriin ang miyembro ng static na halimbawa para sa null at pinasimulan ang halimbawa. Sa wakas, nagbabalik ito ng isang object ng singleton class.

  • Ang Miyembro sa Antas ng Klase (Lazy Initialization na may dobleng lock na Paraan):

Isaalang-alang ang dalawang mga thread na tumatakbo kung saan parehong nakapasok sa loob ng pahayag na 'kung' nang sabay habang ang halimbawa ay null. Kung saan, ang isang thread ay napupunta sa isang naka-synchronize na bloke upang lumikha ng isang pagkakataon, habang ang iba ay na-block. Habang ang unang thread ay naninirahan sa naka-synchronize na bloke, ang thread sa pila ay lumilikha ng isa pang singleton na bagay. Mangyaring tandaan na habang ang pangalawang thread ay pumapasok sa isang na-synchronize na bloke, nabigo itong suriin kung ang halimbawa ay hindi null.

  • Paggamit ng nakapugad na Inner class (pamamaraang Lazy Load):

Dito, ito ay batay sa Mga Pagtukoy sa Wika ng Java (JLS). Ang Java Virtual Machine ay naglo-load ng mga static na data-miyembro lamang on-demand. Kaya, ang klase ng Singleton ay naglo-load muna ng JVM. Samakatuwid, walang static na kasapi ng data sa isang klase

Ang Singleton Class Holder ay hindi naglo-load ng SINGLE_INSTANCE. Kapag hiniling namin ang paraan ng getIntance, nangyayari lamang ito. Ginagarantiyahan ng JLS ang pagpapatupad ng pagsisimula ng klase. Isang probisyon para sa tahasang pagsabay sa static na getInstance () na pamamaraan para sa pag-load at pagsisimula. Habang ang paggawa ng pagsisimula ay lumilikha ng static variable na SINGLE_INSTANCE sa isang sunud-sunod na paraan, ang lahat ng mga kasabay na invocation ng getInstance () ay babalik pareho nang walang overhead ng pag-synchronize.

  • Sa pamamagitan ng paggamit ng Enums

Hindi lahat ng mga diskarte sa itaas ay kumpletong solusyon sa lahat ng mga kaso. Ang maramihang mga pagkakataon ng mga pagpapatupad sa itaas ay maaaring malikha sa pamamagitan ng paggamit ng pagmuni-muni. Sa parehong mga sitwasyon, maaari naming bypass ang pribadong tagapagbuo at lumikha ng maraming mga pagkakataon. Samakatuwid, ang isang bagong diskarte ay upang lumikha ng isang klase ng singleton sa pamamagitan ng paggamit ng mga enum. Tulad ng mga enum na patlang ay pinagsama-sama ng mga oras na pare-pareho, ang mga ito ay mga pagkakataon ng kanilang uri ng enum. Ang mga ito ay itinayo kapag ang uri ng enum ay isinangguni sa unang pagkakataon.

Sa pamamagitan nito, nakarating kami sa pagtatapos ng Pribadong Tagabuo sa artikulong Java. Inaasahan kong nakakuha ka ng pag-unawa sa Mga Pribadong Tagabuo at kung paano ito magagamit sa Java.

Suriin ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

substring sa mga halimbawa ng sql server

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na 'Java Tutorial' at babalikan ka namin sa lalong madaling panahon.