TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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)

Bài tập này yêu cầu chúng ta 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, giải thích vì sao có kết quả đó và sử dụng Eclipse để kiểm chứng.

W.java
package baitap;

public class W {

	static int c = 0;

	public static void main(String[] args) {
		W w1 = c();
		W w2 = c(w1);
		W w3 = c(w2);
		W w4 = c(w3);
	}

	private W() {
		System.out.println("c = " + c);
	}

	static W c() {
		return c++ <= 0 ? new W() : null;
	}

	static W c(W w) {
		return w.c++ == 1 ? new W() : null;
	}

}

A

c = 1

c = 2

B

c = 1

c = 2

c = 3

C

c = 1

c = 2

c = 3

c = 4

D Lỗi biên dịch

test php

Bài giải

-------------------- ######## --------------------

Đáp án: A

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Giải thích:

Trong đoan chương trình trên, chúng ta có biến tĩnh c với giá trị khởi tạo = 0.

Trong hàm main(), chúng ta có dòng code W w1 = c(); để khởi tạo đối tượng w1, phương thức c() lúc này sẽ kiểm tra nếu c <= 0 thì sẽ tạo 1 đối tượng của W, ngược lại trả về null, ở trường hợp này sẽ trả về w1 = new W(); (c++ là toán tử postfix nên thực hiện trước rồi mới tăng nên c lúc này = 0 thỏa điều kiện, sau đó tăng c lên 1). w1 = new W(); sẽ hiển thị giá trị của c sau khi tăng lên 1: c = 1.

Bài viết này được đăng tại [free tuts .net]

Dòng code W w2 = c(w1); sẽ khởi tạo đối tượng w2, phương thức c(w1) lúc này sẽ kiểm tra nếu w1.c == 1 thì sẽ tạo 1 đối tượng của W, ngược lại trả về null, ở trường hợp này sẽ trả về w2 = new W(); (w1.c = 1 thỏa điều kiện, sau đó tăng c lên 1). w2 = new W(); sẽ hiển thị giá trị của c sau khi tăng lên 1: c = 2.

Tiếp theo, dòng code W w3 = c(w2); sẽ khởi tạo đối tượng w3, phương thức c(w2) lúc này sẽ kiểm tra nếu w2.c == 1 thì sẽ tạo 1 đối tượng của W, ngược lại trả về null, ở trường hợp này sẽ trả về w3 = null (w2.c = 2 > 1). Sau đó c tăng lên 1 và bằng 3.

Cuối cùng, dòng code W w4 = c(w3); sẽ khởi tạo đối tượng w4, phương thức c(w3) lúc này sẽ kiểm tra nếu w3.c == 1 thì sẽ tạo 1 đối tượng của W, ngược lại trả về null, ở trường hợp này sẽ trả về w4 = null (w3.c = 3 > 1). Đến đây chương trình kết thúc.

Kết quả biên dịch chương trình bằng Eclipse:

ketqua bai tap static 2 PNG

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top