Lập trình hướng đối tượng là gì? Học ngôn ngữ lập trình hướng hướng đối tượng tại IMIC

Nếu bạn đã thực hiện một số chương trình dành cho người mới bắt đầu , hoặc thậm chí bắt đầu xem xét các ngôn ngữ khác nhau, có lẽ bạn đã bắt gặp cụm từ lập trình hướng đối tượng Nghịch (hoặc OOP NGH)).

Có tất cả các loại giải thích kỹ thuật về nó là gì, nhưng hôm nay chúng ta sẽ xem xét việc xác định lập trình hướng đối tượng một cách đơn giản.
Trước khi chúng tôi bắt đầu: Ngôn ngữ thủ tục
Để hiểu ngôn ngữ lập trình hướng đối tượng là gì, bạn cần hiểu ngôn ngữ thay thế. Các ngôn ngữ lập trình ban đầu được gọi là thủ tục bởi vì lập trình viên sẽ xác định một bộ quy trình rất cụ thể mà máy tính sẽ thực hiện.
Trong những ngày đầu tiên, các thủ tục được viết trên thẻ đục lỗ. Những bước đó đã lấy dữ liệu, thực hiện một chuỗi các hành động trên dữ liệu đó, sau đó xuất dữ liệu mới.
Ngôn ngữ thủ tục hoạt động tốt trong một thời gian (và một số vẫn đang được sử dụng). Nhưng khi bạn muốn lập trình một cái gì đó ngoài một chuỗi các bước cơ bản, các ngôn ngữ thủ tục có thể trở nên khó quản lý. Đó là nơi lập trình hướng đối tượng đến.


Mục tiêu của lập trình hướng đối tượng
Vậy thì, lập trình hướng đối tượng là gì?
Ngôn ngữ hướng đối tượng đầu tiên (thường được đồng ý là Simula) đã giới thiệu ý tưởng về các đối tượng . Đối tượng là tập hợp thông tin được coi là một thực thể số ít.
Chúng ta sẽ đi sâu hơn vào những gì thực sự có nghĩa trong một giây với một ví dụ, nhưng trước tiên chúng ta phải nói về các lớp học . Các lớp học giống như các đối tượng trước. Chúng chứa một danh sách các thuộc tính mà khi được xác định sẽ trở thành một đối tượng.
Hãy lấy ví dụ về lập trình một ván cờ. Chúng ta có thể có một lớp gọi là Piece. Trong Piece, chúng tôi có một danh sách các thuộc tính:

  • Màu
  • Chiều cao
  • Hình dạng
  • Di chuyển cho phép
Một đối tượng chỉ đơn giản là định nghĩa một thể hiện cụ thể của một thứ thuộc về lớp đó.
Vì vậy, chúng ta có thể có một đối tượng được gọi là WhiteQueen. Đối tượng đó sẽ có các định nghĩa cho cả bốn thuộc tính (màu trắng, cao, hình trụ với các dấu ngoặc, bất kỳ số lượng không gian theo bất kỳ hướng nào). Nó cũng có thể có các phương thức hoặc chức năng .
Điều gì làm cho điều này tốt hơn nhiều so với cách tiếp cận thủ tục?
Nói tóm lại, các ngôn ngữ lập trình hướng đối tượng ( như Java ) giúp tổ chức dữ liệu và mã dễ dàng hơn theo cách linh hoạt hơn cho dự án lớn hơn.
Để thảo luận chi tiết hơn một chút, chúng ta sẽ nói về bốn điều cơ bản của lập trình hướng đối tượng.


Lập trình hướng đối tượng: Trừu tượng
Chỉ vì bạn muốn sử dụng một cái gì đó không có nghĩa là bạn cần biết nó hoạt động như thế nào. Một máy pha cà phê, ví dụ, là phức tạp. Nhưng bạn không cần phải biết nó hoạt động như thế nào. Bạn chỉ cần biết rằng khi bạn nhấn vào On On, bạn sẽ có được espresso.
Điều tương tự cũng đúng với các đối tượng trong lập trình hướng đối tượng. Trong ví dụ cờ vua của chúng tôi, chúng tôi có thể có một phương thức move (). Phương pháp đó có thể yêu cầu rất nhiều dữ liệu và các phương pháp khác. Nó có thể cần các vị trí ban đầu và các biến vị trí cuối cùng. Nó có thể sử dụng một phương pháp khác để xác định xem nó có bắt được một mảnh hay không.
Nhưng bạn không cần phải biết điều đó. Tất cả những gì bạn cần biết là khi bạn bảo mảnh di chuyển, nó sẽ di chuyển. Đó là sự trừu tượng.


Lập trình hướng đối tượng: Đóng gói
Đóng gói là một trong những cách mà lập trình hướng đối tượng tạo ra sự trừu tượng. Mỗi đối tượng là một tập hợp dữ liệu được coi là một thực thể duy nhất. Và trong các đối tượng đó là dữ liệu, cả hai biến và phương thức.
Các biến trong một đối tượng thường được giữ riêng tư, có nghĩa là các đối tượng và phương thức khác không thể truy cập chúng. Các đối tượng chỉ có thể bị ảnh hưởng bằng cách sử dụng các phương pháp của họ.
Một đối tượng Giám mục có thể chứa một số thông tin. Ví dụ, nó có thể có một biến được gọi là vị trí của Google. Biến đó là cần thiết để sử dụng phương thức move (). Và, tất nhiên, nó có một màu.
Bằng cách đặt biến vị trí thành riêng tư và phương thức move () ở chế độ công khai, lập trình viên bảo vệ biến di chuyển khỏi bị ảnh hưởng bởi bất kỳ thứ gì khác. Và nếu màu sắc là một biến riêng tư, không có cách nào để một đối tượng khác thay đổi nó trừ khi có một phương thức cho phép thay đổi. (Mà bạn có thể sẽ không có, vì màu sắc của mảnh sẽ không đổi.)
Các biến và phương thức này được giữ trong đối tượng Giám mục. Vì chúng được gói gọn, một lập trình viên có thể thay đổi cấu trúc hoặc nội dung của đối tượng mà không phải lo lắng về giao diện công cộng.


