JavaRush /Java Blog /Random-TL /Coffee break #118. Ano ang pagkakaiba sa pagitan ng mga w...

Coffee break #118. Ano ang pagkakaiba sa pagitan ng mga wikang C++ at Java. Mga pribadong konstruktor sa Java

Nai-publish sa grupo

Ano ang pagkakaiba sa pagitan ng C++ at Java

Pinagmulan: Hackernoon Ang mga programming language na C++ at Java ay kabilang sa pinakasikat ngayon. Talakayin natin ang mga pangunahing pagkakaiba sa pagitan ng C++ at Java. Coffee break #118.  Ano ang pagkakaiba sa pagitan ng mga wikang C++ at Java.  Mga Pribadong Konstruktor sa Java - 1Ang Java ay isang pangkalahatang layunin ng programming language. Ito ay kabilang sa mga object-oriented na wika. Nais ng mga tagalikha ng Java na ipatupad ang prinsipyo ng WORA - "Write Once, Run Anywhere". Nangangahulugan ito na kapag bumuo ka ng isang application na nakasulat sa Java, maaari itong tumakbo sa anumang platform hangga't mayroon itong Java Runtime Environment (JRE) na naka-install dito. Ang programa ay tumatakbo sa pamamagitan ng pag-compile ng code na nakasulat sa Java sa bytecode. Ang format na ito ay isinasagawa gamit ang JVM, iyon ay, ang Java Virtual Machine. Alinsunod dito, ang JVM ay bahagi ng Java Runtime Environment (JRE). Ang virtual machine ay independyente sa platform. Ang Java ay mayroon ding mekanismo sa pamamahala ng memorya na tinatawag na Garbage Collector (GC). Gumagawa ang developer ng mga bagay, at ginagamit ng JRE ang garbage collector upang linisin ang memory kapag huminto ang mga bagay. Ang syntax ng wikang Java ay katulad ng iba pang mga wikang katulad ng C. Narito ang ilan sa mga tampok nito:
  • Case Sensitivity - Ang user at user ID sa Java ay magkaibang entity.

  • Pangalan ng pamamaraan . Kung ang pangalan ng pamamaraan ay binubuo ng isang salita, dapat itong magsimula sa isang maliit na titik. Halimbawa: firstMethodName() .

  • Ang UpperCamelCase ay ginagamit upang pangalanan ang mga klase. Kung ang pangalan ay binubuo ng isang salita, dapat itong magsimula sa malaking titik. Halimbawa: FirstClassName .

  • Ang pangalan ng mga file ng programa ay dapat na eksaktong tumugma sa pangalan ng klase, na isinasaalang-alang ang pagiging sensitibo ng kaso. Halimbawa, kung ang klase ay tinatawag na FirstClassName , ang file ay dapat na tinatawag na FirstClassName.java .

  • Palaging nagsisimula ang mga identifier sa isang titik (AZ, az), $, o isang underscore _.

Ano ang C++ na wika?

Ang C++ ay isang compiled, strongly typed, general-purpose programming language. Sinusuportahan nito ang iba't ibang paradigms sa programming: procedural, generic, functional; Karamihan sa atensyon ay binabayaran sa pagsuporta sa object-oriented programming. Sa esensya, ang C++ ay isang set ng mga command na nagsasabi sa computer kung ano ang gagawin. Ang hanay ng mga tagubiling ito ay karaniwang tinatawag na source code o simpleng code. Ang mga utos ay alinman sa "mga function" o "mga keyword". Ang mga keyword (C/C++ reserved words) ay ang mga pangunahing building blocks ng wika. Ang mga function ay kumplikadong mga bloke ng gusali dahil ang mga ito ay nakasulat sa mga tuntunin ng mas simpleng mga pag-andar. Ang istraktura ng C++ at Java function ay kahawig ng mga nilalaman ng aklat. Ang talaan ng mga nilalaman ay maaaring magpakita ng mga kabanata ng isang aklat, bawat kabanata sa isang aklat ay maaaring magkaroon ng sarili nitong talaan ng mga nilalaman, na binubuo ng mga talata; Ang bawat talata ay maaaring magkaroon ng sarili nitong mga subparagraph. Bagama't ang C++ ay nagbibigay ng maraming karaniwang function at nakalaan na salita na magagamit mo, hinihiling pa rin sa iyo ng wika na magsulat ng sarili mong mga function.

