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 3 tạo một đối tượng và gán nó cho một biến Show
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 0, và dòng thứ hai và thứ ba mỗi dòng tạo một đối tượng của lớp 1Mỗi tuyên bố này có ba phần (được thảo luận chi tiết bên dưới)
Khai báo một biến để tham chiếu đến một đối tượngTrướ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 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ử 3, như được mô tả trong phần tiếp theo. Bạn phải gán một đối tượng cho 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ịchMộ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, 2, cộng với một tham chiếu không trỏ đến gì cả)Khởi tạo một lớpToá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ư
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ố đó 0Kế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 Đây là mã cho lớp Hình chữ nhật, lớp này chứa bốn hàm tạo 1Mỗ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 2Điều này gọi một trong các hàm tạo của 1 khởi tạo 7 thành 2. Ngoài ra, hàm tạo đặt 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 Dòng mã sau đây gọi hàm tạo 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 9Hà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ố 0Tấ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 . |