JavaRush /Blog Java /Random-VI /Nghỉ giải lao #118. Sự khác biệt giữa ngôn ngữ C++ và Jav...

Nghỉ giải lao #118. Sự khác biệt giữa ngôn ngữ C++ và Java là gì. Các hàm tạo riêng trong Java

Xuất bản trong nhóm

Sự khác biệt giữa C++ và Java là gì

Nguồn: Hackernoon Ngôn ngữ lập trình C++ và Java nằm trong số những ngôn ngữ phổ biến nhất hiện nay. Hãy thảo luận về sự khác biệt chính giữa C++ và Java. Nghỉ giải lao #118.  Sự khác biệt giữa ngôn ngữ C++ và Java là gì.  Trình xây dựng riêng trong Java - 1Java là một ngôn ngữ lập trình có mục đích chung. Nó thuộc về ngôn ngữ hướng đối tượng. Những người tạo ra Java muốn triển khai nguyên tắc WORA - “Viết một lần, chạy mọi nơi”. Điều này có nghĩa là khi bạn phát triển một ứng dụng viết bằng Java, nó có thể chạy trên mọi nền tảng miễn là có cài đặt Môi trường chạy thi hành Java (JRE) trên đó. Chương trình chạy bằng cách biên dịch mã được viết bằng Java thành mã byte. Định dạng này được thực thi bằng cách sử dụng JVM, tức là Máy ảo Java. Theo đó, JVM là một phần của Môi trường chạy thi hành Java (JRE). Máy ảo độc lập với nền tảng. Java cũng có cơ chế quản lý bộ nhớ gọi là Garbage Collector (GC). Nhà phát triển tạo các đối tượng và JRE sử dụng trình thu gom rác để dọn sạch bộ nhớ khi các đối tượng dừng lại. Cú pháp của ngôn ngữ Java tương tự như các ngôn ngữ giống C khác. Dưới đây là một số tính năng của nó:
  • Phân biệt chữ hoa chữ thường - ID người dùng và ID người dùng trong Java là các thực thể khác nhau.

  • Tên phương thức . Nếu tên phương thức bao gồm một từ thì nó phải bắt đầu bằng một chữ cái viết thường. Ví dụ: firstMethodName() .

  • UpperCamelCase được sử dụng để đặt tên cho các lớp. Nếu tên bao gồm một từ, nó phải bắt đầu bằng chữ in hoa. Ví dụ: FirstClassName .

  • Tên của tệp chương trình phải khớp chính xác với tên của lớp, có tính đến phân biệt chữ hoa chữ thường. Ví dụ: nếu lớp được gọi là FirstClassName thì tệp phải được gọi là FirstClassName.java .

  • Mã định danh luôn bắt đầu bằng một chữ cái (AZ, az), $ hoặc dấu gạch dưới _.

Ngôn ngữ C++ là gì?

C++ là một ngôn ngữ lập trình có mục đích chung được biên dịch, gõ mạnh. Nó hỗ trợ các mô hình lập trình khác nhau: thủ tục, chung chung, chức năng; Hầu hết sự chú ý được dành cho việc hỗ trợ lập trình hướng đối tượng. Về cơ bản, C++ là một tập hợp các lệnh cho máy tính biết phải làm gì. Bộ hướng dẫn này thường được gọi là mã nguồn hoặc đơn giản là mã. Các lệnh có thể là “chức năng” hoặc “từ khóa”. Từ khóa (từ dành riêng cho C/C++) là các khối xây dựng cơ bản của ngôn ngữ. Hàm là các khối xây dựng phức tạp vì chúng được viết dưới dạng các hàm đơn giản hơn. Cấu trúc của các hàm C++ và Java giống với nội dung của cuốn sách. Mục lục có thể hiển thị các chương của sách, mỗi chương trong sách có thể có mục lục riêng gồm các đoạn văn; Mỗi đoạn có thể có tiểu đoạn riêng. Mặc dù C++ cung cấp nhiều hàm phổ biến và các từ dành riêng mà bạn có thể sử dụng nhưng ngôn ngữ này vẫn yêu cầu bạn phải viết các hàm của riêng mình.

Sự khác biệt chính giữa C++ và Java

Cả Java và C++ đều là ngôn ngữ lập trình hướng đối tượng, nhưng điểm tương đồng của chúng chỉ dừng lại ở đó. Có nhiều sự khác biệt giữa chúng. Tất nhiên, có một sự khác biệt quan trọng giữa C++ và Java khi nói đến việc chọn một trong các ngôn ngữ để phát triển dự án hoặc bất kỳ trường hợp cụ thể nào khác. Dưới đây là những tiêu chí bạn cần chú ý.

Thư viện

Java hay C++? Thư viện nào lớn hơn hoặc tốt hơn? Java có nhiều thư viện hơn. Nhưng làm thế nào để bạn biết cái nào nên sử dụng và cái nào không? Dưới đây là một mô tả ngắn gọn về một số trong số họ:
  • lang, util, nio, io, net.
  • Java cũng có các thư viện để làm việc với các khung công tác GUI: javax.swing (một phần mở rộng khá lỗi thời của java.awt thậm chí còn cũ hơn).
  • Bạn thậm chí có thể phát nhạc và tạo các tệp MIDI bằng java.sound, v.v.
Ngôn ngữ C++ có Thư viện chuẩn C và Thư viện chuẩn C++. Trước tiên, các nhà phát triển phải đảm bảo rằng họ hiểu sự khác biệt giữa C và C++. Ngoài ra, họ phải nghiên cứu các thư viện mà họ sẽ sử dụng trong một dự án cụ thể. Java có hỗ trợ tích hợp cho nhận xét tài liệu. C++ không hỗ trợ nhận xét tài liệu. Bạn cũng có thể sử dụng trình biên dịch Java trực tuyến tiện lợi.

Cơ chế đầu vào

Java chủ yếu được thông dịch nên nó độc lập với nền tảng. C++ tạo mã đối tượng; cùng một mã không thể chạy trên các nền tảng khác nhau.

Hỗ trợ chủ đề

Java có hỗ trợ tích hợp cho các luồng. Java có các lớp luồng được kế thừa để tạo một luồng mới và ghi đè phương thức bắt đầu. Xin lưu ý rằng C++ không có hỗ trợ phân luồng gốc. Đối với những mục đích này, các thư viện của bên thứ ba không được chuẩn hóa sẽ được sử dụng.

Phương pháp hỗ trợ

Java có nạp chồng phương thức nhưng không có nạp chồng toán tử. Stringclass không sử dụng các toán tử + và += để nối các chuỗi và Stringbiểu thức sử dụng các kiểu chuyển đổi tự động, nhưng đây là trường hợp tích hợp đặc biệt. C++ hỗ trợ cả nạp chồng phương thức và nạp chồng toán tử.

Quản lý bộ nhớ

Java hỗ trợ điều khiển phân bổ vùng heap tự động nhưng không hỗ trợ hàm hủy. Trong C++, việc hỗ trợ hàm hủy được kích hoạt tự động khi một đối tượng bị hủy.

Đa kế thừa

Java không cung cấp tính đa kế thừa, ít nhất là không giống như C++. Đa kế thừa là một tính năng của C++ trong đó một lớp có thể kế thừa từ nhiều lớp.

Phần kết luận

Đó là toàn bộ sự khác biệt giữa Java và C++. Ngôn ngữ Java lý tưởng cho các dự án thương mại. Nó có nhu cầu lớn ở các công ty lớn, vì việc duy trì và tái cấu trúc các dự án hiện có sẽ luôn phù hợp - ít nhất là ở các ngân hàng và các tổ chức tài chính khác. Bạn có thể xử lý khá tốt việc phát triển đa nền tảng và sử dụng nó để tạo một hệ thống cho bất kỳ nền tảng nào. Tuy nhiên, C++ có những ưu điểm khác so với Java, chẳng hạn như hỗ trợ nạp chồng cả phương thức và nạp chồng toán tử, hỗ trợ cho hàm hủy, v.v.

Các hàm tạo riêng trong Java

Nguồn: Dev.to Hàm tạo trong Java là một loại phương thức đặc biệt có cùng tên với tên lớp hoặc tên tệp. Khi chúng ta gọi một đối tượng, hàm tạo bên trong luôn được gọi. Nó chủ yếu được sử dụng để khởi tạo trạng thái của một đối tượng hoặc giá trị của các biến trong một lớp. Nghỉ giải lao #118.  Sự khác biệt giữa ngôn ngữ C++ và Java là gì.  Trình xây dựng riêng trong Java - 2Bây giờ hãy xem các hàm tạo riêng là gì. Java cho phép chúng ta thay đổi các phương thức tùy theo cách sử dụng của chúng ta. Vậy chúng ta có thể đặt hàm tạo ở chế độ riêng tư như các phương thức khác không? Và nếu vậy thì công dụng của một hàm tạo riêng là gì? Trả lời: Có, chúng ta có thể khai báo hàm tạo trong Java là hàm tạo riêng bằng cách sử dụng bộ xác định truy cập riêng. Nhưng hãy nhớ rằng nếu chúng ta khai báo hàm tạo là riêng tư thì chúng ta sẽ không thể tạo đối tượng của lớp. Thay vào đó, chúng ta có thể sử dụng hàm tạo riêng này trong mẫu thiết kế Singleton. Quy tắc dành cho các nhà xây dựng tư nhân:
  • Nó không cho phép một lớp là một lớp con.
  • Không cho phép bạn tạo một đối tượng bên ngoài lớp.
  • Nếu một lớp có một hàm tạo riêng thì khi chúng ta cố gắng mở rộng lớp đó, sẽ xảy ra lỗi thời gian biên dịch.
  • Chúng ta không thể truy cập hàm tạo riêng tư từ bất kỳ lớp nào khác.
  • Nếu lớp của chúng ta có tất cả các phương thức không đổi, chúng ta có thể sử dụng hàm tạo riêng.
  • Nếu tất cả các phương thức đều tĩnh, chúng ta có thể sử dụng hàm tạo riêng.
  • Chúng ta có thể sử dụng hàm công khai để gọi hàm tạo riêng nếu đối tượng không được khởi tạo.
  • Chúng ta chỉ có thể trả về một thể hiện của đối tượng này nếu đối tượng đã được khởi tạo.
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));
   }
}
Phần kết luận:
ĐÚNG VẬY
Bây giờ hãy xem xét các trường hợp sử dụng của các hàm tạo riêng. Mục đích chính của việc sử dụng hàm tạo riêng là hạn chế việc tạo đối tượng. Các hàm tạo riêng cũng được sử dụng để triển khai mẫu thiết kế Singleton. Các tùy chọn để sử dụng hàm tạo riêng như sau:
  • Nó có thể được sử dụng với các lớp tĩnh chỉ dành cho thành viên.
  • Nó có thể được sử dụng với tiện ích tĩnh hoặc các lớp không đổi.
  • Nó cũng có thể được sử dụng để tạo các lớp đơn.
  • Nó có thể được sử dụng để đặt tên, chẳng hạn như tạo bằng các phương thức xuất xưởng.
  • Nó cũng được sử dụng để tránh phân lớp.
  • Nó bao gồm các phương pháp nhà máy.
Tôi hy vọng bạn đã tìm hiểu thêm về các hàm tạo Java thông qua bài đăng này.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION