JavaRush /Blog Java /Random-PL /Przerwa kawowa #118. Jaka jest różnica między językami C+...

Przerwa kawowa #118. Jaka jest różnica między językami C++ i Java. Prywatni konstruktorzy w Javie

Opublikowano w grupie Random-PL

Jaka jest różnica między C++ a Javą

Źródło: Hackernoon Języki programowania C++ i Java należą dziś do najpopularniejszych. Omówmy główne różnice między C++ i Javą. Przerwa kawowa #118.  Jaka jest różnica między językami C++ i Java.  Prywatni konstruktorzy w Javie — 1Java jest językiem programowania ogólnego przeznaczenia. Należy do języków obiektowych. Twórcom Javy zależało na zaimplementowaniu zasady WORA – „Write Once, Run Anywhere”. Oznacza to, że aplikacja napisana w języku Java może działać na dowolnej platformie, pod warunkiem, że jest na niej zainstalowane środowisko Java Runtime Environment (JRE). Program działa poprzez kompilację kodu napisanego w Javie do kodu bajtowego. Ten format jest wykonywany przy użyciu JVM, czyli wirtualnej maszyny Java. W związku z tym JVM jest częścią środowiska Java Runtime Environment (JRE). Maszyna wirtualna jest niezależna od platformy. Java ma również mechanizm zarządzania pamięcią o nazwie Garbage Collector (GC). Deweloper tworzy obiekty, a środowisko JRE używa modułu zbierającego elementy bezużyteczne do czyszczenia pamięci po zatrzymaniu obiektów. Składnia języka Java jest podobna do składni innych języków podobnych do C. Oto niektóre z jego funkcji:
  • Uwzględnianie wielkości liter — użytkownik i identyfikator użytkownika w Javie to różne jednostki.

  • Nazwa metody . Jeżeli nazwa metody składa się z jednego słowa, musi zaczynać się od małej litery. Przykład: FirstMethodName() .

  • UpperCamelCase służy do nazywania klas. Jeśli nazwa składa się z jednego słowa, musi zaczynać się z dużej litery. Przykład: FirstClassName .

  • Nazwa plików programu musi dokładnie odpowiadać nazwie klasy, biorąc pod uwagę wielkość liter. Na przykład, jeśli klasa nosi nazwę FirstClassName , plik powinien mieć nazwę FirstClassName.java .

  • Identyfikatory zawsze zaczynają się od litery (AZ, az), $ lub znaku podkreślenia _.

Co to jest język C++?

C++ to skompilowany, silnie typowany język programowania ogólnego przeznaczenia. Obsługuje różne paradygmaty programowania: proceduralny, ogólny, funkcjonalny; Najwięcej uwagi poświęca się wsparciu programowania obiektowego. Zasadniczo C++ to zestaw poleceń, które mówią komputerowi, co ma robić. Ten zestaw instrukcji nazywany jest zwykle kodem źródłowym lub po prostu kodem. Polecenia to albo „funkcje”, albo „słowa kluczowe”. Słowa kluczowe (słowa zastrzeżone C/C++) to podstawowe elementy składowe języka. Funkcje są złożonymi elementami, ponieważ są napisane w kategoriach prostszych funkcji. Struktura funkcji C++ i Java przypomina treść książki. Spis treści może wyświetlać rozdziały książki, każdy rozdział książki może mieć własny spis treści, składający się z akapitów; Każdy akapit może mieć własne akapity. Chociaż C++ udostępnia wiele typowych funkcji i słów zastrzeżonych, których możesz użyć, język ten nadal wymaga pisania własnych funkcji.

Kluczowe różnice między C++ i Javą

Zarówno Java, jak i C++ są językami programowania zorientowanymi obiektowo, ale na tym kończą się ich podobieństwa. Różnic między nimi jest więcej. Oczywiście istnieje zasadnicza różnica między C++ a Javą, jeśli chodzi o wybór jednego z języków do opracowania projektu lub innego konkretnego przypadku. Oto kryteria, na które warto zwrócić uwagę.

Biblioteki

Java czy C++? Która biblioteka jest większa lub lepsza? Java ma o wiele więcej bibliotek. Ale skąd wiesz, których użyć, a których nie? Oto krótki opis niektórych z nich:
  • lang, util, nio, io, net.
  • Java posiada także biblioteki do pracy ze frameworkami GUI: javax.swing (raczej przestarzałe rozszerzenie jeszcze starszego Java.awt).
  • Możesz nawet odtwarzać muzykę i tworzyć pliki MIDI za pomocą java.sound itp.
Język C++ ma bibliotekę standardową C i bibliotekę standardową C++. Programiści powinni najpierw upewnić się, że rozumieją różnicę między C i C++. Ponadto muszą przestudiować biblioteki, z których będą korzystać w konkretnym projekcie. Java ma wbudowaną obsługę komentarzy do dokumentacji. C++ nie obsługuje komentarzy do dokumentacji. Możesz także skorzystać z wygodnego kompilatora Java dostępnego online.

