Lập trình hướng đối tượng cho phép bạn phát triển phần mềm và ứng dụng giao diện người dùng (GUI) có quy mô lớn một cách hiệu quả.
Sau khi học các tài liệu trong các phần trước, bạn có thể giải quyết nhiều vấn đề lập trình bằng cách sử dụng lựa chọn, vòng lặp, phương pháp và mảng. Tuy nhiên, các tính năng này của Java không đủ để phát triển các giao diện người dùng đồ họa và các hệ thống phần mềm quy mô lớn. Giả sử bạn muốn phát triển một giao diện người dùng đồ họa (GUI, phát âm là goo-ee) như thể hiện trong hình 9.1. Bạn sẽ tạo chương trình này thế nào?
Phần này giới thiệu về lập trình hướng đối tượng (object-oriented programming), bạn có thể sử dụng để phát triển ứng dụng giao diện người dùng (GUI) hoặc các hệ thống phần mềm quy mô lớn.
Các khái niệm trong lập trình hướng đối tượng
Đối tượng: Một thực thể có trạng thái và hành vi. Ví dụ như xe đạp, bàn, ghế, … Nó có thể mang tính vật lý hoặc logic.
Lớp: Một tập hợp các đối tượng. Nó là một thực thể logic.
Tính kế thừa: Khi một đối tượng đạt được các thuộc tính và các hành vi của đối tượng cha, thì đó là tính kế thừa. Điều này làm tăng tính tái sử dụng cho code. Nó được sử dụng để đạt được tính đa hình tại runtime.
Tính đa hình: Khi một tác vụ được thực hiện theo nhiều cách khác nhau được gọi là tính đa hình. Ví dụ: như vẽ hình chữ nhật hoặc hình tam giác, … Trong Java, chúng ta sử dụng nạp chồng phương thức (method overloading) và ghi đè phương thức (method overriding) để có tính đa hình. Một ví dụ khác: con mèo kêu meooo, còn chú chó thì sủa goooo.
Tính trừu tượng: Đó là ẩn các chi tiết nội tại và hiển thị tính năng. Ví dụ, với cuộc gọi điện thoại, chúng ta không biết tiến trình xử lý nội tại là như thế nào. Trong Java, chúng là sử dụng lớp abstract và abstract interface để có tính trừu tượng.
Tính bao đóng: Đó là gắn kết code và dữ liệu cùng với nhau vào trong một đơn vị unit đơn. Ví dụ: có thể bạn đã biết đến viên thuốc con nhộng (hay đơn giản hơn là gói bột giặt), các viên thuốc (hạt bột giặt) khác nhau được đóng gói.
Các ngôn ngữ lập trình hướng đối tượng đáng chú ý gồm có Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp, và Smalltalk.
Tham khảo khoá học lập trình web trong 6 tháng, đảm bảo 100% việc làm đầu ra!