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

      319

Trong bài viết này, bản thân sẽ nói về các tư tưởng lập trình hướng đối tượng trong Java. Bởi vì Java như là 1 trong những hình chủng loại lý tưởng mang lại triết lý lập trình hướng đối tượng.

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

Vậy xây dựng hướng đối tượng người sử dụng là gì? Đó chính là một đẳng cấp lập trình với các khái niệm như Lớp (Class), Đối tượng (Object), thừa kế (Inheritance), tính đóng gói (Encapsulation), Trừu tượng (Abstraction), Đa hình (Polymorphism) hotline tắt là OOP.

Phần lớn những ngôn ngữ lập trình giống hệt như Java, C++, C#, Ruby… đông đảo theo mô hình lập trình phía đối tượng.

Qua nội dung bài viết này, họ sẽ phát âm rõ bản chất các khái niệm chủ yếu của xây dựng hướng đối tượng Java qua 4 tính chất của lập trình hướng đối tượng

Kế thừaĐóng góiTrừu tượng Đa hình

*

Trước hết, bọn họ sẽ lướt qua lập trình hướng đối tượng người sử dụng là gì vẫn nhé!


Nội dung thiết yếu của bài xích viết

#4 đặc thù của lập trình phía đối tượng1.Tính kế thừa3. Tính trừu tượng (Abstraction)

#Lập trình hướng đối tượng là gì?

Lập trình hướng đối tượng người dùng hay còn được gọi là lập trình OOP là kỹ thuật lập trình mà toàn bộ các logic, yêu cầu thực tế đều được xây dựng xoay quanh những đối tượng.

Khi áp dụng OOP, chúng ta sẽ định nghĩa các class để mô hình hóa các đối tượng người tiêu dùng thực tế. Trong ứng dụng những class sẽ được khởi sản xuất thành các instance. Trong suốt thời gian ứng dụng chạy, các phương thức (method) của đối tượng người tiêu dùng này sẽ được gọi.

Trong trái đất thực, đối tượng người dùng là hầu như thực thể tồn tại gồm trạng thái cùng hành vi.

*

Hướng tiếp cận này hiện đang rất thành công xuất sắc và đang trở thành một trong những khuôn mẫu cải cách và phát triển phần mềm, nhất là các ứng dụng cho doanh nghiệp.

#Ưu điểm của OOP

Do xây dựng hướng đối tượng ra đời sau này, nên nó kế thừa với khắc phục được rất nhiều nhược điểm của các mô hình lập trình trước đó.

Với 4 đặc điểm OOP đặc điểm của mình, nói theo cách khác lập trình hướng đối tượng người dùng rất tương thích cho những ứng dụng giành cho doanh nghiệp.

Mình rất có thể liệt kê một số ưu điểm của OOP:

Khả năng mở rộng cao.Có năng lực tái sử dụng rất tốt nhờ tính kế thừa.Dễ quản lý code khi đề xuất thêm tính năng.Dễ học, đơn giản, dễ dàng bảo trì…

#4 đặc điểm của lập trình phía đối tượng

Chúng ta hãy bắt đầu với khái niệm thứ nhất của lập trình hướng đối tượng: Tính kế thừa

1.Tính kế thừa

Trong lập trình phía đối tượng, các chương trình thứ tính có phong cách thiết kế theo phương pháp là toàn bộ mọi thứ số đông được xem như là đối tượng và tác động với những đối tượng người sử dụng khác.

Tính kế thừa là một khái niệm được hiểu hầu như thuộc tính của một lớp rất có thể được thừa kế bởi một tờ khác. Nó giúp bạn cũng có thể sử dụng lại code và thiết lập một quan hệ giữa những class khác nhau.

*

Như chúng ta thấy ở hình trên, một đứa trẻ em kế thừa những thuộc tính của thân phụ cậu ấy. Tương tự, trong Java, họ sẽ có 2 class như mặt dưới:

Lớp thân phụ còn được phát âm là Lớp khôn cùng cấp, Lớp cơ sở (Parent class hoặc Super class hay Base class)Lớp bé còn được đọc Lớp phụ, Lớp dẫn xuất (Child class hoặc Sub class hoặc Derived class)

