Các hàm tạo trong Java tương tự như các phương thức được gọi khi một đối tượng của lớp được tạo. Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các hàm tạo Java và các kiểu của chúng với sự trợ giúp của các ví dụ.

Bạn đang xem : Hàm tạo trong java

Hàm tạo 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. Ví dụ:

Kiểm tra lớp học {
  Bài kiểm tra() {
    // phần thân của hàm tạo
  }
} 

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

Đọc được đề xuất: Tại sao các hàm tạo không trả về giá trị

Ví dụ 1: Java Constructor

 class Main {
  tên chuỗi riêng;

  // người xây dựng
  Chính() {
    System.out.println ("Khối mã lệnh được gọi:");
    tên = "Programiz";
  }

  public static void main (String [] args) {

    // hàm tạo được gọi trong khi
    // tạo một đối tượng của lớp Main
    Main obj = new Main ();
    System.out.println ("Tên là" + obj.name);
  }
}  

Đầu ra :

Constructor được gọi là:
Tên là Programiz 

Trong ví dụ trên, chúng tôi đã 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 tôi đang khởi tạo giá trị của biến tên.

Lưu ý câu lệnh tạo một đối tượng của lớp Chính.

 Main obj = new Main ();  

Tại đây, khi đối tượng được tạo, hàm tạo Main () sẽ được gọi. Và, giá trị của biến tên được khởi tạo.

Do đó, chương trình in giá trị của các biến tên là Programiz .

Các loại mã lệnh

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

  1. Khối mã lệnh No-Arg
  2. Hàm tạo được tham số hóa
  3. Khối mã lệnh mặc định

1. Trình tạo Java No-Arg

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ố. Ví dụ:

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

Ví dụ 2: Hàm khởi tạo no-arg riêng trong Java

 class Main {

  int i;

  // hàm tạo không có tham số
  riêng chính () {
    i = 5;
    System.out.println ("Khối mã lệnh được gọi");
  }

  public static void main (String [] args) {

    // gọi hàm tạo mà không có bất kỳ tham số nào
    Main obj = new Main ();
    System.out.println ("Giá trị của i:" + obj.i);
  }
}  

Đầu ra :

Hàm tạo được gọi là
Giá trị của i: 5 

Trong ví dụ trên, chúng ta đã tạo một hàm 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 tôi đã khai báo hàm tạo là riêng tư.

Khi một hàm tạo được khai báo 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.

Xem Thêm  Hình ảnh HTML - tạo html cho hình ảnh

Ở đây, chúng tôi đ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. Để tìm hiểu thêm, hãy truy cập Java Triển khai mã lệnh riêng .

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 là public .

Ví dụ 3: Các hàm tạo no-arg công khai trong Java

 class Company {
  Tên chuỗi;

  // hàm tạo công khai
  công ty () {
    tên = "Programiz";
  }
}

lớp chính {
  public static void main (String [] args) {

    // đối tượng được tạo trong một lớp khác
    Công ty obj = Công ty mới ();
    System.out.println ("Tên công ty =" + obj.name);
  }
}  

Đầu ra :

Tên công ty = Programiz 

Đề xuất Đọc: Công cụ sửa đổi quyền truy cập Java

2. Java Parameterized Constructor

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ụ 4: Hàm tạo được tham số hóa

 class Main {

  Ngôn ngữ chuỗi;

  // hàm tạo chấp nhận giá trị đơn
  Main (Chuỗi lang) {
    ngôn ngữ = lang;
    System.out.println (ngôn ngữ + "Ngôn ngữ lập trình");
  }

  public static void main (String [] args) {

    // gọi hàm tạo bằng cách truyền một giá trị duy nhất
    Main obj1 = new Main ("Java");
    Main obj2 = new Main ("Python");
    Main obj3 = new Main ("C");
  }
}  

Đầu ra :

Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Python
Ngôn ngữ lập trình C 

Trong ví dụ trên, chúng tôi đã tạo một phương thức khởi tạo có tên là Main () . Ở đây, hàm tạo nhận một tham số duy nhất. Chú ý biểu thức,

 Main obj1 = new Main ("Java");  

Ở đây, chúng tôi đang chuyển một giá trị duy nhất cho hàm tạo. Dựa trên đối số được truyền vào, biến ngôn ngữ được khởi tạo bên trong hàm tạo.

3. Khối mã lệnh mặc định của Java

Nếu chúng tôi 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.

Ví dụ 5: Khối mã lệnh mặc định

 class Main {

  int a;
  boolean b;

  public static void main (String [] args) {

    // Một hàm tạo mặc định được gọi
    Main obj = new Main ();

    System.out.println ("Giá trị mặc định:");
    System.out.println ("a =" + obj.a);
    System.out.println ("b =" + obj.b);
  }
}  

Đầu ra :

a = 0
b = false 

Ở đâ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 bằng các giá trị mặc định.

Loại hình
Giá trị mặc định
boolean
sai
byte

ngắn

int

dài
0L
char
\ u0000
float
0,0f
double
0,0 ngày
đối tượng
Tham chiếu null

Trong chương trình trên, các biến a và b được khởi tạo với giá trị mặc định 0 false tương ứng.

Chương trình trên tương đương với:

 class Main {

  int a;
  boolean b;

   Chính() {
    a = 0;
    b = sai;
  }

  public static void main (String [] args) {
    // gọi hàm tạo
    Main obj = new Main ();

    System.out.println ("Giá trị mặc định:");
    System.out.println ("a =" + obj.a);
    System.out.println ("b =" + obj.b);
  }
}  

Đầu ra của chương trình giống như Ví dụ 5.

Xem Thêm  Mã HTML cho các ký hiệu chung - mã html cho & biểu tượng

Các 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 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 cá thể 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 hàm tạo:
    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 tham số – một hàm tạo chấp nhận các đối số < br /> 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 được là abstract hoặc static hoặc final .
  • Một hàm tạo có thể được ghi đè nhưng không thể được ghi đè.

Nạp chồng cấu trúc trong Java

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

Ví dụ 6: Nạp chồng khối mã lệnh Java

 class Main {

  Ngôn ngữ chuỗi;

  // hàm tạo không có tham số
  Chính() {
    this.language = "Java";
  }

  // hàm tạo với một tham số duy nhất
  Chính (Ngôn ngữ chuỗi) {
    this.language = ngôn ngữ;
  }

  public void getName () {
    System.out.println ("Lập trình Langauage:" + this.language);
  }

  public static void main (String [] args) {

    // gọi hàm tạo không có tham số
    Main obj1 = new Main ();

    // gọi hàm tạo với một tham số duy nhất
    Main obj2 = new Main ("Python");

    obj1.getName ();
    obj2.getName ();
  }
}  

Đầu ra :

Ngôn ngữ lập trình: Java
Ngôn ngữ lập trình: Python 

Trong ví dụ trên, chúng ta có hai hàm tạo: Main () Main (Ngôn ngữ chuỗi). Ở đây, cả hàm 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 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 .

Lưu ý : Chúng tôi đã sử dụng từ khóa this để chỉ định biến của lớp. Để biết thêm về từ khóa this , hãy truy cập Java từ khóa này .


Xem thêm những thông tin liên quan đến chủ đề hàm tạo trong java là gì

How to write a copy constructor in Java – 037

  • Tác giả: Deege U
  • Ngày đăng: 2015-10-22
  • Đánh giá: 4 ⭐ ( 5764 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: What if we want to create an instance that’s just like the one over there? We just want a copy. This video looks at the copy constructor in Java, and how to create new identical instances.

    A copy constructor is this. It’s a method that takes an instance of a class, and returns a new instance copied exactly like the first class. You can use a static factory method, but best practice is use a constructor that takes a single instance of the class as a parameter. We’ll create our copy constructor to use a constructor.

    What goes in our copy constructor? Well the next thought is to create a new enemy object, and copy the attributes over. That looks like this. Unfortunately this doesn’t work either. We wanted two enemies, but we really got two enemies sharing a weapon and toolbelt. If we change a value on one weapon, say to overheating, both enemies will experience the change. That’s because we did something called a shallow copy.

    java programming tutorial


    Like the video? Don’t forget to subscribe! ➜ http://www.deegeu.com/subscribe


    Keep up to date with the newsletter! ➜ http://www.deegeu.com/newsletter/

    Transcript and code: : http://www.deegeu.com/java-copy-constructor/

    Concepts: Java, classes, java copy constructor, constructors

    Social Links: Don’t hesitate to contact me if you have any further questions.
    WEBSITE : dj@deegeu.com
    TWITTER : http://www.twitter.com/deege
    FACEBOOK: https://www.facebook.com/deegeu.programming.tutorials
    GOOGLE+ : http://google.com/+Deegeu-programming-tutorials

    About Me: http://www.deegeu.com/about-programming-tutorial-videos/

    Related Videos:

    What are static factory methods in Java? – 036
    https://youtu.be/sOpbAOX5nJs

    Free Java Course Online
    https://www.youtube.com/watch?v=yxwdKX7ErJ4&list=PLZlGOBonMjFVq9FF0eiS_emcFmP-0fSBe

    Media credits: All images are owned by DJ Spiess unless listed below:

    Clipart
    https://openclipart.org/

    Music
    Just Nasty by Kevin MacLeod is licensed under a Creative Commons Attribution license (https://creativecommons.org/licenses/by/4.0/)
    Source: http://incompetech.com/music/royalty-free/?keywords=Just+Nasty
    Artist: http://incompetech.com/

Hàm khởi tạo(constructor) là gì?

  • Tác giả: websitehcm.com
  • Đánh giá: 3 ⭐ ( 6605 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm khởi tạo(constructor) là gì? w3seo 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ó

[Tự học Java] Hàm tạo (constructor) trong Java

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 6782 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết này, bạn sẽ tìm hiểu về hàm tạo trong Java, cách khởi tạo cũng như cách sử dụng hàm tạo bằng vài ví dụ minh họa.

Tại sao hàm tạo không thể là cuối cùng trong Java

  • Tác giả: vn.wsxdn.com
  • Đánh giá: 4 ⭐ ( 7269 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Java cơ bản] Phương thức khởi tạo (Constructor)

  • Tác giả: www.codelean.vn
  • Đánh giá: 4 ⭐ ( 7233 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: CodeLean.vn là nơi chia sẻ kiến thức của những người học, làm và dạy trong lĩnh vực công nghệ thông tin.

Khi nào viết hàm main(), khi nào chỉ cần init() … – Cộng đồng Java Việt Nam

  • Tác giả: congdongjava.com
  • Đánh giá: 4 ⭐ ( 7790 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chào các bạn!
    Mình đang viết giao diện 1 ứng dụng giao diện:
    Ban đầu tạo Visual class bằng JDialog, ko sài main()
    Nhưng khi thực thi, không thực thi được…

Hàm khởi tạo và hàm hủy trong lập trình hướng đối tượng

  • Tác giả: freetuts.net
  • Đánh giá: 4 ⭐ ( 7596 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu khái niệm hàm khởi tạo và hàm hủy trong lập trình hướng đối tượng, một số ví dụ rất hay về hàm khởi tại, bản chất của hảm hủy

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách Kiểm tra xem một Hộp kiểm có được Kiểm tra trong JavaScript hay không - javascript nếu đầu vào được kiểm tra

By ads_php