Chương 2: Thiết Kế Lớp Phần 2

Câu 1: Compile và chạy chương trình sau kết quả là? (chọn 1 đáp án)

A. Compile success
B. Dòng số 2 compile error
C. Dòng số 4 compile error
D. Dòng số 5 compile error
E. Dòng số 8 compile error
Câu 2: Hãy chọn code điền vào chỗ trống ① để chương trình compile success (chọn 4 đáp án)

A. A
B. B
C. C
D. D
E. Object
F. Class
Câu 3:  Chọn câu đúng khi nói về code sử dụng tính đa hình
A. Khi nhiều class con kế thừa 1 class cha thì tất cả class con đều có thể khai báo method có param giống param của method của class cha
B. Khi gán object của class cha cho 1 biến có kiểu của class con thì phải ép kiểu (casting)
C. Khi gán object của class con cho 1 biến có kiểu của class cha thì phải ép kiểu (casting)
D. Khi ép kiểu lỗi thì có thể phát hiện ngay từ khi compile
E. Cho dù class con ovverride method của class cha nhưng nếu method đó ở class cha là public thì khi sử dụng sẽ mặc định là dùng method của class cha
Câu 4. Câu nào dưới đây đúng ( chọn 1 đáp án)

A. Dòng thứ 2 compile error
B. Dòng thứ 3 compile error
C. Dòng thứ 4 compile error
D. Dòng thứ 2 và 3 compile error
E. Dòng thứ 3 và 4 compile error
Câu 5: Compile và chạy chương trình sau kết quả là gì? (chọn 1 đáp án)

A. 10
B. 50
C. Dòng số 4 compile error
D. Dòng số 5 compile error
E. Dòng số 9 compile error
F. Dòng số 10 compile error
Câu 6: Câu nào sau đây là đúng (chọn 1 đáp án)

A. Dòng số 3 compile error
B. Dòng số 4 compile error
C. Compile success và Outer.class được tạo ra
D. Compile success , Outer.class  và Inner.class được tạo ra
E. Compile success , Outer.class  và Outer$Inner.class được tạo ra
Câu 7: Compile và chạy chuowgn trình sau kết quả là gì? ( chọn 1 đáp án)

A. compile error
B. runtime error
C. compile success nhưng ko có gì hiện ra
D. 1
E. 1 2
F. 2
Câu 8: Chọn đoạn code ở ① để chương trình chạy bình thường (chọn 1 đáp án)

A. Foo obj = new Foo();
B. Foo obj = Test.new Foo();
C. Test.Foo obj = new Test.Foo();
D. Test.Foo obj = new Test().Foo();
E. Test.Foo obj = new Test().new Foo();
F. Test.Foo obj = Test.new Foo()
Câu 9: Chọn code có thể viết ở ① để chương trình compile success (chọn 3 đáp án)

A. public void bar(){}
B. final void bar()
C. static void bar(){}
D. void bar()  throws Exception
E. void bar(int a){}
Câu 10:  Interface nào dưới đây được gọi là function interface (chọn 2 đáp án)

A. A
B. B
C. C
D. D
Câu 11: Câu nào sau đây đúng (chọn 1 đáp án)

A. Dòng 1 compile error
B. Dòng 2 compile error
C. Dòng 3 compile error
D. Dòng 2 và 3 compile error
E. Dòng 1, 2 và 3 compile error
F. compile success

  • Nested class mà ko khai báo static thì ko dc có thành phần là static

Ví dụ:

  • Nested class khi compile sẽ tạo ra class có tên OuterClass$InnerClass.class
  • Local class:

        Không được có thành phần static

Không được khai báo public, proteted, private

Có thể tham chiếu đến đối số của method bên ngoài hoặc biến của class bên ngoài nhưng ko thay đổi dc (tự động set final) => chỉ thay đổi dc thuộc tính của chính local class

  • Enum có abtract method => các value phải implement
  • Enum có thể khai báo phương thức constructor nhưng vì ko thể tạo enum bằng new nên constructor phải là private nếu ko sẽ complie error
  • Thứ tự ưu tiên overload:

完全一致 -> 暗黙 -> Autoboxing -> 可変長引数

(param giống hoàn toàn -> param sau khi convert ngầm  -> param có autoboxing -> biến có số lượng thay đổi được)

  • param có số lượng thay đổi chỉ dc khai báo ở  cuối trong danh sách param của method
  • Phương thức của lớp cha ko có static thì lớp con override cũng ko dc thêm static
  • 2 object equals true thì 2 hashcode phải giống nhau nhưng equals false thì hashcode có thể bằng hoặc không
  • hashcode dùng để tăng hiệu suất tìm kiếm
  • Ví dụ Gọi phương thức của inner class

  • Nếu class implement 2 interface có method trùng tên nhưng 1 interface là method đã override còn 1 interface là method được truyền lại từ cha thì ko xảy ra xung đột mà class dùng method đã override.
  • Enum giống với class có thể khai báo private protected nếu là nested. Ko khai báo final dc vì mặc định là final nhưng vẫn có thể khai báo static

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *