Java - Hãy đưa ra kết quả sau khi biên dịch đoạn chương trình cho sẵn dưới đây.
Hãy đưa ra kết quả và giải thích sau khi biên dịch của đoạn chương trình sau và sử dụng Eclipse để kiểm chứng:
package baitap; public class Employee { static int count=0;//will get memory only once and retain its value public Employee() { count++; System.out.println(count); } }
package baitap; public class TestEmployee { public static void main(String[] args) { Employee e1 = new Employee(); Employee e2 = new Employee(); Employee e3 = new Employee(); } }
Bài giải
-------------------- ######## --------------------
Kết quả của đoạn chương trình trên:
1
2
3
Giải thích: Trong lớp Employee
tôi khai báo 1 biến tĩnh count
và khởi tạo giá trị = 0. Trong hàm tạo Employee()
tôi có dòng count++
, ý nghĩa của hàm tạo này là mỗi lần có một đối tượng Employee
được tạo ra thì giá trị của biến count
này sẽ tăng lên 1, và vì biến count
là biến tĩnh nên tất cả các đối tượng sẽ dùng chung một biến này, nếu có một đối tượng nào làm thay đổi giá trị của biến thì tất cả các đối tượng khác cũng sử dụng đối tượng này sẽ nhận thấy được sự thay đổi đó. Trong lớp TestEmployee
, tôi tạo ra đối tượng e1
thì lúc này giá trị của biến count
sẽ tăng lên 1 và bằng 1, sau đó đối tượng e2
được tạo ra thì giá trị của biến count
sẽ tăng lên 1 và bằng 2, tương tự đối tượng e3
được tạo ra thì giá trị biến count
sẽ tăng lên 1 và bằng 3.
Kết quả biên dịch chương trình sử dụng Eclipse:
Câu hỏi thường gặp liên quan:
- Java - Viết chương trình tính lũy thừa của 2 số nguyên.
- Java - Hãy đưa ra kết quả sau khi biên dịch đoạn chương trình cho sẵn dưới đây.
- Java - Hãy chọn đáp án thể hiện kết quả đúng của đoạn chương trình cho sẵn dưới đây (câu hỏi 2)
- Java - Hãy chọn đáp án đúng trong các đáp án cho sẵn của đoạn chương trình dưới đây (câu hỏi 1)
- Java - Hãy chọn đáp án đúng của đoạn chương trình cho sẵn dưới đây và giải thích.