Hướng đối tượng c++

  -  
1) thiết kế hướng đối tượng người tiêu dùng là gì?

Người ta nói rằng vẫn là developer thì trước sau cũng phải đụng mang đến lập trình phía đối tượng.Lập trình hướng đối tượng người sử dụng là quy mô lập trình phổ biến nhất và được đánh giá cách viết code tiêu chuẩn cho phần lớn các xây dựng viên. Lập trình hướng đối tượng bây giờ được áp dụng trong không hề ít ngôn ngữ lập trình: Typescript, Dart, Python, Java, Ruby,...Vậy lập trình sẵn hướng đối tượng người tiêu dùng có gì quánh biệt, hãy cùng bước đầu với khái niệm nhé.

Bạn đang xem: Hướng đối tượng c++

Lập trình hướng đối tượng (hay OOP) là một quy mô lập trình dựa trên khái niệm về Class với Object.Nó được thực hiện để bóc tách một chương trình ứng dụng thành các phần đơn giản, có thể tái sử dụng.

Có nhiều ngôn từ lập trình hướng đối tượng như C ++, Java, Python,..2) những khái niệm cơ bản

Các có mang cơ bản trong OOP gồm những:

ClassObjectĐóng gói (Encapsulation)Kế quá (Inheritance)Đa hình (Polymorphism)Trừu tượng (Abstraction)

Hiểu được 6 khái niệm này (kết hợp với thực hành) nghĩa là các bạn đã vắt được cơ bản của lập trình phía đối tượng.

*
Trong những ví dụ bên dưới, tôi sử dụng ngữ điệu Java.

2.1) Class

Ta phát âm Class là 1 trong kiểu dữ liệu do người dùng định nghĩa. Vào Class có những thuộc tính (attribute) cùng phương thức (method)

public class Nguoi // THUỘC TÍNH:String hoVaTen; // họ và tênint tuoi; // tuổiString gioiTinh; // giới tínhString diaChi; // địa chỉboolean giau; // gồm giàu không// PHƯƠNG THỨC:void an() // code//void ngu() // ...void xemTV() // ...

2.2) Object

Nếu Class là một trong những khuôn mẫu thì Object đó là thể hiện của khuôn chủng loại đó.Từ class Nguoi bên trên, làm thế nào ta tạo thành một đứa bạn Will Smith, đôi mươi tuổi, đơn vị giàu?

Nguoi nguoi1 = new Nguoi(); // khởi tạo nên Objectnguoi1.hoVaTen = "Will Smith"; // set giá trị cho thuộc tính hoVaTennguoi1.tuoi = 20; // set cực hiếm ...nguoi1.gioiTinh = "Nam"; // ...nguoi1.diaChi = "Mĩ";nguoi1.giau = true;Để dễ dàng nhớ, tôi hay coi Class là một trong bản vẽ của ngôi nhà, còn Object là số đông ngôi công ty cụ thể, được xây thực sự.

2.3) Đóng gói

Một một trong những điểm đáng chú ý về tính đóng gói đó là các thuộc tính sẽ sở hữu thuộc tính phạm vi (hay access modifier) là private với ta đề nghị tạo getter, setter cho những thuộc tính đó:

public class Nguoi private String hoVaTen; private int tuoi; private String gioiTinh; private String diaChi; private boolean giau; public String getHoVaTen() return hoVaTen;public void setHoVaTen(String hoVaTen) this.hoVaTen = hoVaTen;public int getTuoi() return tuoi;public void setTuoi(int tuoi) this.tuoi = tuoi;public String getGioiTinh() return gioiTinh;public void setGioiTinh(String gioiTinh) this.gioiTinh = gioiTinh;public String getDiaChi() return diaChi;public void setDiaChi(String diaChi) this.diaChi = diaChi;public boolean isGiau() return giau;public void setGiau(boolean giau) this.giau = giau;// CÁC PHƯƠNG THỨC ...Setter dùng để set giá chỉ trị mang lại thuộc tính, getter dùng để lấy ra giá trị của trực thuộc tính.

Xem thêm: A) Theo Em Người Có Đạo Có Phải Là Người Có Tín Ngưỡng Không ?

Vì vậy lúc gán giá bán trị cho các thuộc tính của Object, code có sự ráng đổi:

Nguoi nguoi1 = new Nguoi(); // khởi chế tạo Objectnguoi1.hoVaTen = "Will Smith"; // sẽ báo lỗi vị không thể truy cập thuộc tính privatenguoi1.setHoVaTen("Will Smith"); // không lỗiCác keyword private, protected, public được gọi là những access modifier. Thường thì với ở trong tính ta sẽ để access modifier là private, còn với cách thức sẽ nhằm public.

2.4) Kế thừa

Giống như thân phụ có đồ vật gi thì con bao gồm cái đó, thừa kế giúp class con dành được những trực thuộc tính, thủ tục của class cha.

public class LapTrinhVien extends Nguoi private String chucVu; // chức vụprivate float luong; // lương mặt hàng thángprivate boolean biTri; // bị đau trĩ nội trĩ ngoại 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 trọng protected thì Class LapTrinhVien new được quá 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ẽ sở hữu đượ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 mặt hàng thángprivate boolean biTri; // bị trĩ hay chưa// những phương thức tự class Nguoi ...// getter, setter ...Nói bình thường là class thân phụ có ở trong tính và phương thức gì, thì class con gồm cái đấy.

2.5) Đa hình

Chó, mèo, vịt đều sở hữu phương thức kêu, cơ mà mèo kêu "meo meo", chó kêu "gâu gâu", vịt kêu "quạc quạc".

*

Một hành động được thực hiện theo các cách khác biệt tuỳ vào hoàn cảnh, đó hotline là Đa hình.

Ta rất có thể đạt được đa hình theo kiểu ghi đè phương thức (Method Overriding), hoặc nạp ck phương thức (Method Overloading).Sau đấy là ví dụ về ghi đè phương thức:

class DongVatpublic void keu() System.out.println("Kêu");class cho extends DongVat
Overridepublic void keu() System.out.println("Quạc quạc");Còn đó là ví dụ về nạp chồng phương thức:

class Nguoi public void chao() System.out.println("Xin chào");public void chao(String hoTen) System.out.println("Xin chào, " + hoTen);public void chao(String hoTen1, String hoTen2) System.out.println("Xin chào, " + hoTen1 + " va " + hoTen2);Và khi call Object, ta rất có thể gọi 3 thủ tục cùng thương hiệu với các loại tham số khác nhau, và hiệu quả cũng không giống 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ượng

Ta có thể lấy ví dụ về tính chất trừu tượng như sau: khi bạn dùng điều khiển TV, các bạn chỉ nên biết bấm nút thì nó sẽ đưa kênh cho chính mình chứ bạn không cần phải hiểu phía sau chiếc tinh chỉnh đó phần đông gì xảy ra.Một lấy một ví dụ khác, với loại xe ô tô, khi chúng ta nhấn phanh, bạn chỉ cần phải biết là khi nhấn phanh thì xe đang dừng chứ bạn không cần thân thương nguyên lý vận động đằng sau tài năng phanh kia ra sao.Nói biện pháp khác, ta chỉ cân nhắc "What it does" chứ không cần thân thương "How it does".Trong Java, ta rất có thể đạt được Trừu tượng theo 2 cách: abstract class cùng interface.

Với abstract class, các phương thức sẽ không tồn tại phần thân, nhưng mà chỉ bao gồm phần khai báo. Rất nhiều class nào kế thừa từ nó sẽ thực thi 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 xe đạp 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…Khi sử dụng, ta có thể khởi chế tạo ra Object dạng như sau:

Vehicle oto = new Car();car.brake();Kết quả:

*
Class xe đạp và Scooter cũng rất có thể làm tương tự.

Xem thêm: Mach Khuech Dai Am Tan Otl, (Pdf) Mạch Khuếch Đại Công Suất Âm Tần

2.7) một số khái niệm khác

ConstructorInterfaceToán tử thisToán tử superThuộc tính phạm viQuan hệ IS-AQuan hệ HAS-A3) Kết

Hi vọng nội dung bài viết đã giúp cho bạn có được tầm nhìn tổng quan và hồ hết khái niệm cơ phiên bản của lập trình phía đối tượng.Với những chúng ta mới học lập trình phía đối tượng, lời khuyên của tớ là không đề nghị đọc không ít lý thuyết, hãy code thật nhiều. Tiếp đến quay lại với các khái niệm, bạn sẽ vỡ ra những thứ hơn, hiểu sâu hơn.Lập trình hướng đối tượng bây giờ được dùng không hề ít trong các technology và ngôn ngữ lập trình: Angular áp dụng Typescript, Flutter sử dụng Dart, Python, Java ,... Vì vậy rất đáng để để chúng ta đầu từ thời gian và công sức.