Học lập trình hướng đối tượng C++
Show Trịnh Quý Công @congtrinhh Đã đăng vào thg 5 11, 12:23 SA 7 phút đọc
Người ta nói rằng đã là developer thì sớm muộn cũng phải đụng đến lập trình hướng đối tượng. Có nhiều ngôn ngữ lập trình hướng đối tượng như C ++, Java, Python,.. 2) Các khái niệm cơ bảnCác khái niệm cơ bản trong OOP bao gồm:
Hiểu được 6 khái niệm này (kết hợp với thực hành) nghĩa là bạn đã nắm được cơ bản của lập trình hướng đối tượng. Trong các ví dụ bên dưới, tôi sử dụng ngôn ngữ Java. 2.1) ClassTa hiểu Class là một kiểu dữ liệu do người dùng định nghĩa. Trong Class có các thuộc tính (attribute) và phương thức (method)
2.2) ObjectNếu Class là một khuôn mẫu thì Object chính là thể hiện của khuôn mẫu đó.
2.3) Đóng góiMột trong những điểm đáng chú ý về tính đóng gói đó là các thuộc tính sẽ có thuộc tính phạm vi (hay access modifier) là private và ta cần tạo getter, setter cho các thuộc tính đó:
2.4) Kế thừaGiống như cha có cái gì thì con có cái đó, kế thừa giúp class con có được những thuộc tính, phương thức của class cha. public class LapTrinhVien extends Nguoi { private String chucVu; // chức vụ private float luong; // lương hàng tháng private boolean biTri; // bị trĩ hay chưa // getter, setter ... }Lúc này, các thuộc tính trong Class Nguoi phải thay đổi access modifier từ private sang protected thì Class LapTrinhVien mới được thừa hưởng các thuộc tính đó: public class Nguoi { protected String hoVaTen; protected int tuoi; protected String gioiTinh; protected String diaChi; protected boolean giau; // getter, setter, ... }Lúc này, Class LapTrinhVien sẽ có dạng: public class LapTrinhVien extends Nguoi { protected String hoVaTen; protected int tuoi; protected String gioiTinh; protected String diaChi; protected boolean giau; private String chucVu; // chức vụ private float luong; // lương hàng tháng private boolean biTri; // bị trĩ hay chưa // các phương thức từ class Nguoi ... // getter, setter ... }Nói chung là class cha có thuộc tính và phương thức gì, thì class con có cái đấy. 2.5) Đa hìnhChó, mèo, vịt đều có phương thức kêu, nhưng mèo kêu "meo meo", chó kêu "gâu gâu", vịt kêu "quạc quạc".
Sau đây là ví dụ về ghi đè phương thức:
Và khi gọi Object, ta có thể gọi 3 phương thức cùng tên với các loại tham số khác nhau, và kết quả cũng khác nhau: Nguoi nguoi = new Nguoi(); nguoi.chao(); nguoi.chao("Will Smith"); nguoi.chao("Will Smith", "Chris Rock");Kết quả:
2.6) Trừu tượngTa có thể lấy ví dụ về tính trừu tượng như sau: khi bạn dùng điều khiển TV, bạn chỉ cần biết bấm nút thì nó sẽ chuyển kênh cho bạn chứ bạn không cần phải hiểu đằng sau chiếc điều khiển đó những gì xảy ra. Một ví dụ khác, với chiếc xe ô tô, khi bạn nhấn phanh, bạn chỉ cần biết là khi nhấn phanh thì xe sẽ dừng chứ bạn không cần quan tâm nguyên lý hoạt động đằng sau tính năng phanh đó ra sao. Nói cách khác, ta chỉ quan tâm đến "What it does" chứ không cần quan tâm "How it does". Trong Java, ta có thể đạt được Trừu tượng theo 2 cách: abstract class và interface. Với abstract class, các phương thức sẽ không có phần thân, mà chỉ có phần khai báo. Những class nào kế thừa từ nó sẽ triển khai phần thân của phương thức. abstract class Vehicle{ abstract void start () ; abstract void stop (); abstract void accelerate (); abstract void brake (); } class Car extends Vehicle{ void start () { //code here…} void stop () { //code here…} void accelerate () { //code here…} void brake () { System.out.println("Car braked"); } } class Bike extends Vehicle{ void start () { //code here…} void stop () { //code here…} void accelerate () { //code here…} void brake () { //code here…} } class Scooter extends Vehicle{ void start () { //code here…} void stop () { //code here…} void accelerate () { //code here…} void brake () { //code here…} }
Kết quả: Class Bike và Scooter cũng có thể làm tương tự. 2.7) Một số khái niệm khác
3) KếtHi vọng bài viết đã giúp bạn có được cái nhìn tổng quan và những khái niệm cơ bản của lập trình hướng đối tượng. 4) Tham khảoAll rights reserved |