9/27/2020

Lập trình hướng đối tượng | Tài liệu, cơ sở ngành CNTT


Lập trình hướng đối tượng là môn học mà ai theo công nghệ thông tin đều phải học, vì nó là nền tảng cho hầu hết các thiết kế hiện nay. Mọi thiết kế đều được mô phỏng bằng hướng đối tượng. Hướng đối tượng là câu hỏi mà gần như lúc nào bạn cũng sẽ bị hỏi khi đi phỏng vấn.

4 tính chất của lập trình hướng đối tượng mà bạn cần phải nhớ mọi lúc mọi nơi, cái này là cái không được quên đó là: 

  • Tính trìu tượng hóa: là cách mô tả các đối tượng ở thế giới thực vào các đối tượng trong lập trình bằng cách loại bỏ các thuộc tính, tính chất phức tạp và chỉ giữ lại những tính chất, thuộc tính cần thiết.

  • Tính đóng gói: mỗi đối tượng có những không gian dữ liệu riêng, việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Tính đóng gói được thể hiện thông qua phạm vi truy cập (access modifier). Đây là tính chất quan trọng nhất của OOP.

  • Tính kế thừa: cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp có sẵn, đây là tính chất quan trọng của OOP, nó giúp cho chúng ta viết code sạch hơn, dễ nhìn hơn.

  • Tính đa hình: là cách mà 1 tác vụ được thực hiện theo nhiều cách khác nhau, được thể hiện qua 2 tính chất nạp chồng (overloading) và ghi đè (overriding).


Tại Bách Khoa Hà Nội, các sinh viên sẽ được học lập trình hướng đối tượng (OOP) với minh họa bằng ngôn ngữ lập trình Java. Vì Java là ngôn ngữ 100% hướng đối tượng, có cấu trúc rõ ràng, dễ học và dễ tìm hiểu. Các bạn có thể học thầy Đạt hoặc thầy Tuấn, thầy Tuấn cho điểm khá dễ tuy nhiên học thầy đôi lúc hơi buồn ngủ đấy, còn thầy Đạt cho điểm gắt hơn 1 tí nhưng thầy dạy cũng khá hay, ví dụ rất chi tiết, dễ hiểu.

Mình chia sẻ tới mọi người một số tài liệu học OOP để mọi người tham khảo và có thể tự học : 

  • Slide bài giảng OOP - SoICT : 
    • LINK 1 | LINK 2 ( Link 2 là link bài giảng cũ tuy nhiên thiết kế với 1 slide 1 mặt dễ nhìn hơn so với Link 1) 

    • LINK 3 ( Link 3 là 1 slide của thầy Trịnh Thành Trung) 

    • LINK 4 ( Link 4 là slide của thầy Cao Tuấn Dũng)

  • Tài liệu học OOP bằng C++ - HUST : TẢI VỀ TÀI LIỆU (C++ là một ngôn ngữ nói chung là khó, tuy nhiên C++ là chính là khuôn mẫu cho các ngôn ngữ lập trình khác và nó cũng là core của rất nhiều ngôn ngữ như Python chính là được viết bằng C++, bây giờ rất ít các trường sử dụng C++ để giảng dạy OOP mà thay vào đó là các ngôn ngữ bậc cao hơn như Java, C#. Mình vẫn để slide ở đây để cho bạn nào muốn tìm hiểu về OOP bên C++ thì có thể tham khảo nha)

  • Tham khảo đề thi cuối kì OOP ( do đề thi không được mang về nên hầu như không có đề thi cập nhật mới nhất, đây là đề thi mà mình gõ lại từ đề mà thầy/cô giáo cho làm) : TẢI VỀ ĐỀ THI PDF | WORD ( Hoặc TẢI VỀ TÀI LIỆU)

Ngoài ra, tất cả các bài tập lớn OOP đều có thêm một yêu cầu nữa là bản mô hình hóa về bài của mình bằng ngôn ngữ mô hình hóa thống nhất UML. 

Có một công cụ hỗ trợ mô hình hóa mà mình thích nhất ở đây là Astah, là một công cụ rất tốt, dễ sử dụng, dễ tùy chỉnh, nhìn đẹp mắt. Astah là mất phí nhưng nó lại có bản miễn phí cho sinh viên, chỉ cần có email do trường cấp là có thể sử dụng Astah hoàn toàn miễn phí. Ai chưa biết tải thì làm theo video sau nha (cực kì dễ lấy, phải nói sinh viên có rất nhiều ưu ái trong việc tiếp cận sử dụng các công cụ trong việc học tập) : 


Tài liệu thêm cho bạn nào muốn tìm hiểu thêm về Java nha: 

3 comments:

  1. Anh có biết thầy Trần Nhật Hóa sử dụng slide nào ko ạ

    ReplyDelete
    Replies
    1. Mình cũng không biết! Nhưng các slide nhìn chung là có cái khung giống nhau thôi bạn.

      Delete
  2. Cảm ơn vì những chia sẻ vô cùng hữu ích, tìm hiểu thêm về chủ đề: oop là gì

    ReplyDelete