Lập trình hướng đối tượng

Lập trình phía đối tượng người sử dụng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là 1 mẫu hình lập trình dựa vào quan niệm "công nghệ đối tượng", cơ mà trong những số đó, đối tượng người tiêu dùng chứa đựng các tài liệu, trên các ngôi trường, thường xuyên được Hotline là những thuộc tính; cùng mã mối cung cấp, được tổ chức thành các cách tiến hành. Pmùi hương thức hỗ trợ cho đối tượng rất có thể truy hỏi xuất cùng hiệu chỉnh các ngôi trường tài liệu của đối tượng không giống, mà lại đối tượng người dùng hiện thời có liên can (đối tượng được hỗ trợ các cách làm "this" hoặc "self"). Trong lậ...

Bạn đang xem: Lập trình hướng đối tượng là gì


Hoặc rất có thể vào ĐÂYđể tra cứu làm rõ hơn về principles of object oriented

Đó là theo ý kiến hàn lâm. Nói dễ hiểu hơn Object oriented programming(OOP) tuyệt Lập trình phía đối tượng người tiêu dùng. Được trở nên tân tiến trường đoản cú trong những năm 2000 nhằm mục tiêu thay thế đến xây dựng giấy tờ thủ tục nhỏng C. Giúp fan lập trình thống trị cải cách và phát triển cùng cai quản code dễ ợt rộng.

Nhìn vào thương hiệu của chính nó bạn có thể tưởng tượng ra được. Ngôn ngữ lập trình này giải quyết và xử lý các bài toán thù từ bỏ bé dại mang đến to bằng cách quan gần kề cùng tưởng tượng đều hành động, Điểm sáng của thực thể thật xung quanh đời sống cùng đem vào lập trình nlỗi một đối tượng người sử dụng ảo. Thể hiện qua các lớp (class), đối tượng người tiêu dùng (Object) cơ mà hành động là những hàm(method) còn điểm sáng chính là các biến(variable)

Nói 1 cách hoa mỹ hơn

OOPhường is the art of observing of objects in their natural appearance & trying to capture the functional abstractnesses in descriptive programming way, and khổng lồ visualize them as virtual-workable objects

OOPhường là thẩm mỹ quan liêu cạnh bên các đối tượng người tiêu dùng vào thoải mái và tự nhiên rồi nỗ lực thâu tóm đều hành vi cùng công dụng của chúng và trình diễn bên dưới dạng đối tượng ảo trong ngôn ngữ lập trình

Ví dụ:

Xe (đời thực)-> class Xe(lập trình) -> Đối tượng XeTrong đó Xe thật thì tất cả màu sắc, số bánh, tên xe-> Class Xe (Biến màu, trở thành Số bánh. trở nên Tên)-> Đối tượng xe(Màu,Số bánh, tên)Lập trình hướng đối tượng luôn luôn đi kèm 4 Đặc điểm chính

Abstraction : tính trừu tượng.Encapsulation : tính gói gọn.Inheritance : tính kế thừa.Polymorphism : tính nhiều hình.

Các trực thuộc tính của thiết kế hướng đối tượng

Tính gói gọn (encapsulation) cùng bít giấu đọc tin (information hiding)Trước Khi mày mò tính gói gọn với bịt giấu lên tiếng, chúng ta nên tò mò cú pháp ngữ điệu những biểu hiện tính chất public, private, protected …

Cú pháp ngôn ngữ

*

Bức Ảnh trên là một trong những ví dụ về tính gói gọn cùng bịt giấu báo cáo trong xây dựng OOP

Như chúng ta thấy, viên thuốc được phủ quanh vì lớp vỏ chính là ClassMethod với Variable là phần đa nhân tố bên trong viên dung dịch, được bao lại, bịt giấu đi cùng quan trọng chú ý hoặc sử dụng giả dụ Class bên ngoài ko cho phép.

do đó tính gói gọn hoàn toàn có thể hiểu: Gói dữ liệu (data, ~ vươn lên là, trạng thái) với mã lịch trình (code, ~ phương thơm thức) thành một viên call là lớp (class) nhằm dễ quản ngại lí. Trong viên này hay data khôn xiết rối rắm, không luôn tiện cho người không tồn tại trách nát nhiệm truy cập thẳng, đề xuất thường xuyên ta sẽ bít vệt data đi, chỉ nhằm lòi cách làm ra ngoài

*

Khái niệm: Kế quá là bí quyết tạo nên lớp new trường đoản cú những lớp đã có định nghĩa trường đoản cú trước

Lớp phụ vương hoàn toàn có thể chia sẻ dữ liệu cùng phương thức cho các lớp nhỏ, các lớp bé ngoài buộc phải quan niệm lại hầu như súc tích tầm thường, giúp chương trình ngắn gọn gàng. Nếu lớp thân phụ là interface, thì lớp nhỏ đã di truyền những contract trừu tượng từ lớp cha

Giả sử ta bao gồm 2 class A và B:- Class A: lớp các đại lý (lớp cha) - supper class- Class B: lớp dẫn xuất (lớp con) - sub class

Class B hoàn toàn có thể sử dụng được phần lớn các cách làm (hàm) với các trực thuộc tính(biến) của lớp A ko kể những những phương thức cùng những hàm các đặc điểm private.

Cài đặt: nhằm cài đặt lớp kế thừa ta sử dụng tân oán tử “:” (trong C++, C#) và Extends (Java). ví dụ như B kế thừa A viết là: B:A

class A ....class B:A // hoặc B extends A (java) ...

Xem thêm: Đại Từ Là Gì Trong Tiếng Anh, Đại Từ Trong Tiếng Anh Và Cách Sử Dụng

Chụ ý:

Một lớp phụ thân có thể có khá nhiều lớp conĐến lượt bản thân từng lớp nhỏ lại có thể gồm các bé khácTrong C++ được cho phép đa thừa kế (một tấm bé hoàn toàn có thể nhận hơn 1 lớp cha)Java chỉ cho phép từng lớp nhỏ kế thừa 1 và có một lớp cha/ từ bỏ khóa implement đã sửa chữa thay thế đến nhiều thừa kế tự C++

Ví dụ: Code Java

Class nhân viên cấp dưới Employee có những trực thuộc tính name và salary

class Employee private String name; private float salary; public Employee() public Employee(String name, float salary) this.name = name; this.salary = salary; public String getName() return name; public void setName(String name) this.name = name; public float getSalary() return salary; public void setSalary(float salary) this.salary = salary; //method say public void SayHello() System.out.println("Xin chaof"); //class Programmer gồm thêm 1 trực thuộc tính bonus kế thừa clas Employeepublic class Programmer extends Employee private float bonus; public float getBonus() return bonus; public void setBonus(float bonus) this.bonus = bonus; public Programmer(String name, float salary, float bonus) super(name, salary); this.bonus = bonus; public static void main(String args<>) Programmer p=new Programmer("Đỗ Trung Quân", 1000, 500); System.out.println("Tên lập trình viên : " + p.getName()); System.out.println("Luong Lap trinh vien : "+p.getSalary()); System.out.println("Bonus cua Lap trinc vien :"+p.getBonus()); Output:

Tên lập trình viên : Đỗ Trung QuânLương Lập trình viên : 1000.0Bonus của thiết kế viên : 500.0Giải thích:

Class Programmer bản thân không knhị báo 2 đổi thay name với salary cơ mà nó vẫn thực hiện được. Vì Programmer vẫn thừa kế class Employee -> nó có thể áp dụng lại những constructor cùng get/phối trường đoản cú class cha. Kêu điện thoại tư vấn bọn chúng bởi trường đoản cú khóa “super”

Tuy nhiên vào C++ ko có thể chấp nhận được làm điều đó nếu như 2 đổi thay ở class phụ thân là private. Quý khách hàng rất có thể tìm hiểu thêm liên kết bên dưới nhằm biết phương pháp truy vấn trở nên và hàm private lớp phụ vương tự lớp nhỏ trong C++-> Lớp các bạn cùng lớp dẫn xuất trong C++

(chú ý, trong java không có override trở thành nhưng chỉ tất cả method).

Nếu bạn khai báo 1 trở thành name hoặc salary không giống trong clas Programmer. Nó đã là 2 đổi mới hoàn toàn khác 2 đổi mới vào class Employee

Tính trừu tượng, phương thức ảo:

Có câu “program to interfaces, not to concrete implementations”. Nghĩa là khi viết công tác theo phong cách phía đối tượng người tiêu dùng, lúc thiết kế những đối tượng người tiêu dùng, ta đề xuất rút tỉa ra mọi đặc thù của bọn chúng, rồi trừu tượng trở thành những interface, cùng thi công xem bọn chúng vẫn liên can với nhau ra sao. Nói cách khác, bọn họ định ra các interface cùng các contract mà lại chúng bắt buộc thỏa mãn nhu cầu.

Nói 1 cách đơn giản dễ dàng thì các bạn chỉ việc knhì báo hàm vào lớp phụ thân (access modifier, cách tiến hành trả về, tên hàm, tđắm đuối số truyền vào). Còn định nghĩa trong phần thân hàm các bạn ko bắt buộc quan tâm mang đến. Vì nó sẽ được override lại từ class kế thừa.

Định nghĩa: Đây là kĩ năng của công tác bỏ qua hay không chăm chú mang đến một vài khía cạnh của lên tiếng mà lại nó đã trực tiếp thao tác làm việc lên, tức là nó có khả năng tập trung vào những chủ quản quan trọng (chỉ knhì báo). Mỗi đối tượng người tiêu dùng Giao hàng như là 1 trong “hễ tử” hoàn toàn có thể hoàn chỉnh các các bước một bí quyết nội bộ, report, thay đổi tâm lý của nó cùng liên lạc với những đối tượng khác cơ mà ko buộc phải cho thấy thêm có tác dụng giải pháp nào đối tượng người dùng thực hiện được những thao tác làm việc (sự override tự lớp con).

Xem thêm: Thuốc Smecta® Diosmectite Là Gì ? Công Dụng, Cách Sử Dụng Và Lưu Ý Khi Dùng

Tính chất này thường được call là sự trừu tượng của tài liệu.

Phương thơm thức ảo là cách tiến hành được có mang sinh hoạt lớp cơ sở (lớp cha) nhưng mà các lớp dẫn xuất (lớp con) ao ước sử dụng phải tư tưởng lại. Dùng keyword virtual (c++) hay abstract (java)để knhì báo cách làm ảo:Trong Class ảo rất có thể gồm cách thức ảo hoặc ko dẫu vậy cách làm ảo bắt buộc phải sống trong class ảophương thức ảo không chứa bodyKhi thừa kế class ảo, cần phải viết lại thủ tục ảo của nó

Code C++

virtual () ....Code java

abstract () ....Ví dụ

//Phải thêm từ bỏ khóa abstract trước class ví như nó vẫn chưa method abstractabstract class Employee //method Abstract không tồn tại toàn thân abstract public void SayHelloAbstract(String name); public void SayHello() System.out.println("Xin chaof"); Viết lại class Programmer

class Programmer extends Employee{ private float bonus; public float getBonus() return bonus; public void setBonus(float bonus) this.bonus = bonus;

Chuyên mục: Blog