Học lập trình hướng đối tượng java

     

Trong nội dung bài viết này, bản thân sẽ nói về các quan niệm lập trình phía đối tượng vào Java. Cũng chính vì Java như là một hình mẫu lý tưởng đến triết lý lập trình phía đối tượng.

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

Vậy lập trình sẵn hướng đối tượng người dùng là gì? Đó đó là một kiểu dáng lập trình với các khái niệm như Lớp (Class), Đối tượng (Object), kế thừa (Inheritance), tính đóng gói (Encapsulation), Trừu tượng (Abstraction), Đa hình (Polymorphism) điện thoại tư vấn tắt là OOP.

Phần lớn các ngôn ngữ lập trình hệt như Java, C++, C#, Ruby… gần như theo mô hình lập trình hướng đối tượng.

Qua bài viết này, bọn họ sẽ hiểu rõ bản chất các khái niệm chủ yếu của lập trình hướng đối tượng người dùng Java qua 4 đặc thù 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, chúng ta sẽ lướt qua thiết kế hướng đối tượng người tiêu dùng là gì sẽ nhé!


Nội dung chủ yếu của bài bác viết

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

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

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

Khi sử dụng OOP, bọn họ sẽ định nghĩa các class để mô hình hóa các đối tượng người sử dụng thực tế. Vào ứng dụng những class sẽ tiến hành khởi sinh sản thành các instance. Vào suốt thời gian ứng dụng chạy, những phương thức (method) của đối tượng người sử dụng này sẽ tiến hành gọi.

Trong thế giới thực, đối tượng người dùng là phần nhiều thực thể tồn tại có trạng thái và 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 giữa những khuôn mẫu phát triển phần mềm, nhất là các phần mềm cho doanh nghiệp.

#Ưu điểm của OOP

Do lập trình hướng đối tượng người tiêu dùng ra đời sau này, cho nên nó kế thừa cùng khắc phục được phần lớn nhược điểm của các quy mô lập trình trước đó.

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

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

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

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

Chúng ta hãy ban đầu với khái niệm đầu tiên 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 thiết kế theo hiệ tượng là tất cả mọi thứ đa số được xem như là đối tượng và ảnh hưởng với những đối tượng khác.

Tính kế thừa là 1 khái niệm được hiểu hầu hết 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 chúng ta có thể sử dụng lại code và tùy chỉnh cấu hình một mối quan hệ giữa những class không giống nhau.

*

Như bọn họ thấy nghỉ ngơi hình trên, một đứa con trẻ kế thừa các thuộc tính của cha cậu ấy. Tương tự, trong Java, bọn họ sẽ gồm 2 class như bên dưới:

Lớp phụ thân còn được gọi là Lớp cực kỳ cấp, Lớp cửa hàng (Parent class hoặc Super class tuyệt Base class)Lớp nhỏ 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 thừa kế những ở trong tính được biết đến là 1 trong Sub class trong lúc một lớp có những thuộc tính được kế thừa được gọi là Parent class.

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

*

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

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

*

Đối với Đơn kế thừa, một tờ sẽ thừa kế những trực thuộc tính của một tờ khác. Nó được cho phép một lớp con kế thừa những nằm trong tính với hành vi(method) xuất phát từ 1 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 vượt trội vào những đoạn code hiện nay có.

Ở ví dụ mặt dưới, Class A là lớp thân phụ và Class B là lớp nhỏ với hầu hết thuộc tính cùng hành vi của lớp cha.

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

Class A---Class B extends A ---1.2.Kế thừa thứ hạng Đa cấp cho (Multilevel Inheritance)

*

Khi một lớp được xuất phát điểm từ một lớp mà cũng là lớp bé (kế thừa từ một lớp khác). Có nghĩa là một lớp có rất nhiều hơn một cấp cho cha, hình dáng kế thừa này được gọi là kế thừa kiểu Đa cấp.

Hãy coi sơ đồ, Class B kế thừa các thuộc tính với hành vi của class A, với 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ụ vương của Class B và Class B là lớp phụ vương của Class C.

Trong trường vừa lòng này, Class C ngầm kế thừa các thuộc tính với hành vi của Class A trải qua Class B. Đó chính là kế thừa giao diện Đa cấp

Cách viết thừa kế kiểu đa cấp cho trong java cũng như như đối chọi kế thừa

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

*

Khi một lớp có khá nhiều hơn một lớp con hoặc nói theo cách khác là có tương đối nhiều hơn một tấm con bao gồm cùng tầm thường một lớp cha, lúc này loại kế thừa này được điện thoại tư vấn là sản phẩm bậc (hierarchical).

Hãy xem sơ đồ mặt trên, Class B and Class C là lớp nhỏ đang kế thừa chung lớp cha là Class A.

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

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

*

Kế quá lai là sự việc kết hợp của khá nhiều loại kế thừa và những cấp kế thừa. Vì chưng đa kế thừa không được cung cấp trong Java chính vì nó dẫn tới việc mơ hồ, phải loại thừa kế này chỉ hoàn toàn có thể thực hiện được thông qua Interface

Hãy coi sơ thiết bị trên, Class A là lớp phụ thân của Class B cùng Class C. Trong khi Class B với Class C hầu như là lớp thân phụ của Class D

Như vậy, bạn đã hiểu rõ về thừa kế trong thiết kế hướng đối tượng người dùng rồi đúng không? Hãy cùng chuyển sang một dạng quan niệm lập trình hướng đối tượng khác sẽ là tính đóng gói (Encapsulation)

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

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

Điều này tức là gì?

Cách rất tốt để gọi tính gói gọn là nhìn vào viên nang y tế bên dưới. Ở đây, thuốc luôn được bình an bên vào viên nang.

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

Xem thêm: Ý Nghĩa Hoa Xuyến Chi Và Cúc Họa Mi, Bạn Hiểu Gì Về Hoa Cúc Tana

*

Chúng ta triển khai tính đóng gói trong Java bằng cách:

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

Hãy coi đoạn code bên dưới để làm rõ hơn về tính đó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 nên một Class Employee với đổi mới name gồm phạm vi là private. Tiếp nối mình sẽ tạo những phương thức getter và setter. Trải qua đó, chúng ta cũng có thể lấy cùng gán giá bán trị mang lại cho tên của một Employee.

Thông qua những phương thức này, bất kỳ lớp nào mong muốn truy xuất đổi thay name đều bắt buộc sử dụng các phương thức getter cùng setter mà quan yếu được phép truy cập 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 phía đến chất lượng của các phát minh hơn là các sự kiện. Về cơ bản, tính trừu tượng đề cập tới sự việc ẩn tuyệt hiện các chi tiết cần thiết cho bạn dùng.

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

Do đó, tính trừu tượng giúp họ giảm sự phức tạp. Có nhì 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ì? ví như một lớp được quan niệm là trừu tượng nó cấp thiết được khởi tạo bằng toán từ bỏ “new“, tức là bạn không thể tạo instance xuất phát từ một lớp trừu tượng. Ngoại trừ ra, một lớp trừu tượng có thể chứa thủ tục trừu tượng hoặc các phương thức bình thường.

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

Giao diện (Interface)

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

Một interface không phải là một trong những lớp. Viết một interface giống như viết một lớp, dẫu vậy chúng gồm 2 khái niệm khác nhau. Một lớp mô tả các thuộc tính với hành vi của một đối tượng. Một interface chứa các hành vi mà một class triển khai.

Cùng nhau tò mò kỹ rộng về Interface bằng ví dụ ‘ParentCar’ và những 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 loại oto đều phải sở hữu những mặt hàng vi này nên không? nhưng mỗi loại xe rõ ràng lại triển khai khác nhau

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

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

Tương trường đoản cú với trường thích hợp tăng tốc. Trả sử các bạn nhấn ga, tốc độ tăng lên10 km hoặc 15km. Dẫu vậy giả sử một ai đó đã lái một chiếc xế hộp và nhận ga, vận tốc tăng 30kms hoặc 50kms là chắc. Một đợt nữa logic núm đổi

Giống như nhấn phanh, một người rất có thể có một hệ thống phanh khỏe mạnh hoặc không.

Vì toàn bộ 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’ tất cả tất các chức năng mà một ô-tô đều cần có. Sau đó, từng một số loại class ôtô ví dụ sẽ phải thực hiện các hành động 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 độ = speed + 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 nhiều hình (Polymorphism)

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

Nói phương pháp khác, đa hình có thể chấp nhận được bạn định nghĩa một đồ họa hoặc một công dụng với vô số cách cài đặt.

Để gọi 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 bản thế giới thực này trong môn cricket, họ đều biết rằng có một vài loại tín đồ ném banh khác biệt (bowler), lấy ví dụ như bowlers nhanh, bowler vận tốc trung bình cùng xoay.

Như chúng ta thấy nghỉ ngơi hình bên trên, lớp phụ vương BowlerClass có 3 lớp nhỏ là FastPacer, MediumPacer cùng Spinner.

Lớp Bower tất cả phương thức bowlingMethod() nơi toàn bộ các lớp nhỏ đều thừa kế phương thức này. Như họ biết, tốc độ một trái banh bánh vẫn khác đối với ném trung bình với ném banh xoáy tương tự như trong cách chơi và kinh nghiệm của tín đồ ném banh,..v.v..

Tương tự như vậy, việc tiến hành bowling của cách làm bowlingMethod() cũng sẽ khác so với hồ hết bowler khác. Và cũng tương tự với class spinner.

Điểm thiết yếu ở bàn bạc trê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 làm việc trên đều thừa kế phương thức bowlingMethod() nhưng mà cách thực hiện 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 dứt những kỹ năng cơ bản nhất để chúng ta hiểu về lập trình sẵn hướng đối tượng người sử dụng Java.

Hi vọng, qua nội dung bài viết này các bạn sẽ có chiếc nhìn toàn vẹn về xây dựng java cũng tương tự lập trình phía đối tượng. Từ đó tiện lợi tiếp cận nhân loại lập trình bao la.

Xem thêm: Sơ Đồ Chu Trình Nitơ Trong Tự Nhiên, Chu Trình Nitơ Là Gì

Đừng quên lượt thích và phân chia sẻ nội dung bài viết nếu thấy hữu dụng nhé.

Chờ chút, nếu bạn có nhu cầu học thiết kế Java ngay hiện nay và yêu cầu tìm một lời khuyên nhủ thì của doanh nghiệp đây: học lập trình java ở đâu giỏi nhất? Có cần được đến trung trung tâm học lập trình?