- vừa được xem lúc

Top 20 câu hỏi phỏng vấn Java OOP phổ biến nhất

0 0 30

Người đăng: Nguyễn Tuấn Vũ

Theo Viblo Asia

Câu hỏi

  1. Thế nào là lập trình hướng đối tượng ?
  2. Các tính chất của hướng đối tượng là gì ?
  3. Thế nào là lớp?
  4. Thế nào là đối tượng?
  5. Thế nào là tính đóng gói?
  6. Có mấy loại access modifier? Phân biệt sự khác nhau giữa chúng?
  7. Thế nào là tính đa hình?
  8. Phân biệt override và overload?
  9. Có thể override 1 static method không?
  10. Thế nào là tính trừu tượng?
  11. Có thể sử dụng thuộc tính trong interface?
  12. Interface có thể là final không?
  13. Có thể cài đặt phương thức trong interface?
  14. Có thể cài đặt phương thức trong abstract class?
  15. Có thể cài đặt nhiều interface trong class không?
  16. Thế nào là tính kế thừa?
  17. Có thể sử dụng constructor của lớp cha để tạo đối tượng cho lớp con không?
  18. Thế nào là static?
  19. Thế nào là final?
  20. Có bắt buộc phải khai báo constructor trong lớp?

Câu trả lời

1. Thế nào là lập trình hướng đối tượng ?

Lập trình hướng đối tượng là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. Nó tập trung vào các đối tượng thao tác hơn là logic để thao tác chúng, giúp code dễ quản lý, tái sử dụng được và dễ bảo trì.

2. Các tính chất của hướng đối tượng là gì ?

Lập trình hướng đối tượng bao gồm 4 tính chất

  • Tính đóng gói
  • TÍnh kế thừa
  • Tính trừu tượng
  • Tính đa hình

3. Thế nào là lớp?

Một class đại diện cho 1 loại đối tượng. Nó có thể được hiểu giống như 1 bản định nghĩa của đối tượng.

4. Thế nào là đối tượng?

Đối tượng là một thể hiện của lớp. Nó bao gồm các thuộc tính và phương thức.

5. Thế nào là tính đóng gói?

Đóng gói là việc che giấu các thông tin quan trọng của 1 lớp. Nó được thể hiển thông qua các access modifier như private, public, default, protected

6. Có mấy loại access modifier? Phân biệt sự khác nhau giữa chúng?

Có 4 loại access modifier là: private, protected, default, public. Trong đó:

  • Private: Chỉ có thể truy cập trong cùng class.
  • Default: Có thể truy cập trong cùng class và cùng package.
  • Protected: Có thể truy cập trong cùng class, package và ngoài package bởi lớp con.
  • Public: Có thể truy cập ở bất cứ đâu.

7. Thế nào là tính đa hình?

Tính đa hình là khi một hành động có thể được thực hiện theo nhiều cách khác nhau. Nó được thể hiện thông qua override và overload.

8. Phân biệt override và overload?

Overide là việc lớp con ghi đè phương thức của lớp cha. Overload là việc một class sử dụng được cùng một phương thức nhưng khác nhau biến truyền vào hàm

9. Có thể override 1 static method không?

Không.

10. Thế nào là tính trừu tượng?

Tính trừu tượng là ẩn các chi tiết triển khai và chỉ hiển thị các tính năng với người dùng. Tính chất này cho phép loại bỏ các tính chất phức tạp của đổi tượng, chỉ cần đưa ra các tính chất cần thiết trong lập trình giúp tập trung vào những cốt lõi của đối tượng. Nó được thể hiện thông qua interface và abstract class.

11. Có thể sử dụng thuộc tính trong interface?

Có. Thuộc tính phải là hằng số và được khai báo với từ khóa final.

12. Interface có thể là final không?

Không. Vì cần phải có một lớp implement interface thì mới sử dụng được.

13. Có thể cài đặt phương thức trong interface?

Không thể

14. Có thể cài đặt phương thức trong abstract class?

Có. Phương thức không phải là abstract method thì có thể cài đặt.

15. Có thể cài đặt nhiều interface trong class không?

16. Thế nào là tính kế thừa?

Là khả năng tái sử dụng lại thuộc tính và phương thức của một lớp. Thể hiện thông qua từ khóa extend.

17. Có thể sử dụng constructor của lớp cha để tạo đối tượng cho lớp con không?

Không. Phải cài đặt lại constructor trên lớp con. Có thể sử dụng từ khóa super() để gọi lại đối tượng của lớp cha.

18. Thế nào là static?

Những hàm, phương thức có từ khóa static sẽ thuộc về lớp có thể được truy cập trực tiếp từ Class mà không cần phải tạo đối tượng.

19. Thế nào là final?

Những thuộc tính final sẽ không thể thay đổi giá trị của nó Những phương thức final sẽ không thể overide ở lớp con Những class final sẽ không thể kế thừa được

20. Có bắt buộc phải khai báo constructor trong lớp?

Không. Nếu không khai báo constructor, class sẽ sử dụng default constructor

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 277

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 257

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 37

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 180

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 55

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124