Tìm hiểu Constructor trong java

Tìm hiểu Constructor trong java

Tìm hiểu Constructor trong java

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các hàm tạo Java , kiểu của chúng và cách sử dụng chúng với sự trợ giúp của các ví dụ. Construc...
Comment tháng 6 12, 2021

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các hàm tạo Java, kiểu của chúng và cách sử dụng chúng với sự trợ giúp của các ví dụ.

Constructor là gì?

Một hàm tạo trong Java tương tự như một phương thức được gọi khi một đối tượng của lớp được tạo.
Không giống như các phương thức Java, một hàm tạo có cùng tên với tên của lớp và không có bất kỳ kiểu trả về nào.

class Test {
  Test() {
    // constructor body
  }
}

Ở đây, Test () là một Constructor. Nó có cùng tên với tên của lớp và không có kiểu trả về.

Ví dụ Constructor java

class Main {
  private String name;

  // constructor
  Main() {
    System.out.println("Constructor Called:");
    name = "Programiz";
  }

  public static void main(String[] args) {

    // constructor is invoked while
    // creating an object of the Main class
    Main obj = new Main();
    System.out.println("The name is " + obj.name);
  }
}

Kết quả:
Constructor Called:
The name is Programiz

Trong ví dụ trên, chúng ta đã tạo một phương thức khởi tạo có tên là Main (). Bên trong hàm tạo, chúng ta đang khởi tạo giá trị của biến tên.
Chú ý câu lệnh tạo một đối tượng của lớp Main.
Main obj = new Main();


Ở đây, khi đối tượng được tạo, phương thức khởi tạo Main () được gọi. Và, giá trị của biến tên được khởi tạo. Do đó, chương trình in ra giá trị của các biến tên biến
Các loại hàm tạo.


Trong Java, các hàm tạo có thể được chia thành 3 loại

Constructor trong java

  • Hàm tạo không có tham số
  • Trình tạo tham số
  • Hàm tạo mặc định

Java No-Arg Constructor

Tương tự như các phương thức, một hàm tạo Java có thể có hoặc không có bất kỳ tham số (đối số) nào.
Nếu một hàm tạo không chấp nhận bất kỳ tham số nào, nó được gọi là một hàm tạo không đối số.

private Constructor() {
   // body of the constructor
}

Ví dụ Hàm tạo không có tham số
class Main {

  int i;

  // constructor with no parameter
  private Main() {
    i = 5;
    System.out.println("Constructor is called");
  }

  public static void main(String[] args) {

    // calling the constructor without any parameter
    Main obj = new Main();
    System.out.println("Value of i: " + obj.i);
  }
}

Kết quả:
Constructor is called
Value of i: 5

Trong ví dụ trên, chúng ta đã tạo một phương thức khởi tạo Main (). Ở đây, hàm tạo không chấp nhận bất kỳ tham số nào. Do đó, nó được biết đến như một hàm tạo không đối số.
Lưu ý rằng chúng ta đã khai báo hàm tạo là private.
Khi một phương thức khởi tạo được khai báo là private, nó không thể được truy cập từ bên ngoài lớp. Vì vậy, việc tạo các đối tượng từ bên ngoài lớp bị cấm sử dụng phương thức khởi tạo private.
Ở đây, chúng ta đang tạo đối tượng bên trong cùng một lớp. Do đó, chương trình có thể truy cập hàm tạo. Tuy nhiên, nếu chúng ta muốn tạo các đối tượng bên ngoài lớp, thì chúng ta cần khai báo hàm tạo public.

Sau đây là ví dụ hàm khởi tạo sử dung Public.

class Company {
  String name;

  // public constructor
  public Company() {
    name = "Programiz";
  }
}

class Main {
  public static void main(String[] args) {

    // object is created in another class
    Company obj = new Company();
    System.out.println("Company name = " + obj.name);
  }
}

 2. Hàm tạo có tham số

Một hàm tạo Java cũng có thể chấp nhận một hoặc nhiều tham số. Các hàm tạo như vậy được gọi là các hàm tạo tham số hóa (hàm tạo có tham số).

Ví dụ Constructor có tham số:

class Main {

  String languages;

  // constructor accepting single value
  Main(String lang) {
    languages = lang;
    System.out.println(languages + " Programming Language");
  }

  public static void main(String[] args) {

    // call constructor by passing a single value
    Main obj1 = new Main("Java");
    Main obj2 = new Main("Python");
    Main obj3 = new Main("C");
  }
}
3. Hàm tạo mặc định

Nếu chúng ta không tạo bất kỳ phương thức khởi tạo nào, trình biên dịch Java sẽ tự động tạo một phương thức khởi tạo no-arg trong quá trình thực thi chương trình. Hàm tạo này được gọi là hàm tạo mặc định.

class Main {

  String languages;

  // constructor accepting single value
  Main(String lang) {
    languages = lang;
    System.out.println(languages + " Programming Language");
  }

  public static void main(String[] args) {

    // call constructor by passing a single value
    Main obj1 = new Main("Java");
    Main obj2 = new Main("Python");
    Main obj3 = new Main("C");
  }
}
Ở đây, chúng tôi chưa tạo bất kỳ hàm tạo nào. Do đó, trình biên dịch Java tự động tạo phương thức khởi tạo mặc định.
Hàm tạo mặc định khởi tạo bất kỳ biến phiên bản chưa được khởi tạo nào với các giá trị mặc định.

Sau đây là ví dụ:

class Main {

  int a;
  boolean b;

  // a private constructor
  private Main() {
    a = 0;
    b = false;
  }

  public static void main(String[] args) {
    // call the constructor
    Main obj = new Main();

    System.out.println("Default Value:");
    System.out.println("a = " + obj.a);
    System.out.println("b = " + obj.b);
  }
}
Lưu ý quan trọng về trình tạo Java

  • Các hàm tạo được gọi ngầm khi bạn khởi tạo các đối tượng.

Hai quy tắc để tạo một hàm tạo là:

  • Tên của hàm tạo phải giống với lớp.
  • Một hàm tạo Java không được có kiểu trả về.

Nếu một lớp không có hàm tạo, trình biên dịch Java sẽ tự động tạo một hàm tạo mặc định trong thời gian chạy. Hàm tạo mặc định khởi tạo các biến thể hiện với các giá trị mặc định. Ví dụ, biến int sẽ được khởi tạo thành 0
Các loại cấu trúc:

  • No-Arg Constructor - một hàm tạo không chấp nhận bất kỳ đối số nào
  • Hàm tạo được tham số hóa - một hàm tạo chấp nhận các đối số
  • Hàm tạo mặc định - một hàm tạo được tự động tạo bởi trình biên dịch Java nếu nó không được định nghĩa rõ ràng.

Một hàm tạo không thể abstract hoặc static hoặc final.
Một hàm tạo có thể được nạp chồng nhưng không thể được ghi đè.

Nạp chồng hàm tạo trong Java

Tương tự như nạp chồng phương thức Java, chúng ta cũng có thể tạo hai hoặc nhiều hàm tạo với các tham số khác nhau. Điều này được gọi là quá tải các hàm tạo.

Ví dụ nạp chồng trong java

class Main {

  String language;

  // constructor with no parameter
  Main() {
    this.language = "Java";
  }

  // constructor with a single parameter
  Main(String language) {
    this.language = language;
  }

  public void getName() {
    System.out.println("Programming Langauage: " + this.language);
  }

  public static void main(String[] args) {

    // call constructor with no parameter
    Main obj1 = new Main();

    // call constructor with a single parameter
    Main obj2 = new Main("Python");

    obj1.getName();
    obj2.getName();
  }
}
Kết quả:

Programming Language: Java
Programming Language: Python
Trong ví dụ trên, chúng ta có hai hàm tạo: Main () và Main (Ngôn ngữ chuỗi). Ở đây, cả hàm khởi tạo đều khởi tạo giá trị của ngôn ngữ biến với các giá trị khác nhau.
Dựa trên tham số được truyền trong quá trình tạo đối tượng, các hàm tạo khác nhau được gọi và các giá trị khác nhau được gán.
Cũng có thể gọi một hàm tạo này từ một hàm tạo khác. Để tìm hiểu thêm, hãy truy cập Java Call One Constructor từ Another.

Blogger Comments


Không có nhận xét nào. Chúc mừng bạn là người đầu tiên.

  • Kí tự đặc biệt
  • Tôi Share
  • Star Mạnh Blog
  • Văn Tuấn Blog
  • Tuổi Trẻ IT
  • Văn Thắng Blog
  • Duy Blogs
  • Star Sinh Blog
  • Lê Bá Long IT
  • Đặt liên kết
  • Đặt liên kết
  • Đặt liên kết