Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khác biệt giữa default constructor và parameterized constructor trong Java?


Default Constructor

  • Default constructor là 0 argument constructor chứa lời gọi no-argument đến super class constructor.
  • Gán giá trị mặc định cho object mới tạo là trách nhiệm chính của default constructor.
  • Compiler viết default constructor vào code chỉ khi programmer không viết constructor nào trong class.
  • Access modifier của default constructor luôn giống class modifier nhưng quy tắc này chỉ áp dụng cho "public" và "default" modifiers.

Khi nào compiler thêm default constructor

  • Compiler thêm default constructor vào code chỉ khi programmer không viết constructor nào trong code.
  • Nếu programmer viết bất kỳ constructor nào trong code, compiler không thêm constructor nào.
  • Mọi default constructor là 0 argument constructor nhưng không phải mọi 0 argument constructor đều là default constructor.

Parameterized Constructors

  • Parameterized constructors là các constructor có số lượng argument cụ thể cần truyền.
  • Mục đích của parameterized constructor là gán giá trị cụ thể mà user muốn cho instance variables của các object khác nhau.
  • Parameterized constructor được viết explicitly bởi programmer.
  • Access modifier của default constructor luôn giống class modifier nhưng quy tắc này chỉ áp dụng cho "public" và "default" modifiers.

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, programmer định nghĩa một parameterized constructor với 2 tham số. Bây giờ compiler không thêm default constructor vào code, và programmer cũng không viết 0 argument constructor nào.

Kết quả

1 Adithya 2 Jai