Hàm khởi tạo(constructor) là gì? – w3seo Constructor trong Dart

Rate this post

Hàm tạo là một kiểu hàm khác được tạo với cùng tên với tên lớp của nó. Hàm tạo được sử dụng để khởi tạo một đối tượng khi nó được tạo. Khi chúng ta tạo đối tượng của lớp, thì phương thức khởi tạo sẽ tự động được gọi. Nó khá giống với hàm lớp nhưng không có kiểu trả về rõ ràng. Hàm tạo generative là dạng chung nhất của hàm tạo, được sử dụng để tạo một thể hiện mới của một lớp.

Các bài viết liên quan:

Nó là tùy chọn để khai báo trong lớp. Tất cả các lớp đều có hàm tạo riêng nhưng nếu chúng ta không khai báo hoặc quên thì trình biên dịch Dart sẽ tự động tạo hàm tạo mặc định bằng cách chuyển giá trị mặc định cho biến thành viên. Nếu chúng ta khai báo hàm tạo riêng, thì hàm tạo mặc định sẽ bị bỏ qua.

Ví dụ –

Giả sử chúng ta có một tên lớp là Student và chúng ta sẽ tạo một đối tượng của nó như sau.

  1. Student std =  new  Student ()  

Nó gọi hàm tạo mặc định của lớp Sinh viên .

Tạo Constructor

Như chúng ta đã đề cập, một hàm tạo có cùng tên với tên lớp của nó và nó không trả về bất kỳ giá trị nào. Giả sử nếu chúng ta có lớp Student thì tên phương thức khởi tạo cũng phải là Student .

Cú pháp:

class  ClassName {  
       ClassName() {  
      }  
}  

Chúng ta phải nhớ hai quy tắc sau trong khi tạo một phương thức khởi tạo.

  • Tên phương thức khởi tạo phải giống với tên lớp.
  • Hàm tạo không có kiểu trả về rõ ràng.

Hãy hiểu ví dụ sau.

Ví dụ:

void  main () {  
      // Tạo một đối tượng   
      Student std =  new  Student ( "Jones" , 26 );  
}  
Class Student  {  
     // Khai báo một hàm tạo   
     Student (String str,  int  age) {  
          print ( "Tên là: $ {str}" );  
          print ( "Tuổi là: $ {age}" );  
  
          }  
}  

Giải trình:

Trong ví dụ trên, chúng ta đã tạo một hàm khởi tạo Student () giống với tên lớp. Chúng tôi đã truyền hai tham số được truyền vào trong phương thức khởi tạo và khi chúng tôi khởi tạo một đối tượng của lớp Student và truyền giá trị, nó sẽ tự động được gọi là phương thức khởi tạo sau đó in ra kết quả.

Các loại hàm khởi tạo

Có ba loại constructor trong Dart như được đưa ra bên dưới.

  • Hàm tạo mặc định hoặc hàm tạo no-arg
  • Trình tạo tham số
  • Trình tạo được đặt tên

Hàm khởi tạo mặc định hoặc hàm tạo ko mặc định

Một hàm tạo không có tham số được gọi là hàm tạo mặc định hoặc hàm tạo không có đối số. Nó được tạo tự động (không có đối số) bởi trình biên dịch Dart nếu chúng ta không khai báo trong lớp. Trình biên dịch Dart bỏ qua hàm tạo mặc định nếu chúng ta tạo một hàm tạo có đối số hoặc không có đối số. Cú pháp được đưa ra dưới đây.

Cú pháp:

class  ClassName {  
   ClassName() {  
   // phần thân của hàm tạo  
   }  
}  

Hãy hiểu ví dụ sau.

Ví dụ –

void  main () {  
      // Tự động gọi hàm tạo khi chúng ta tạo một đối tượng   
      Student std =  new  Student ();  
}  
  
Class Student  {  
     // Khai báo một hàm tạo   
     Student(){  
          print ( "Ví dụ về hàm tạo mặc định" );  
             }  
}  

Khởi tạo tham số

Chúng ta cũng có thể truyền các tham số cho một phương thức khởi tạo mà loại phương thức khởi tạo đó được gọi là phương thức khởi tạo tham số hóa. Nó được sử dụng để khởi tạo các biến cá thể. Đôi khi, chúng ta cần một hàm tạo chấp nhận một hoặc nhiều tham số. Các hàm tạo được tham số hóa chủ yếu được sử dụng để khởi tạo biến cá thể với các giá trị riêng. Cú pháp được đưa ra dưới đây.

Cú pháp:

class  ClassName {  
   ClassName (parameter 1,parameter 2,...)  
  // phần thân của hàm tạo  
}  

Hãy hiểu ví dụ sau.

Ví dụ:

void  main () {  
      // Tạo một đối tượng   
      Student std =  new  Student ( "Jones" , 26 );  
}  
Class Student  {  
     // Khai báo một phương thức khởi tạo được tham số hóa   
     Student (String str,  int  age) {  
          print ( "Tên là: $ {str}" );  
          print ( "Tuổi là: $ {age}" );  
  
             }  
}  

Giải trình –

Trong ví dụ trên, chúng ta đã khai báo một phương thức khởi tạo được tham số hóa có hai tên tham số và tuổi. Chúng tôi đã tạo một đối tượng của lớp Student và truyền giá trị thích hợp cho hàm tạo. Nó in tên và tuổi ra màn hình.

Khởi tạo được đặt tên

Các hàm tạo được đặt tên được sử dụng để khai báo nhiều hàm tạo trong một lớp. Cú pháp được đưa ra dưới đây.

Cú pháp:

  1. className.constructor_name (param_list)  

Hãy hiểu ví dụ sau.

Ví dụ

void  main () {  
      // Tạo một đối tượng   
      Student std1 =  new  Student ();  // đối tượng cho hàm tạo Mặc định  
      Student std2 =  new  Student.nameConst ( "Khoa học Máy tính" );  // đối tượng cho hàm tạo được tham số hóa  
}  
  
Class Student  {  
     // Khai báo một hàm tạo   
     Student(){  
          print ( "Ví dụ về hàm tạo có tên" );  
             }  
      // Hàm tạo thứ hai  
     Student.nameConst (String branch) {  
          print ( "Chi nhánh là: $ {branch}" );  
  
           }  
}