Mga pangunahing pagkakaiba sa pagitan ng C++ at Java

Parehong Java at C++ ay object-oriented programming language, ngunit doon nagtatapos ang kanilang pagkakatulad. Mayroong higit pang mga pagkakaiba sa pagitan nila. Siyempre, mayroong isang kritikal na pagkakaiba sa pagitan ng C++ at Java pagdating sa pagpili ng isa sa mga wika para sa pagbuo ng isang proyekto o anumang iba pang partikular na kaso. Narito ang mga pamantayan na dapat bigyang pansin.

Mga aklatan

Java o C++? Aling library ang mas malaki o mas maganda? Marami pang aklatan ang Java. Ngunit paano mo malalaman kung alin ang gagamitin at alin ang hindi? Narito ang isang maikling paglalarawan ng ilan sa kanila:
  • lang, util, nio, io, net.
  • Ang Java ay mayroon ding mga aklatan para sa pagtatrabaho sa mga balangkas ng GUI: javax.swing (isang medyo lumang extension ng mas lumang java.awt).
  • Maaari ka ring magpatugtog ng musika at lumikha ng mga MIDI file gamit ang java.sound atbp.
Ang wikang C++ ay mayroong C Standard Library at C++ Standard Library. Dapat munang tiyakin ng mga developer na nauunawaan nila ang pagkakaiba sa pagitan ng C at C++. Bilang karagdagan, dapat nilang pag-aralan ang mga aklatan na kanilang gagamitin sa isang partikular na proyekto. Ang Java ay may built-in na suporta para sa mga komento sa dokumentasyon. Hindi sinusuportahan ng C++ ang mga komento sa dokumentasyon. Maaari ka ring gumamit ng isang maginhawang online Java compiler.

Mekanismo ng pag-input

Ang Java ay pangunahing binibigyang kahulugan, kaya ito ay independyente sa platform. Ang C++ ay bumubuo ng object code; ang parehong code ay hindi maaaring tumakbo sa iba't ibang mga platform.

Suporta sa thread

Ang Java ay may built-in na suporta para sa mga thread. Ang Java ay may mga klase ng thread na minana upang lumikha ng bagong thread at i-override ang paraan ng pagsisimula. Pakitandaan na ang C++ ay walang suporta sa katutubong threading. Para sa mga layuning ito, ginagamit ang mga hindi pamantayang third-party na aklatan.

Paraan ng pagsuporta

Ang Java ay may paraan ng overloading, ngunit walang operator na overloading. Ang Stringclass ay hindi gumagamit ng + at += na mga operator upang pagsamahin ang mga string, at ang Stringexpressions ay gumagamit ng mga awtomatikong uri ng conversion, ngunit ito ay isang espesyal na built-in na kaso. Sinusuportahan ng C++ ang parehong paraan ng overloading at operator overloading.

Pamamahala ng kaisipan

Sinusuportahan ng Java ang awtomatikong kontrol ng heap deallocation, ngunit hindi sinusuportahan ang mga destructor. Sa C++, awtomatikong pinapagana ang suporta para sa mga destructors kapag nasira ang isang bagay.

Maramihang mana

Ang Java ay hindi nagbibigay ng maramihang pamana, hindi bababa sa hindi katulad ng C++. Ang multiple inheritance ay isang feature ng C++ kung saan ang isang klase ay maaaring magmana mula sa higit sa isang klase.

Konklusyon

Iyan ang buong pagkakaiba sa pagitan ng Java at C++. Ang wikang Java ay mainam para sa mga komersyal na proyekto. Ito ay may malaking pangangailangan sa malalaking kumpanya, dahil ang pagpapanatili at pag-refactor ng mga kasalukuyang proyekto ay palaging mananatiling may kaugnayan - hindi bababa sa mga bangko at iba pang mga institusyong pinansyal. Maaari mong pangasiwaan nang maayos ang cross-platform development at gamitin ito upang lumikha ng isang system para sa anumang platform. Ang C++ ay may iba pang mga pakinabang sa Java, gayunpaman, tulad ng suporta para sa parehong paraan ng overloading at operator overloading, suporta para sa mga destructors, atbp.

