Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa phương thức khởi tạo mặc định và phương thức khởi tạo tham số hóa trong Java là gì?

Khối mã lệnh mặc định

  • Một phương thức tạo mặc định là 0 phương thức khởi tạo đối số chứa một lệnh gọi không đối số tới hàm tạo siêu lớp.
  • Việc gán các giá trị mặc định cho các đối tượng mới được tạo là trách nhiệm chính của hàm tạo mặc định.
  • Trình biên dịch chỉ viết một hàm tạo mặc định trong mã nếu chương trình không viết bất kỳ hàm tạo nào trong lớp.
  • Công cụ sửa đổi truy cập của hàm tạo mặc định luôn giống với công cụ sửa đổi lớp nhưng quy tắc này chỉ áp dụng cho “công khai” “mặc định” bổ ngữ.

Khi nào trình biên dịch sẽ thêm một hàm tạo mặc định

  • Trình biên dịch chỉ thêm một hàm tạo mặc định vào mã khi lập trình viên không ghi hàm tạo nào trong mã.
  • Nếu người lập trình viết bất kỳ hàm tạo nào trong mã, thì trình biên dịch sẽ không thêm bất kỳ hàm tạo nào.
  • Mọi phương thức khởi tạo mặc định là một phương thức khởi tạo đối số 0 nhưng mọi phương thức khởi tạo đối số 0 không phải là một phương thức khởi tạo mặc định.

Trình tạo tham số

  • Các hàm tạo được tham số hóa là các hàm tạo có số lượng đối số cụ thể được thông qua.
  • Mục đích của một hàm tạo được tham số hóa là chỉ định các giá trị cụ thể do người dùng muốn cho các biến phiên bản của các đối tượng khác nhau.
  • Một phương thức tạo được tham số hóa được viết rõ ràng bởi một lập trình viên.
  • Công cụ sửa đổi truy cập của hàm tạo mặc định luôn giống với công cụ sửa đổi lớp nhưng quy tắc này chỉ áp dụng cho “công khai” “mặc định” bổ ngữ.

Ví dụ

public class Student {
   int roll_no;
   String stu_name;
   Student(int i, String n) { // Parameterized constructor
      roll_no = i;
      stu_name = n;
   }
   void display() {
      System.out.println(roll_no+" "+stu_name);
   }
   public static void main(String args[]) {
      Student s1 = new Student(1,"Adithya");
      Student s2 = new Student(2,"Jai");
      s1.display();
      s2.display();
   }
}

Trong chương trình trên, người lập trình xác định một hàm tạo tham số với 2 tham số. Bây giờ trình biên dịch không thêm phương thức khởi tạo mặc định nào vào mã và cũng không phải lập trình viên đã viết bất kỳ phương thức khởi tạo đối số nào.

Đầu ra

1 Adithya
2 Jai