Lập trình hướng đối tượng: Kế thừa
Ngoài các lớp, các ngôn ngữ lập trình hướng đối tượng cũng có các lớp con. Chúng chứa tất cả các thuộc tính từ lớp cha, nhưng chúng cũng có thể chứa các thuộc tính khác.
Trong trò chơi cờ vua của chúng tôi, các quân cờ cần một phương pháp có thể biến chúng thành các quân cờ khác nếu chúng đi đến cuối ván. Chúng ta sẽ gọi nó là phương thức TransformPiece ().
Không phải mọi phần đều cần phương thức TransformPiece (). Vì vậy, chúng tôi sẽ không muốn đưa nó vào lớp Piece. Thay vào đó, chúng ta có thể tạo một lớp con gọi là Cầm đồ. Bởi vì nó là một lớp con, nó thừa hưởng tất cả các thuộc tính từ Piece. Vì vậy, một thể hiện của Cầm đồ của lớp con bao gồm màu sắc, chiều cao, hình dạng và chuyển động được phép.
Nhưng nó cũng bao gồm phương thức TransformPiece (). Bây giờ chúng tôi không bao giờ phải lo lắng về việc vô tình sử dụng chức năng đó trên một rook. Đây là một lời giải thích kỹ thuật:
Tạo các lớp con cũng tiết kiệm rất nhiều thời gian. Thay vì tạo các lớp mới cho mọi thứ, các lập trình viên có thể tạo một lớp cơ sở và sau đó mở rộng nó sang các lớp con mới khi họ cần. (Tuy nhiên, đáng chú ý là việc phụ thuộc quá nhiều vào thừa kế là không tốt .)


Lập trình hướng đối tượng: Đa hình
Đa hình là kết quả của sự kế thừa. Hiểu đầy đủ về đa hình cần một số kiến ​​thức lập trình, vì vậy chúng ta sẽ tiếp tục với những điều cơ bản ở đây. Nói tóm lại, đa hình cho phép các lập trình viên sử dụng các phương thức cùng tên, nhưng với các đối tượng khác nhau .
Ví dụ, lớp Piece của chúng ta có thể có một phương thức move () để di chuyển một không gian một mảnh theo bất kỳ hướng nào. Điều đó làm việc cho các mảnh vua, nhưng không phải cho bất cứ điều gì khác. Để khắc phục sự cố này, chúng ta có thể định nghĩa phương thức move () mới trong lớp con Rook định nghĩa chuyển động là một số lượng không gian không giới hạn tiến, lùi, trái hoặc phải.
Bây giờ, khi một lập trình viên gọi phương thức move () và sử dụng một phần làm đối số, chương trình sẽ biết chính xác cách phần đó sẽ di chuyển. Điều này giúp tiết kiệm rất nhiều thời gian so với việc cố gắng tìm ra phương pháp nào trong số nhiều phương pháp khác nhau mà bạn nên sử dụng.


Lập trình hướng đối tượng một cách ngắn gọn
Nếu đầu bạn quay cuồng một chút sau bốn định nghĩa cuối cùng, đừng quá lo lắng. Dưới đây là những điều chính bạn cần nhớ:
Lập trình hướng đối tượng thu thập thông tin thành các thực thể đơn gọi là các đối tượng.
Mỗi đối tượng là một thể hiện duy nhất của một lớp.
Trừu tượng che giấu hoạt động bên trong của một đối tượng khi không cần thiết phải nhìn thấy chúng.
Đóng gói lưu trữ các biến và phương thức liên quan trong các đối tượng và bảo vệ chúng.
Kế thừa cho phép các lớp con sử dụng các thuộc tính từ các lớp cha.
Đa hình cho phép các đối tượng và phương thức xử lý nhiều tình huống khác nhau với một giao diện duy nhất.
Nếu bạn có thể nhớ những điểm đó, bạn sẽ nắm bắt tốt việc lập trình hướng đối tượng là gì. Bốn điều cơ bản của lập trình hướng đối tượng, như tôi đã đề cập, có thể hơi khó khăn để xử lý. Nhưng một khi bạn bắt đầu lập trình, chúng sẽ trở nên rõ ràng hơn.
Hãy nhớ rằng chúng ta chỉ thảo luận về tính tổng quát trong bài viết này. Các ngôn ngữ hướng đối tượng khác nhau sẽ có những đặc điểm riêng và cách để làm cho mọi thứ xảy ra. Khi bạn chọn ngôn ngữ phù hợp với mình , bạn sẽ bắt đầu tìm hiểu cách áp dụng các nguyên tắc OOP vào thực tế.
BTV.Đỗ Diệp An
Phòng Tuyển Sinh IMIC Technology Việt Nam
Hotline: 0916878224
Email: tuvan@imic.edu.vn
 
 
Share:

ĐỐI TÁC LIÊN KẾT TUYỂN DỤNG NHÂN SỰ CỦA IMIC TECHNOLOGY

IMIC Technology

IMIC Technology tự hào là doanh nghiệp đầu tiên tại Việt Nam triển khai các Chương trình Đào tạo chuyên môn dự án cho Học viên ngành CNTT/CNPM. Cũng là một trong những doanh nghiệp đạt được nhiều giải thưởng lớn trong lĩnh vực này. Góp phần phát triển mạnh ngành CNTT/CNPM tại nước ta hiện nay.