close up photo of programming of codes

codecungnhau.com

Một trang web về kỹ thuật lập trình

50 câu hỏi, trả lời phỏng vấn OOP – Phần 1

Câu 1. OOPS là gì?

OOPS (Object Oriented Programming System) được viết tắt là Hệ thống lập trình hướng đối tượng, trong đó các chương trình được coi như một tập hợp các đối tượng. Mỗi đối tượng không là gì ngoài một thể hiện của một lớp.

Câu 2. Viết các khái niệm cơ bản về OOPS?

  1. Trừu tượng (Abstraction)
  2. Bao đóng (Encapsulation)
  3. Thừa kế (Inheritance)
  4. Đa hình (Polymorphism)

Câu 3. Lớp là gì?

Một lớp (class) chỉ đơn giản là một đại diện của một loại đối tượng. Nó là bản thiết kế / kế hoạch / mẫu mô tả chi tiết của một đối tượng.

Câu 4. Đối tượng là gì?

Một đối tượng (object) là một thể hiện của một lớp. Nó có trạng thái, hành vi và bản sắc riêng.

Câu 5. Bao đóng là gì?

Tính bao đóng là một thuộc tính của một đối tượng và nó chứa tất cả dữ liệu bị ẩn. Dữ liệu ẩn đó có thể bị hạn chế đối với các thành viên của lớp đó.

Các cấp độ là Public, Protected, Private, Internal, and Protected Internal.

Câu 6. Đa hình là gì?

Đa hình không là gì khác ngoài việc gán hành vi hoặc giá trị trong một lớp con cho một cái gì đó đã được khai báo trong lớp chính. Đơn giản, đa hình có nhiều hơn một hình dạng.

Câu 7. Thừa kế là gì?

Kế thừa là một khái niệm trong đó một lớp chia sẻ cấu trúc và hành vi được định nghĩa trong lớp khác. Nếu Kế thừa áp dụng cho một lớp được gọi là Kế thừa đơn và nếu nó phụ thuộc vào nhiều lớp, thì nó được gọi là Kế thừa đa.

Câu 8. Manipulator là gì?

Manipulator là các hàm có thể được sử dụng kết hợp với các toán tử chèn (<<) và trích xuất (>>) trên một đối tượng. Ví dụ là endl và setw.

Câu 9. Giải thích thuật ngữ hàm tạo constructor

Một phương thức khởi tạo là một phương thức được sử dụng để khởi tạo trạng thái của một đối tượng và nó được gọi tại thời điểm tạo đối tượng. Các quy tắc cho hàm tạo là:

  • Tên hàm phải giống với tên lớp.
  • Một hàm tạo không được có kiểu trả về.

Câu 10. Định nghĩa hàm huỷ Destructor?

Hàm hủy là một phương thức được gọi tự động khi đối tượng được tạo thành ra khỏi phạm vi hoặc bị hủy. Tên hàm hủy cũng giống như tên lớp nhưng có ký hiệu dấu ngã (~) trước tên.

Câu 11. Hàm nội tuyến Inline là gì?

Hàm nội tuyến là một kỹ thuật được trình biên dịch sử dụng và hướng dẫn chèn phần nội dung hoàn chỉnh của hàm vào bất cứ nơi nào hàm đó được sử dụng trong mã nguồn chương trình.

Câu 12. Hàm ảo virtual là gì?

Một hàm ảo là một hàm thành viên của một lớp và chức năng của nó có thể bị ghi đè trong lớp dẫn xuất của nó. Hàm này có thể được thực hiện bằng cách sử dụng một từ khóa gọi là virtual, và nó có thể được cung cấp trong quá trình khai báo hàm.

Một hàm ảo có thể được khai báo bằng từ khoá virtual (ảo) trong C++. Nó có thể đạt được trong ngôn ngữ C / Python bằng cách sử dụng con trỏ hàm.

Câu 13. Hàm bạn friend là gì?

Hàm bạn là một người bạn của một lớp được phép truy cập vào dữ liệu Công khai, Riêng tư hoặc Được bảo vệ trong cùng lớp đó. Nếu hàm được định nghĩa bên ngoài lớp thì không thể truy cập thông tin đó.

Một hàm bạn có thể được khai báo ở bất kỳ đâu trong khai báo lớp và nó không thể bị ảnh hưởng bởi các từ khóa kiểm soát truy cập như private, public, hoặc protected.

Câu 14. Nạp chồng hàm là gì?

Nạp chồng hàm là một hàm thông thường, nhưng nó có thể thực hiện các tác vụ khác nhau. Nó cho phép tạo ra một số phương thức có cùng tên nhưng khác nhau kiểu đầu vào và đầu ra của hàm.

void add(int& a, int& b);
 
void add(double& a, double& b);
 
void add(struct bob& a, struct bob& b);

Câu 15. Nạp chồng toán tử là gì?

Nạp chồng toán tử là một hàm trong đó các toán tử khác nhau được áp dụng và phụ thuộc vào các đối số. Toán tử, -, * có thể được sử dụng để truyền cho hàm và nó có quyền ưu tiên riêng để thực thi.

Câu 16. Lớp trừu tượng là gì?

Một lớp trừu tượng là một lớp không thể được khởi tạo. Không thể tạo một đối tượng với một lớp trừu tượng, nhưng nó có thể được kế thừa. Một lớp trừu tượng chỉ có thể chứa một phương thức trừu tượng. Java chỉ cho phép phương thức trừu tượng trong lớp trừu tượng trong khi các ngôn ngữ khác cũng cho phép phương thức không trừu tượng.

Câu 17. Toán tử ba ngôi (ternary)?

Toán tử ba ngôi là một toán tử có ba đối số. Các đối số và kết quả thuộc các kiểu dữ liệu khác nhau và nó phụ thuộc vào hàm. Toán tử ba ngôi còn được gọi là toán tử điều kiện.

Câu 18. Phương thức finalize là gì?

Phương thức Finalize giúp thực hiện các hoạt động dọn dẹp trên các tài nguyên hiện không được sử dụng. Phương thức Finalize được bảo vệ và nó chỉ có thể truy cập được thông qua lớp cha hoặc bởi một lớp dẫn xuất.

Câu 19. Có các kiểu truyền đối số khác nhau nào?

Tham số là một biến được sử dụng trong quá trình khai báo hàm hoặc chương trình con và các đối số được chuyển đến thân hàm và nó phải khớp với tham số đã định nghĩa. Có hai loại truyền đối số cơ bản:

  • Gọi theo giá trị – Giá trị được truyền vào sẽ chỉ được sửa đổi bên trong hàm và nó trả về giống với giá trị bất kỳ giá trị nào được truyền vào hàm.
  • Gọi theo tham chiếu – Giá trị được truyền vào sẽ được sửa đổi ở cả bên trong và bên ngoài hàm và nó có thể trả về giá trị giống hoặc khác.

Câu 20. Từ khoá super là gì?

Từ khóa super được sử dụng để gọi phương thức ghi đè, phương thức này sẽ ghi đè một trong các phương thức siêu lớp của nó. Từ khóa này cho phép truy cập các phương thức bị ghi đè và cũng có thể truy cập các thành viên ẩn của lớp cha.

Nó cũng chuyển tiếp một cuộc gọi từ một phương thức khởi tạo đến một phương thức khởi tạo trong lớp cha.

Câu 21. Ghi đè phương thức là gì?

Ghi đè phương thức là một tính năng cho phép một lớp con cung cấp việc triển khai một phương thức ghi đè trong lớp chính. Nó sẽ ghi đè việc triển khai trong lớp cha bằng cách cung cấp cùng một tên phương thức, cùng một tham số và cùng một kiểu trả về.

Câu 22. Giao diện interface là gì?

Giao diện là một tập hợp của một phương thức trừu tượng. Nếu lớp thực thi một giao diện, thì nó sẽ kế thừa tất cả các phương thức trừu tượng của một giao diện.

Java sử dụng Giao diện để thực hiện đa kế thừa.

Câu 23. Xử lý ngoại lệ là gì?

Một ngoại lệ là một sự kiện xảy ra trong quá trình thực hiện một chương trình. Các ngoại lệ có thể thuộc bất kỳ loại nào – ngoại lệ lúc thực thi, ngoại lệ lỗi. Những ngoại lệ đó được xử lý đầy đủ thông qua cơ chế xử lý ngoại lệ như từ khóa try, catch và throw.

Câu 24. Token là gì?

Một trình biên dịch nhận dạng một token và nó không thể được chia nhỏ thành các phần tử thành phần. Từ khóa, định danh, hằng số, ký tự chuỗi và toán tử là các ví dụ về token.

Ngay cả các ký tự dấu câu cũng được coi là các token. Ví dụ: Dấu ngoặc đơn, Dấu phẩy, Dấu ngoặc vuông và Dấu ngoặc đơn.

Câu 25. Sự khác biệt chính giữa nạp chồng và ghi đè là gì?

Nạp chồng là liên kết tĩnh, trong khi Ghi đè là liên kết động. Nạp chồng không là gì khác ngoài cùng một phương thức với các đối số khác nhau và nó có thể trả về giá trị bằng nhau trong cùng một lớp.

Ghi đè là các tên phương thức giống nhau với các đối số giống nhau và các kiểu trả về được liên kết với lớp và lớp con của nó.

Xem tiếp phần 2 tại đây.


Đã đăng vào

trong

bởi

Bình luận

Để lại một bình luận

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 *