Mechanizm wejściowy

Java jest głównie interpretowana, więc jest niezależna od platformy. C++ generuje kod obiektowy; ten sam kod nie może działać na różnych platformach.

Wsparcie wątków

Java ma wbudowaną obsługę wątków. Java ma klasy wątków, które są dziedziczone w celu utworzenia nowego wątku i zastąpienia metody start. Należy pamiętać, że C++ nie obsługuje natywnej obsługi wątków. Do tych celów wykorzystywane są niestandardowe biblioteki stron trzecich.

Metoda wspomagająca

Java ma przeciążanie metod, ale nie ma przeciążania operatora. Klasa String nie używa operatorów + i += do łączenia ciągów, a klasa Stringexpressions używa automatycznych typów konwersji, ale jest to specjalny, wbudowany przypadek. C++ obsługuje zarówno przeciążanie metod, jak i przeciążanie operatorów.

Zarządzanie pamięcią

Java obsługuje automatyczną kontrolę delokalizacji sterty, ale nie obsługuje destruktorów. W C++ obsługa destruktorów jest automatycznie włączana po zniszczeniu obiektu.

Dziedziczenie wielokrotne

Java nie zapewnia wielokrotnego dziedziczenia, przynajmniej nie w taki sam sposób jak C++. Dziedziczenie wielokrotne to funkcja języka C++, w której klasa może dziedziczyć z więcej niż jednej klasy.

Wniosek

Na tym właśnie polega różnica między Javą a C++. Język Java idealnie nadaje się do projektów komercyjnych. Jest bardzo poszukiwany w dużych firmach, ponieważ utrzymanie i refaktoryzacja istniejących projektów zawsze pozostanie istotna - przynajmniej w bankach i innych instytucjach finansowych. Całkiem nieźle radzisz sobie z tworzeniem aplikacji wieloplatformowych i wykorzystujesz je do stworzenia systemu na dowolną platformę. C++ ma jednak inne zalety w porównaniu z Javą, takie jak obsługa zarówno przeciążania metod, jak i przeciążania operatorów, obsługa destruktorów itp.

Prywatni konstruktorzy w Javie

Źródło: Dev.to Konstruktor w Javie to specjalny typ metody, który ma taką samą nazwę jak nazwa klasy lub nazwa pliku. Kiedy wywołujemy obiekt, zawsze wywoływany jest konstruktor wewnętrzny. Służy głównie do inicjowania stanu obiektu lub wartości zmiennych w klasie. Przerwa kawowa #118.  Jaka jest różnica między językami C++ i Java.  Prywatni konstruktorzy w Javie — 2Zobaczmy teraz, czym są prywatni konstruktorzy. Java pozwala nam zmieniać metody w zależności od naszego użycia. Czy możemy więc ustawić konstruktor jako prywatny, tak jak inne metody? A jeśli tak, to jaki jest pożytek z prywatnego konstruktora? Odpowiedź: Tak, możemy zadeklarować konstruktor w Javie jako konstruktor prywatny, używając specyfikatora dostępu prywatnego. Pamiętaj jednak, że jeśli zadeklarujemy konstruktor jako prywatny, to nie będziemy mogli utworzyć obiektu klasy. Zamiast tego możemy użyć tego prywatnego konstruktora we wzorcu projektowym Singleton. Zasady dla prywatnych konstruktorów:
  • Nie pozwala, aby klasa była podklasą.
  • Nie pozwala na utworzenie obiektu poza klasą.
  • Jeśli klasa ma prywatnego konstruktora, to przy próbie rozszerzenia klasy pojawia się błąd kompilacji.
  • Nie możemy uzyskać dostępu do prywatnego konstruktora z żadnej innej klasy.
  • Jeśli nasza klasa ma wszystkie metody stałe, możemy użyć prywatnego konstruktora.
  • Jeśli wszystkie metody są statyczne, możemy użyć prywatnego konstruktora.
  • Możemy użyć funkcji publicznej, aby wywołać prywatny konstruktor, jeśli obiekt nie został zainicjowany.
  • Możemy zwrócić instancję tego obiektu tylko wtedy, gdy obiekt został już zainicjowany.
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));
   }
}
Wniosek:
PRAWDA
Przyjrzyjmy się teraz przypadkom użycia dla prywatnych konstruktorów. Głównym celem użycia prywatnego konstruktora jest ograniczenie tworzenia obiektów. Prywatni konstruktorzy są również wykorzystywani do implementacji wzorca projektowego Singleton. Możliwości użycia prywatnego konstruktora są następujące:
  • Można go używać ze statycznymi klasami tylko dla członków.
  • Można go używać ze statycznymi narzędziami lub klasami stałymi.
  • Można go również używać do tworzenia klas singletonowych.
  • Można go używać do nazewnictwa, np. tworzenia metodami fabrycznymi.
  • Służy również do uniknięcia podklas.
  • Obejmuje metody fabryczne.
Mam nadzieję, że dzięki temu wpisowi dowiedziałeś się więcej o konstruktorach Java.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION