Phương thức nào của một lớp được gọi để khởi tạo?

Như bạn đã biết, một lớp cung cấp bản thiết kế cho các đối tượng; . Mỗi câu lệnh sau lấy từ chương trình

Point originOne = new Point(23, 94);
3 tạo một đối tượng và gán nó cho một biến

Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);

Dòng đầu tiên tạo một đối tượng của lớp

Point originOne = new Point(23, 94);
0, và dòng thứ hai và thứ ba mỗi dòng tạo một đối tượng của lớp
Point originOne = new Point(23, 94);
1

Mỗi tuyên bố này có ba phần (được thảo luận chi tiết bên dưới)

  1. Tuyên ngôn. Bộ mã in đậm là tất cả các khai báo biến liên kết tên biến với một loại đối tượng
  2. khởi tạo. Từ khóa mới là toán tử Java tạo đối tượng
  3. Khởi tạo. Toán tử mới được theo sau bởi một lệnh gọi hàm tạo, khởi tạo đối tượng mới

Khai báo một biến để tham chiếu đến một đối tượng

Trước đây, bạn đã biết rằng để khai báo một biến, bạn viết

Điều này thông báo cho trình biên dịch rằng bạn sẽ sử dụng tên để chỉ dữ liệu có kiểu là kiểu. Với một biến nguyên thủy, khai báo này cũng dành một lượng bộ nhớ thích hợp cho biến

Bạn cũng có thể khai báo một biến tham chiếu trên dòng riêng của nó. Ví dụ

Nếu bạn khai báo

Point originOne = new Point(23, 94);
2 như thế này, giá trị của nó sẽ không được xác định cho đến khi một đối tượng thực sự được tạo và gán cho nó. Chỉ cần khai báo một biến tham chiếu không tạo ra một đối tượng. Để làm được điều đó, bạn cần sử dụng toán tử
Point originOne = new Point(23, 94);
3, như được mô tả trong phần tiếp theo. Bạn phải gán một đối tượng cho
Point originOne = new Point(23, 94);
2 trước khi sử dụng nó trong mã của mình. Nếu không, bạn sẽ gặp lỗi trình biên dịch

Một biến ở trạng thái này, hiện không tham chiếu đến đối tượng nào, có thể được minh họa như sau (tên biến,

Point originOne = new Point(23, 94);
2, cộng với một tham chiếu không trỏ đến gì cả)

Phương thức nào của một lớp được gọi để khởi tạo?

Khởi tạo một lớp

Toán tử new khởi tạo một lớp bằng cách cấp phát bộ nhớ cho một đối tượng mới và trả về một tham chiếu đến bộ nhớ đó. Toán tử mới cũng gọi hàm tạo đối tượng


Ghi chú. Cụm từ "khởi tạo một lớp" có nghĩa giống như "tạo một đối tượng. " Khi bạn tạo một đối tượng, bạn đang tạo một "thực thể" của một lớp, do đó "khởi tạo" một lớp

Toán tử mới yêu cầu một đối số hậu tố duy nhất. một cuộc gọi đến một nhà xây dựng. Tên của hàm tạo cung cấp tên của lớp để khởi tạo

Toán tử new trả về một tham chiếu đến đối tượng mà nó đã tạo. Tham chiếu này thường được gán cho một biến có kiểu thích hợp, như

Point originOne = new Point(23, 94);

Tham chiếu được trả về bởi toán tử mới không cần phải gán cho một biến. Nó cũng có thể được sử dụng trực tiếp trong một biểu thức. Ví dụ

________số 8

Tuyên bố này sẽ được thảo luận trong phần tiếp theo

Khởi tạo một đối tượng

Đây là mã cho lớp Point

public class Point {
    public int x = 0;
    public int y = 0;
    //constructor
    public Point(int a, int b) {
        x = a;
        y = b;
    }
}

Lớp này chứa một hàm tạo duy nhất. Bạn có thể nhận ra một hàm tạo vì phần khai báo của nó sử dụng cùng tên với tên lớp và nó không có kiểu trả về. Hàm tạo trong lớp Point nhận hai đối số nguyên, như được khai báo bởi đoạn mã (int a, int b). Câu lệnh sau đây cung cấp 23 và 94 làm giá trị cho các đối số đó

Point originOne = new Point(23, 94);
0

Kết quả của việc thực hiện câu lệnh này có thể được minh họa trong hình tiếp theo

Phương thức nào của một lớp được gọi để khởi tạo?

Đây là mã cho lớp Hình chữ nhật, lớp này chứa bốn hàm tạo

Point originOne = new Point(23, 94);
1

Mỗi hàm tạo cho phép bạn cung cấp các giá trị ban đầu cho gốc, chiều rộng và chiều cao của hình chữ nhật, sử dụng cả kiểu nguyên thủy và kiểu tham chiếu. Nếu một lớp có nhiều hàm tạo, chúng phải có các chữ ký khác nhau. Trình biên dịch Java phân biệt các hàm tạo dựa trên số lượng và loại đối số. Khi trình biên dịch Java gặp đoạn mã sau, nó sẽ biết gọi hàm tạo trong lớp Hình chữ nhật yêu cầu đối số Điểm theo sau là hai đối số số nguyên

Point originOne = new Point(23, 94);
2

Điều này gọi một trong các hàm tạo của

Point originOne = new Point(23, 94);
1 khởi tạo
Point originOne = new Point(23, 94);
7 thành
Point originOne = new Point(23, 94);
2. Ngoài ra, hàm tạo đặt
Point originOne = new Point(23, 94);
9 thành 100 và
int height = new Rectangle().height;
0 thành 200. Bây giờ có hai tham chiếu đến cùng một đối tượng Điểm—một đối tượng có thể có nhiều tham chiếu đến nó, như thể hiện trong hình tiếp theo

Phương thức nào của một lớp được gọi để khởi tạo?

Dòng mã sau đây gọi hàm tạo

Point originOne = new Point(23, 94);
1 yêu cầu hai đối số nguyên, cung cấp các giá trị ban đầu cho chiều rộng và chiều cao. Nếu bạn kiểm tra mã bên trong hàm tạo, bạn sẽ thấy rằng nó tạo một đối tượng Điểm mới có giá trị x và y được khởi tạo bằng 0

Point originOne = new Point(23, 94);
9

Hàm tạo Hình chữ nhật được sử dụng trong câu lệnh sau không nhận bất kỳ đối số nào, vì vậy nó được gọi là hàm tạo không đối số

Point originOne = new Point(23, 94);
0

Tất cả các lớp có ít nhất một hàm tạo. Nếu một lớp không khai báo rõ ràng bất kỳ, trình biên dịch Java sẽ tự động cung cấp một hàm tạo không có đối số, được gọi là hàm tạo mặc định. Hàm tạo mặc định này gọi hàm tạo không đối số của lớp cha hoặc hàm tạo

int height = new Rectangle().height;
2 nếu lớp không có cha nào khác. Nếu cha mẹ không có hàm tạo (
int height = new Rectangle().height;
2 không có), trình biên dịch sẽ từ chối chương trình

Phương thức nào của một lớp được gọi để khởi tạo một đối tượng của lớp đó?

Phương thức khởi tạo là một phương thức đặc biệt của một lớp để tạo và khởi tạo một thể hiện đối tượng của lớp đó.

Phương thức nào được sử dụng để khởi tạo một đối tượng?

Constructor là một phương thức đặc biệt có cùng tên với lớp và được dùng để khởi tạo các thuộc tính của một đối tượng mới.

Phương thức nào được sử dụng để khởi tạo các biến lớp?

Bạn có thể khởi tạo các biến đối tượng của một lớp bằng cách sử dụng các phương thức cuối cùng, hàm tạo hoặc khối khởi tạo đối tượng .

Phương thức nào được gọi tự động khi một đối tượng được khởi tạo?

Một phương thức đặc biệt trong Python (được gọi là __init__ ) được gọi tự động để đặt thuộc tính của đối tượng mới tạo thành giá trị ban đầu (mặc định gốc .