Một lớp kế thừa những thuộc tính theo luồng thông tin có sẵn đến là một trong những Sub class trong những khi một lớp có các thuộc tính được thừa kế được gọi là Parent class.

Kế quá được phân chia làm 4 loại:

*

Chúng ta hãy bắt đầu với loại đầu tiên của kế thừa: Đơn thừa kế (Single Inheritance)

1.1 Đơn thừa kế (Single Inheritance)

*

Đối với Đơn kế thừa, một lớp sẽ thừa kế những thuộc tính của một lớp khác. Nó chất nhận được một lớp con thừa kế những thuộc tính cùng hành vi(method) xuất phát điểm từ một lớp cha.

Điều này sẽ chất nhận được code kĩ năng tái thực hiện code cũng giống như thêm các tính năng mới vào những đoạn code hiện nay có.

Ở ví dụ mặt dưới, Class A là lớp phụ vương và Class B là lớp bé với phần lớn thuộc tính và hành vi của lớp cha.

Trong java thì nhằm kế thừa, dễ dàng là áp dụng từ khóa extend

Class A---Class B extends A ---1.2.Kế thừa kiểu dáng Đa cấp cho (Multilevel Inheritance)

*

Khi một tờ được bắt nguồn từ một lớp nhưng mà cũng là lớp nhỏ (kế thừa từ một lớp khác). Tức là một lớp có tương đối nhiều hơn một cung cấp cha, hình dạng kế thừa đó được gọi là kế thừa kiểu Đa cấp.

Hãy coi sơ đồ, Class B kế thừa những thuộc tính với hành vi của class A, và class C kế thừa các thuộc tính, hành động của Class B. Ở đây, Class A là lớp phụ thân của Class B và Class B là lớp cha của Class C.

Trong trường hợp này, Class C ngầm kế thừa những thuộc tính cùng hành vi của Class A thông qua Class B. Đó đó là kế thừa dạng hình Đa cấp

Cách viết kế thừa kiểu đa cấp trong java tương tự như như đơn kế thừa

Class A---Class B extends A---Class C extends B---1.3. Thừa kế thứ bậc (Hierarchical Inheritance)

*

Khi một lớp có tương đối nhiều hơn một lớp nhỏ hoặc có thể nói rằng là có không ít hơn một lớp con có cùng bình thường một lớp cha, hôm nay loại thừa kế này được gọi là sản phẩm công nghệ bậc (hierarchical).

Hãy coi sơ đồ mặt trên, Class B và Class C là lớp con đang thừa kế chung lớp thân phụ là Class A.

Cùng coi cấu trúng kế thừa thứ bậc trong Java

Class A---Class B extends A---Class C extends A---1.4. Kế thừa lai (Hybrid Inheritance)

*

Kế thừa lai là sự kết hợp của tương đối nhiều loại thừa kế và các cấp kế thừa. Vị đa thừa kế không được hỗ trợ trong Java bởi vì nó dẫn đến việc mơ hồ, phải loại kế thừa này chỉ rất có thể thực hiện nay được thông qua Interface

Hãy coi sơ thứ trên, Class A là lớp phụ thân của Class B và Class C. Trong những khi Class B cùng Class C các là lớp cha của Class D

Như vậy, các bạn đã làm rõ về thừa kế trong xây dựng hướng đối tượng người dùng rồi đúng không? Hãy cùng đưa sang một dạng tư tưởng lập trình hướng đối tượng người dùng khác đó là tính đóng gói (Encapsulation)

2. Tính đóng gói (Encapsulation)

Tính đóng góp gói là 1 trong những cơ chế link dữ liệu với code phổ biến với nhau thành một đơn vị chức năng duy nhất. Nó cũng khá được hiểu với mục tiêu che cất dữ liệu của người tiêu dùng để bảo đảm toàn vẹn dữ liệu từ những sửa đổi bên ngoài.

Điều này có nghĩa là gì?

Cách tốt nhất để phát âm tính đóng gói là quan sát vào viên nang y tế bên dưới. Ở đây, thuốc luôn luôn được an ninh bên trong viên nang.

Tương tự, trải qua việc đóng góp gói, những phương thức và biến của một lớp cũng rất được ẩn với an toàn.

Xem thêm: Dàn Áo Ex 150 Đen Nhám - Full Dàn Áo Exciter 150 2020

*

Chúng ta tiến hành tính gói gọn trong Java bởi cách:

Định nghĩa các biến của lớp với phạm vi là private.Chỉ có thể chấp nhận được truy cập vào những thuộc tính/biến của đối tượng người dùng thông qua hàm getter, setter.

Hãy coi đoạn code dưới để nắm rõ hơn về tính chất đóng gói:

public class Employee private String name; public String getName() return name; public void setName(String name) this.name = name; public static void main(String<> args) // todo

Mình đã tạo thành một Class Employee với thay đổi name gồm phạm vi là private. Tiếp đến mình đang tạo các phương thức getter và setter. Trải qua đó, chúng ta cũng có thể lấy cùng gán giá chỉ trị mang lại cho thương hiệu của một Employee.

Thông qua các phương thức này, ngẫu nhiên lớp nào ao ước truy xuất trở thành name đều cần sử dụng những phương thức getter và setter mà cần yếu được phép truy vấn trực tiếp vào thuộc tính name

3. Tính trừu tượng (Abstraction)

Tính trừu tượng hướng đến unique của các ý tưởng phát minh hơn là những sự kiện. Về cơ bản, tính trừu tượng đề cập tới việc ẩn giỏi hiện những chi tiết quan trọng cho tín đồ dùng.

Hãy tưởng tượng rằng chúng ta có một cuộc gọi, bọn họ chỉ hoàn toàn có thể lựa chọn nhấc thứ hoặc phủ nhận cuộc gọi. Nhưng thực tế, có rất nhiều code chạy ngầm bên dưới. Nên các bạn không thể biết được quá trình xử lý cuộc gọi, đó đó là ưu điểm của tính trừu tượng.

Do đó, tính trừu tượng giúp chúng ta giảm sự phức tạp. Có hai cách tiến hành tính trừu tượng như mặt dưới:

Lớp trừu tượng (Abstract Class)Giao diện (Interface)Lớp trừu tượng (Abstract class)

Lớp trừu tượng vào java chứa từ khóa “abstract”.

Từ khóa abstract là gì? trường hợp một lớp được định nghĩa là trừu tượng nó tất yêu được khởi tạo bởi toán từ “new“, có nghĩa là bạn cần thiết tạo instance xuất phát điểm từ 1 lớp trừu tượng. Ko kể ra, một lớp trừu tượng có thể chứa cách thức trừu tượng hoặc những phương thức bình thường.

Để thực hiện lớp trừu tượng, phải nó bắt buộc được một tờ khác thừa kế và override toàn toàn bộ abstract method .

Giao diện (Interface)

Một Interface vào Java là 1 tập hợp các phương thức trừu tượng (abstract). Một class thực thi một interface, cho nên kế thừa những phương thức abstract của interface.

Một interface ko phải là một lớp. Viết một interface y hệt như viết một lớp, nhưng lại chúng có 2 tư tưởng khác nhau. Một lớp mô tả những thuộc tính và hành vi của một đối tượng. Một interface chứa những hành vi mà một class triển khai.

Cùng nhau khám phá kỹ rộng về Interface bằng ví dụ ‘ParentCar’ và các phương thức liên quan

public interface ParentCar // chuyển đổi số public void changeGear( int newValue); // tăng speed public void speedUp(int increment); // Phanh public void applyBrakes(int decrement);Mọi chiếc oto đều sở hữu những sản phẩm vi này phải không? tuy thế mỗi các loại xe ví dụ lại triển khai khác nhau

Giả sử bạn đang thao tác với ô tô số sàn, nghỉ ngơi đó chúng ta phải tăng từng số từng cung cấp một. Nhưng nếu như khách hàng đang thao tác với một chiếc xe từ động, thì khối hệ thống của các bạn sẽ quyết định cách đổi khác số dựa vào đến tốc độ.

Do đó, ko phải tất cả các lớp con của chính bản thân mình đều có cùng một ngắn gọn xúc tích được viết cho việc thay thay đổi số.

Tương tự với trường vừa lòng tăng tốc. Mang sử các bạn nhấn ga, tốc độ tăng lên10 km hoặc 15km. Tuy vậy giả sử một ai đó sẽ lái một chiếc siêu xe và nhấn ga, tốc độ tăng 30kms hoặc 50kms là chắc. Một đợt nữa logic ráng đổi

Giống như nhấn phanh, một người hoàn toàn có thể có một hệ thống phanh mạnh bạo hoặc không.

Vì tất cả các công dụng đều là common với tất cả các lớp con, nên tôi đã tạo interface ‘ParentCar’ gồm tất các chức năng mà một ôtô đều phải có. Sau đó, từng loại class ôtô rõ ràng sẽ phải tiến hành các hành vi này

public class Audi implements ParentCar int tốc độ = 0; int gear = 1; public void changeGear(int value) gear = value; public void speedUp(int increment) tốc độ = tốc độ + increment; public void applyBrakes(int decrement) tốc độ = speed - decrement; void printStates() System.out.println("speed:" + speed + "gear:" + gear); public static void main(String<> args) // TODO Auto-generated method stub Audi A6 = new Audi(); A6.speedUp(50); A6.printStates(); A6.changeGear(4); A6.SpeedUp(100); A6.printStates();

4. Tính đa hình (Polymorphism)

Đa hình có nghĩa là nhiều hình thức, trong số ấy ‘poly’ có nghĩa là nhiều, còn ‘morph’ tức là hình thức. Đa hình có thể là một biến, một chức năng hoặc một đối tượng được chuyển vào các hình thức.

Nói bí quyết khác, đa hình có thể chấp nhận được bạn quan niệm một đồ họa hoặc một chức năng với rất nhiều cách cài đặt.

Để đọc hơn về đa hình, mình lấy ví dụ như vậy này

*

Cùng để mắt tới kịch phiên bản thế giới thực này vào môn cricket, bọn họ đều hiểu được có một trong những loại fan ném banh không giống nhau (bowler), lấy một ví dụ bowlers nhanh, bowler tốc độ trung bình cùng xoay.

Như các bạn thấy ngơi nghỉ hình bên trên, lớp phụ vương BowlerClass bao gồm 3 lớp con là FastPacer, MediumPacer với Spinner.

Lớp Bower tất cả phương thức bowlingMethod() nơi tất cả các lớp con đều thừa kế phương thức này. Như họ biết, vận tốc một trái banh bánh đã khác so với ném trung bình với ném banh xoáy cũng giống như trong cách chơi và kinh nghiệm tay nghề của fan ném banh,..v.v..

Tương từ bỏ như vậy, việc tiến hành bowling của cách thức bowlingMethod() cũng biến thành khác so với đầy đủ bowler khác. Và tương tự như với class spinner.

Điểm chính ở đàm luận trên đơn giản dễ dàng là cùng một tên nhưng có khá nhiều xử lý khác nhau. Toàn bộ 3 lớp sinh hoạt trên đều kế thừa phương thức bowlingMethod() tuy vậy cách triển khai của từng lớp là hoàn toàn khác nhau

Kết luận

Như vậy là mình đã trình bày ngừng những kỹ năng và kiến thức cơ bạn dạng nhất để bạn hiểu về xây dựng hướng đối tượng người tiêu dùng Java.

Hi vọng, qua bài viết này các bạn sẽ có dòng nhìn toàn vẹn về thiết kế java cũng như lập trình hướng đối tượng. Từ đó dễ dàng tiếp cận nhân loại lập trình bao la.

Đừng quên like và phân tách sẻ bài viết nếu thấy có lợi nhé.

Chờ chút, nếu bạn muốn học lập trình Java ngay hiện nay và đề xuất tìm một lời khuyên răn thì của công ty đây: học lập trình java sống đâu xuất sắc nhất? Có rất cần phải đến trung tâm học lập trình?