Mga pribadong konstruktor sa Java

Source: Dev.to Ang isang constructor sa Java ay isang espesyal na uri ng pamamaraan na may parehong pangalan sa pangalan ng klase o pangalan ng file. Kapag tinawag natin ang isang bagay, palaging tinatawag ang panloob na tagapagbuo. Ito ay pangunahing ginagamit upang simulan ang estado ng isang bagay o ang mga halaga ng mga variable sa isang klase. Coffee break #118.  Ano ang pagkakaiba sa pagitan ng mga wikang C++ at Java.  Mga Pribadong Konstruktor sa Java - 2Ngayon tingnan natin kung ano ang mga pribadong konstruktor. Pinapayagan tayo ng Java na baguhin ang mga pamamaraan depende sa ating paggamit. Kaya, maaari ba nating gawing pribado ang tagabuo tulad ng iba pang mga pamamaraan? At kung gayon, ano ang silbi ng isang pribadong tagabuo? Sagot: Oo, maaari naming ideklara ang isang constructor sa Java bilang isang pribadong constructor gamit ang private access specifier. Ngunit tandaan na kung idedeklara naming pribado ang constructor, hindi kami makakagawa ng object ng klase. Sa halip, maaari nating gamitin ang pribadong constructor na ito sa pattern ng disenyo ng Singleton. Mga panuntunan para sa mga pribadong konstruktor:
  • Hindi nito pinapayagan ang isang klase na maging isang subclass.
  • Hindi ka pinapayagang lumikha ng isang bagay sa labas ng klase.
  • Kung ang isang klase ay may pribadong constructor, pagkatapos ay kapag sinubukan naming pahabain ang klase, isang error sa compile-time ang nangyayari.
  • Hindi namin ma-access ang isang pribadong constructor mula sa anumang ibang klase.
  • Kung ang aming klase ay may lahat ng mga pare-parehong pamamaraan, maaari kaming gumamit ng isang pribadong constructor.
  • Kung ang lahat ng mga pamamaraan ay static, maaari kaming gumamit ng isang pribadong constructor.
  • Maaari kaming gumamit ng isang pampublikong function upang tumawag sa isang pribadong tagabuo kung ang bagay ay hindi nasimulan.
  • Maaari lamang kaming magbalik ng isang instance ng object na ito kung ang object ay nasimulan na.
public class PrivateConstructorDemo
{
     //creating an instance variable of the class Tester
     private static PrivateConstructorDemo pcd;
     //creating a private constructor
     private PrivateConstructorDemo()
     {
     }
    //creating a static method named getInstance()
    public static PrivateConstructorDemo getInstance()
    {
       if(pcd == null)
       {
        //creating a constructor of the class
        pcd = new PrivateConstructorDemo();
       }
     return pcd;
    }
    //main() method
    public static void main(String args[])
    {
     PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
    PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
    //invokes the getInstance() method and prints the corresponding result
    System.out.println(pcd.equals(pcd1));
   }
}
Konklusyon:
totoo
Ngayon tingnan natin ang mga kaso ng paggamit para sa mga pribadong konstruktor. Ang pangunahing layunin ng paggamit ng isang pribadong constructor ay upang paghigpitan ang paglikha ng mga bagay. Ginagamit din ang mga pribadong konstruktor upang ipatupad ang pattern ng disenyo ng Singleton. Ang mga opsyon para sa paggamit ng pribadong constructor ay ang mga sumusunod:
  • Magagamit ito sa mga static na klaseng miyembro lang.
  • Maaari itong magamit sa static na utility o pare-pareho ang mga klase.
  • Maaari rin itong magamit upang lumikha ng mga singleton na klase.
  • Maaari itong magamit para sa pagbibigay ng pangalan, tulad ng paglikha gamit ang mga pamamaraan ng pabrika.
  • Ginagamit din ito upang maiwasan ang subclassing.
  • Kasama dito ang mga pamamaraan ng pabrika.
Umaasa ako na natutunan mo ang higit pa tungkol sa mga tagabuo ng Java sa pamamagitan ng post na ito.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION