Xu Hướng 3/2024 # Lập Trình Hướng Đối Tượng(Oops) Trong Java # Top 9 Xem Nhiều

Bạn đang xem bài viết Lập Trình Hướng Đối Tượng(Oops) Trong Java được cập nhật mới nhất tháng 3 năm 2024 trên website 2atlantic.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Khái niệm về lập trình hướng đối tượng trong java

Lập trình hướng đối tượng (OOP-Object-Oriented Programming) là một phương pháp hay mô hình giúp tăng năng suất, đơn giản hóa việc bảo trì, dễ dàng mở rộng trong thiết kế phần mềm bởi việc cung cấp một vài khái niệm như:

Đối tượng (Object)

Lớp (Class)

Kế thừa (Inheritance)

Đa hình (Polymorphism)

Trừu tượng (Abstraction)

Đóng gói (Encapsulation)

Lập trình hướng đối tượng có 4 tính chất:

Đối tượng (Object)

Tất cả những thực thể có trạng thái và hành vi được biết đến như là một đối tượng. Ví dụ: bàn, ghế, bút chì, xe dạp, ô tô…

Lớp (Class)

Tập hợp các đối tượng được gọi là lớp.

Kế thừa (Inheritance)

Khi một đối tượng được truyền lại tất cả các thuộc tính và phương thức của đối tượng cha được gọi là kế thừa. Kế thừa giúp tái sử dụng lại mã nguồn. Nó được sử dụng cho đa hình lúc runtime.

Tìm hiểu thêm về Tính kế thừa (Inheritance) trong java

Đa hình (Polymorphism)

Khi một nhiệm vụ được thực hiện bởi nhiều cách khác nhau, tính chất này được gọi là đa hình. Ví dụ có nhiều các để thuyết phục các khách hàng khác nhau, để vẽ một cái gì đó như hình tròn, hình chữ nhật, …

Trong java, để áp dụng tính đa hình chúng ta sử dụng phương thức orverloading hoặc overriding.

Tìm hiểu thêm về Tính đa hình (Polymorphism) trong java

Trừu tượng (Abstraction)

Trừu tượng là sự ẩn đi những chi tiết bên trong và hiển thị ra các chức năng, tính chất này gọi là trừu tượng. Ví dụ: khi gọi điện thoại chúng ta không biết xử lý nội bộ thế nào, khi đi xe máy cũng vậy, mà chúng ta chỉ biết đến các chức năng thông qua giao tiếp bên ngoài.

Trong java, chúng ta áp dụng tính chất trừu tượng bằng cách sử dụng abstract class và interface.

Tìm hiểu thêm về lớp abstract trong java và interface trong java.

Đóng gói (Encapsulation)

Việc ràng buộc giữa code và data với nhau tạo thành một khối duy nhất được biết đến là đóng gói. Ví dụ: viên thuốc con nhộng được đóng gói với nhiều loại thuốc bên trong.

Một class trong java là một ví dụ về đóng gói. Java bean là một lớp được đóng gói hoàn toàn vì tất cả các dữ liệu thành viên là private.

Tìm hiểu thêm về Tính đóng gói (Encapsulation) trong java.

Thế mạnh của OOPs so với ngôn ngữ lập trình hướng thủ tục

1) Lập trình hướng đối tượng giúp việc phát triển và bảo trì dễ dàng hơn. Trong khi phương pháp lập trình hướng thủ tục là không dẽ dàng quản lý khi code lớn.

2) Lập trình hướng đối tượng có tính năng ẩn dấu thông tin, trong khi hướng thủ tục có thể truy cập dữ liệu toàn cục ở bất kỳ nơi nào

3) Lập trình hướng đối tượng cung cấp khả năng mô phỏng sự kiện thực tế hiệu quả hơn.

Lập Trình Hướng Đối Tượng Trong Java

Bài tập

Bạn hãy tạo ra lớp Student với thông tin giống như sau:

name, address, gpa là 3 thuộc tính chỉ tên, địa chỉ và điểm GPA của lớp Student.

Student(name: String, address: String, gpa: double) là phương thức khởi tạo có tham số dùng để khởi tạo giá trị cho các thuộc tính.

toString() là phương thức ghi đè từ lớp Object (bạn sẽ hiểu tại sao phương thức này lại ghi đè từ lớp Object ở phần lý thuyết), phương thức này sẽ trả về thông tin của đối tượng dưới dạng String. Ví dụ nếu name = "Kien", address = "Ha Noi", gpa = "6.6" thì phương thức toString() sẽ trả về: "Name: Kien, address: Ha Noi, GPA: 6.6".

Chương trình để test lớp Student:

public class Entry { public static void main(String[] args) { Student s = new Student("Kien", "Ha Noi", 6.6); System.out.println(s); } }

Kết quả khi chạy chương trình:

Name: Kien, addres: Ha Noi, GPA: 6.6 Lý thuyết

Bài này sẽ giúp bạn hiểu rõ hơn về lớp Object. Trước hết bạn hãy xem ví dụ sau:

class Student{ } public class Entry { public static void main(String[] args) { Student s = new Student(); System.out.println(s.hashCode()); System.out.println(s.toString()); System.out.println(s.getClass()); } }

Kết quả khi chạy chương trình:

1554547125 [email protected] class OOP.Student

Nhìn vào ví dụ trên chắc bạn sẽ thắc mắc là tại sao lớp Student lại có những phương thức như hashCode(), toString(), getClass() trong khi bạn không khai báo các phương thức này. Lý do là tất cả các lớp trong Java đều được kế thừa từ lớp Object và trong lớp Object có các phương thức này.

Ngoài các phương thức trên, lớp Object còn có một số phương thức khác, trong đó toString() là phương thức dùng để biểu diễn đối tượng dưới dạng xâu ( String). Trong thực tế bạn sẽ sử dụng phương thức toString() rất nhiều. Ví dụ khi bạn gọi hàm System.out.println() với một đối tượng thì chương trình sẽ hiển thị phương thức toString() của đối tượng đó:

public class Student { private String name; private String address; private double gpa; public Student(String name, String address, double gpa) { chúng tôi = name; this.address = address; chúng tôi = gpa; } @Override public String toString() { return "Name: " + name + ", address: " + address + ", GPA: " + gpa; } }

Kết quả khi chạy chương trình:

Name: Kien, age: 23

Có thể thấy, bạn hoàn toàn có thể sử dụng phương thức toString() để thay thế cho phương thức display() mà bạn đã học ở các bài trước.

Đọc tới đây bạn đã hiểu về phương thức toString(), hãy quay lại phần bài tập và làm thử.

Hướng dẫn

Bạn cần tạo ra lớp Student giống như sau:

public class Student { private String name; private String address; private double gpa; public Student(String name, String address, double gpa) { chúng tôi = name; this.address = address; chúng tôi = gpa; } @Override public String toString() { return "Name: " + name + ", address: " + address + ", GPA: " + gpa; } }

Interface Trong Lập Trình Hướng Đối Tượng Java

Dẫn nhập

Ở bài trước, chúng ta đã tìm hiểu về TÍNH TRỪU TƯỢNG trong lập trình hướng đối tượng. Hôm nay, Kteam sẽ giới thiệu cho các bạn về interface để biết về đa kế thừa trong Java.

Nội dung

Để đọc hiểu bài này, tốt nhất các bạn nên có kiến thức cơ bản về các phần sau:

Bài này chúng ta sẽ tìm hiểu những vấn đề sau:

Interface là gì? Tại sao phải sử dụng?

Khai báo và sử dụng interface

Interface là gì? Tại sao phải sử dụng?

Interface là một kiểu dữ liệu tham chiếu trong Java. Nó là tập hợp các phương thức abstract (trừu tượng). Khi một lớp kế thừa interface, thì nó sẽ kế thừa những phương thức abstract của interface đó.

Một số đặc điểm của interface:

Không thể khởi tạo, nên không có phương thức khởi tạo.

Tất cả các phương thức trong interface luôn ở dạng public abstract mà không cần khai báo.

Các thuộc tính trong interface luôn ở dạng public static final mà không cần khai báo, yêu cầu phải có giá trị.

Mục đích của interface là để thay thế đa kế thừa lớp của những ngôn ngữ khác (ví dụ như C++, Python…). Ngoài ra, interface sẽ giúp đồng bộ và thống nhất trong việc phát triển hệ thống trao đổi thông tin.

Khai báo và sử dụng interface Cú pháp:

Bây giờ ta sẽ tạo ra interface IStudy giành riêng cho class Student, ta vẫn tạo file .java như mọi khi và viết chương trình như sau:

interface IStudy { void study(); }

Ta cho class Student kế thừa nó như sau:

public class Student extends Person implements IStudy{

Nếu dùng Eclipse, bạn sẽ thấy IDE yêu cầu override lại phương thức study() của IStudy ngay:

Ta sẽ overriding, thêm đoạn chương trình trong lớp Student như sau:

@Override public void study() {

Một class có thể kế thừa nhiều interface, ta sẽ thử tạo thêm interface ISpeak:

interface ISpeak { void speak(); }

Ta thêm interface ISpeak vào class Student bằng cách sau:

public class Student extends Person implements IStudy, ISpeak{

Hoặc, ta thử thêm ISpeak ở lớp cha Person:

public abstract class Person implements ISpeak{

Bởi vì class Person là lớp ảo, nên Person không cần override phương thức speak(). Ngoài ra, Student là lớp con Person, nên mặc dù Student không kế thừa ISpeak trực tiếp nhưng vẫn phải override phương thức speak(). Ta sẽ thấy Eclipse yêu cầu khai báo:

Ta sẽ hoàn thiện lớp Student như sau:

public class Student extends Person implements IStudy{ public String universityName; public Student(String name, int age, float height, String universityName) { super(name, age, height); this.universityName = universityName; } public void getInfo() { super.getInfo(); System.out.println("University Name:"+this.universityName); } @Override public Object clone() { Student other = new Student(this.name, this.getAge(), this.height, this.universityName); return other; } @Override public void study() { Kết

Như vậy chúng ta đã tìm hiểu interface trong lập trình hướng đối tượng

Ở bài sau, Kteam sẽ giới thiệu đến bạn về PHƯƠNG THỨC MAIN TRONG JAVA

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện chúng tôi để nhận được sự hỗ trợ từ cộng đồng.

Lập Trình Hướng Đối Tượng Oop Với Php

OOP – Khái niệm về lập trình hướng đối tượng Hướng đối tượng là gì?

OOP – lập trình hướng đối tượng không chỉ sử dụng các cú pháp viết code mới mà nó làm bạn thay đổi cách nghĩ về một vấn đề bài toán đặt ra. Rất nhiều lập trình viên mắc lỗi khi ứng dụng một cách không thích hợp lý thuyết về lập trình hướng đối tượng. Việc lập trình ứng dụng quen thuộc thực hiện theo một quy trình có thể bạn đã bết ví dụ: Một người dùng nhập thông tin vào HMTL form; Mã PHP sẽ kiểm tra dữ liệu đó; gửi dữ liệu đó bằng email; lưu trữ dữ liệu đó vào database … vân vân …, ở quy trình đó ta thấy nó biểu thị bởi các động từ đơn giản (hành động) như: kiểm tra, gửi mail, lưu trữ … và các danh từ như dữ liệu. Với lập trình hướng thủ tục thì việc lập trình tập trung vào các động từ: làm điều gì đó, sau đó làm gì đó, làm gì đó … Với lập trình hướng đối tượng thì nó lại tập trung trên các danh từ: cái gì giúp cho ứng dụng hoạt động.

Một cách tương đối, bạn cần xác định các động từ, danh từ cần thiết cho ứng dụng. Dựa trên so sánh của hai tập hợp này mà chọn cho mình mô hình thiết kế ứng dụng sao cho phù hợp là dựa trên hướng đối tượng hay hướng thủ tục

Một vài khái niệm cơ sở về OOP class và object

Hai khái niệm quan trọng nhất trong OOP là lớp(class) và đối tượng (object). Một lớp class là định nghĩa về đối sự việc tổng quát. Còn một đối tượng object là một triển khai cụ thể về điều được định nghĩa bởi class. Để lập trình theo OOP, bạn phải thiết kế ra các class và triển khai (ứng dụng) chúng để sinh ra các đối tượng cần thiết.

Module hóa ứng dụng Trừu tượng hóa abstract Tính đóng gói

Đóng gói cũng là một khái niệm cơ sở của OOP, có nghĩa là cách hoạt động sao cho có kết quả yêu cầu/cách thay đổi trạng thái của đối tượng sẽ không cần biết bởi đối tượng sử dụng. Có nghĩa nó là một hộp đen, không cần biết bên trong hoạt động ra sao mà chỉ quan tâm kết quả phản ứng của hộp đen đó với các yêu cầu.

Tạo class (lớp)

Để tạo ra một lớp bạn sử dụng từ khóa class tiếp theo là tên class, toàn bộ nội dung class định nghĩa trong cặp {}

<?php class MyClass { }

Sau khi có được định nghĩa lớp như vậy, việc tạo ra một đối tượng của lớp thì dùng toán tử new: $obj = new MyClass;, để xem nội dung class có thể dùng var_dump

Bạn ghi đoạn code sau vào file ví dụ chúng tôi và chạy thử

<?php class MyClass { } $obj = new MyClass; var_dump($obj); Các thuộc tính, phương thức là thành viên của lớp

Bên trong class có biến và hàm được gọi với tên là thuộc tính của lớp, phương thức của lớp. Toàn bộ tập hợp các thuộc tính và phương thức của lớp được gọi là thành viên ( member) của lớp.

Các phương thức được định nghĩa, khai báo bên trong lóp giống như cách khai bảo một hàm bên ngoài thông thường, nó có thể trả về giá trị, nó có thể có tham số, tham số mặc định ...Ví dụ sau định nghĩa hàm functionName trong lớp.

class ClassName { function functionName() { } }

Lưu ý, với hàm trong lớp (phương thức) khi định nghĩa thì nó thường bắt đầu bằng các từ xác định phạm vi truy cập ( visibility bạn sẽ tìm hiểu kỹ hơn ở phần kế thừa) với các từ khóa: public, private hoặc protected nếu khi định nghĩa hàm không chỉ ra một trong các từ khóa này thì phương thức đó được hiểu là public

Một thành viên lớp (method và thuộc tính), có các khả năng truy cập khi định nghĩa như sau:

public thành viên này có thể truy cập ở bất kỳ đâu

private chỉ có thể truy cập từ chính lớp định nghĩa ra thành viên

protected chỉ có thể truy cập từ chính lớp định nghĩa ra thành viên và các lớp kế thừa nó

Định nghĩa các thuộc tính (biến) của lớp giống với định nghĩa biến thông thường nhưng có kèm theo tiền tố là các từ khóa xác định phạm vi truy cập. Ví dụ sau định nghĩa lớp có thuộc tính và phương thức sử dụng các từ khóa định nghĩa phạm vi truy cập:

<?php class User { public $name = "User Name"; private $age; private $info; public function setAge($name, $age) { } protected function processInfomation() { } } <?php class User { public $name = "User Name"; private $age; private $info; public function setAge($name, $age) { } protected function processInfomation() { } public function getInfo() { } } $user = new User(); Hàm tạo

Hàm tạo là loại hàm đặc biệt trong lớp, sự khác biệt của nó với các hàm thông thường ở 3 điểm:

Tên của hàm luôn là __construct

Hàm này luôn được tự động chạy khi đối tượng được tạo ra

Nó không thể có câu lệnh return để trả về giá trị hàm

Hàm tạo là nơi thích hợp để khởi tạo các tham số cho lớp, thi hành các tác vụ ban đầu khi đối được tạo ra. Hàm tạo cũng chứa tham số như các hàm thông thường khác.

<? class bookdef { protected $price; protected $title; function __construct( $title, $price ){ } public function getTitle() { } } $vatly = new bookdef("VAT LY LOP 10",20000); $toan = new bookdef("TOAN 10",30000); Tính kế thừa

Khi định nghĩa các lớp (lớp con) bạn có thể cho lớp đó kế thừa các đặc tính từ một lớp khác (gọi là lớp cha) bằng từ khóa extends.

class Child extends Parent { }

Khi định nghĩa lớp như vậy

Lớp con sẽ có tất cả các thành viên biến (thuộc tính) khai báo trong lớp cha

Lớp con sẽ có tất cả các thành viên hàm giống lớp cha, mặc định những hàm này làm việc giống với cách làm việc của lớp cha

Trong lớp con có thể thêm các thuộc tính riêng, các phương thức riêng hoặc định nghĩa lại (quá tải) phương thức cha

Quá tải hàm là định nghĩa hàm trùng tên với hàm của lớp cha, mục đích chính là định nghĩa lại hàm nào đó quả lớp cha. Ví dụ dưới là hàm play

Ví dụ tạo lớp cha Pet và lớp con Dog và Cat kế thừa từ Pet

<? class Pet { public $name; function __construct($pet_name) { } function eat() { } function sleep() { } function play() { } } class Cat extends Pet { function play() { } } class Dog extends Pet { function play() { } } $dog = new Dog('Satchel'); $cat = new Cat('Bucky'); $pet = new Pet('Rob'); Giao diện - Interface

Interface nó cung cấp tên các hàm chung để triển khai mã. Có thể nói interface (giao diện) là bộ khung mẫu để triển khai mã.

Để tạo ra interface cách tạo tương tự như class với keyword là interface và phần thân các phương thức không phải định nghĩa. Tất cả các phương thức trong interface là public

Ví dụ về tạo một interface

<?php interface ILogger { public function log($message); }

Như vậy bạn thấy interface chỉ có tên interface và tên các phương thức. Giờ một lớp triển khai mã theo giao diện này sẽ định nghĩa lớp với cách sử dụng từ khóa implements

<?php class ClassName implements InterfaceName1, InterfaceName2 { }

Khi lớp triển khai theo giao diện nào thì tất cả các hàm của giao diện đó lớp phải định nghĩa code đầy đủ. Ví dụ triển khai giao diện ILogger

<?php class FileLogger implements ILogger{ public function log($message){ echo sprintf("Log %s to the filen",$message); } } class DBLogger implements ILogger{ public function log($message){ echo sprintf("Log %s to the databasen",$message); } } Lớp trừu tượng

Phương thức trừu tượng(hàm) là hàm khai báo với từ khóa abstract, nó chỉ là tên phương thức không chứa mã triển khai. Hàm khai báo như sau:

abstract public function abstractMethod();

Khi một lớp có ít nhất một hàm trừu tượng thì lớp đó được gọi là lớp trừu tượng và trong khai báo lớp cũng chỉ ra từ khóa abstract

<?php abstract class abstractClass{ abstract public function abstractMethod(); }

Lớp trừu tượng trong PHP được dùng như một lớp mẫu, không được sử dụng trực tiếp mà phải triển khai kế thừa lớp trừu tượng và định nghĩa lại các hàm trừu tượng.

Ví dụ về lớp trừu tượng:

<?php abstract class Person{ protected $firstName; protected $lastName; public function __construct($firstName,$lastName){ } public function __toString(){ } abstract public function getSalary(); }

Với lớp trừu tượng Person trên nếu dùng khởi tạo trực tiếp lớp như sau sẽ lỗi:

$p = new Person('John','Doe');

Để sử dụng đúng, cần kế thừa lớp trừu tượng và định nghĩa lại hàm trừu tượng cần thiết:

<?php class Employee extends Person{ private $salary; public function __construct($firstName,$lastName,$salary){ parent::__construct($firstName, $lastName); } public function getSalary(){ return $salary; } } $e = new Employee('John','Doe',5000); echo $e;

Khái Niệm Hướng Đối Tượng Oop Trong Java

[Khái niệm hướng đối tượng OOP trong Java] Chương này, chúng ta sẽ tìm hiểu các khái niệm cơ bản về Hướng đối tượng (OOP). Lập trình hướng đối tượng bao gồm nhiều khái niệm như tính kế thừa, gắn kết dữ liệu (Data Binding), tính đa hình, …

Simula được xem như là ngôn ngữ lập trình hướng đối tượng đầu tiên. Là một hệ lập trình mà ở đó mọi thứ được biểu diễn dưới dạng một đối tượng, và được biết đến như là ngôn ngữ hướng đối tượng thực sự. Tuy nhiên, Smalltalk mới được xem như là ngôn ngữ lập trình hướng đối tượng thực sự đầu tiên.

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

Object (đối tượng) nghĩa là một thực thể trong thế giới thực, chẳng hạn như bàn, quả bóng, con bò, … Lập trình hướng đối tượng là một phương pháp để thiết kế một chương trình bởi sử dụng các lớp và các đối tượng. Nó làm đơn giản hóa việc duy trì và phát triển phần mềm bằng việc cung cấp một số khái niệm:

Đối tượng: Một thực thể có trạng thái và hành vi. Ví dụ như xe đạp, bàn, ghế, … Nó có thể mang tính vật lý hoặc logic.

Lớp: Một tập hợp các đối tượng. Nó là một thực thể logic.

Tính kế thừa: Khi một đối tượng đạt được các thuộc tính và các hành vi của đối tượng cha, thì đó là tính kế thừa. Điều này làm tăng tính tái sử dụng cho code. Nó được sử dụng để đạt được tính đa hình tại runtime.

Tính đa hình: Khi một tác vụ được thực hiện theo nhiều cách khác nhau được gọi là tính đa hình. Ví dụ: như vẽ hình chữ nhật hoặc hình tam giác, … Trong Java, chúng ta sử dụng nạp chồng phương thức (method overloading) và ghi đè phương thức (method overriding) để có tính đa hình. Một ví dụ khác: con mèo kêu meooo, còn chú chó thì sủa goooo.

Tính trừu tượng: Đó là ẩn các chi tiết nội tại và hiển thị tính năng. Ví dụ, với cuộc gọi điện thoại, chúng ta không biết tiến trình xử lý nội tại là như thế nào. Trong Java, chúng là sử dụng lớp abstract và abstract interface để có tính trừu tượng.

Tính bao đóng: Đó là gắn kết code và dữ liệu cùng với nhau vào trong một đơn vị unit đơn. Ví dụ: có thể bạn đã biết đến viên thuốc con nhộng (hay đơn giản hơn là gói bột giặt), các viên thuốc (hạt bột giặt) khác nhau được đóng gói.

Một lớp Java là một ví dụ về tính bao đóng. Java Bean là lớp bao đóng thực sự, vì tất cả thành viên dữ liệu là private.

Lợi thế của OOP khi so với ngôn ngữ lập trình hướng thủ tục (procedure-oriented)

OOP giúp việc thiết kế, phát triển và bảo trì dễ dàng hơn trong khi với lập trình hướng thủ tục thì việc quản lý code là khá khó khăn nếu lượng code tăng lên. Điều này làm tăng hiệu quả có quá trình phát triển phần mềm.

OOP cung cấp Data Hiding (ẩn dữ liệu) trong khi đó trong hướng thủ tục một dữ liệu toàn cục có thể được truy cập từ bất cứ đâu.

OOP cung cấp cho bạn khả năng để mô phỏng các sự kiện trong thế giới thực một cách hiệu quả hơn. Chúng ta có thể cung cấp giải pháp cho các vấn đề trong thế giới thực nếu chúng ta sử dụng Lập trình hướng đối tượng.

Điểm khác nhau giữa OOP và OBP (Object-base programming)

Lập trình dựa trên đối tượng có tất cả đặc điểm của OOP ngoại trừ tính kế thừa. JavaScript và VBScript là các ví dụ về các ngôn ngữ lập trình dựa trên đối tượng.

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile…. mới nhất của chúng tôi.

Bài học Java phổ biến tại vietjack.com:

Khái Niệm Hướng Đối Tượng (Oop) Trong Java

[Khái niệm hướng đối tượng OOP trong Java] Chương này, chúng ta sẽ tìm hiểu các khái niệm cơ bản về Hướng đối tượng (OOP). Lập trình hướng đối tượng bao gồm nhiều khái niệm như tính kế thừa, gắn kết dữ liệu (Data Binding), tính đa hình, …

Simula được xem như là ngôn ngữ lập trình hướng đối tượng đầu tiên. Là một hệ lập trình mà ở đó mọi thứ được biểu diễn dưới dạng một đối tượng, và được biết đến như là ngôn ngữ hướng đối tượng thực sự. Tuy nhiên, Smalltalk mới được xem như là ngôn ngữ lập trình hướng đối tượng thực sự đầu tiên.

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

Object (đối tượng) nghĩa là một thực thể trong thế giới thực, chẳng hạn như bàn, quả bóng, con bò, … Lập trình hướng đối tượng là một phương pháp để thiết kế một chương trình bởi sử dụng các lớp và các đối tượng. Nó làm đơn giản hóa việc duy trì và phát triển phần mềm bằng việc cung cấp một số khái niệm:

Đối tượng: Một thực thể có trạng thái và hành vi. Ví dụ như xe đạp, bàn, ghế, … Nó có thể mang tính vật lý hoặc logic.

Lớp: Một tập hợp các đối tượng. Nó là một thực thể logic.

Tính kế thừa: Khi một đối tượng đạt được các thuộc tính và các hành vi của đối tượng cha, thì đó là tính kế thừa. Điều này làm tăng tính tái sử dụng cho code. Nó được sử dụng để đạt được tính đa hình tại runtime.

Tính đa hình: Khi một tác vụ được thực hiện theo nhiều cách khác nhau được gọi là tính đa hình. Ví dụ: như vẽ hình chữ nhật hoặc hình tam giác, … Trong Java, chúng ta sử dụng nạp chồng phương thức (method overloading) và ghi đè phương thức (method overriding) để có tính đa hình. Một ví dụ khác: con mèo kêu meooo, còn chú chó thì sủa goooo.

Tính trừu tượng: Đó là ẩn các chi tiết nội tại và hiển thị tính năng. Ví dụ, với cuộc gọi điện thoại, chúng ta không biết tiến trình xử lý nội tại là như thế nào. Trong Java, chúng là sử dụng lớp abstract và abstract interface để có tính trừu tượng.

Tính bao đóng: Đó là gắn kết code và dữ liệu cùng với nhau vào trong một đơn vị unit đơn. Ví dụ: có thể bạn đã biết đến viên thuốc con nhộng (hay đơn giản hơn là gói bột giặt), các viên thuốc (hạt bột giặt) khác nhau được đóng gói.

Một lớp Java là một ví dụ về tính bao đóng. Java Bean là lớp bao đóng thực sự, vì tất cả thành viên dữ liệu là private.

Lợi thế của OOP khi so với ngôn ngữ lập trình hướng thủ tục (procedure-oriented)

OOP giúp việc thiết kế, phát triển và bảo trì dễ dàng hơn trong khi với lập trình hướng thủ tục thì việc quản lý code là khá khó khăn nếu lượng code tăng lên. Điều này làm tăng hiệu quả có quá trình phát triển phần mềm.

OOP cung cấp Data Hiding (ẩn dữ liệu) trong khi đó trong hướng thủ tục một dữ liệu toàn cục có thể được truy cập từ bất cứ đâu.

Lập trình hướng đối tượng cung cấp cho bạn khả năng để mô phỏng các sự kiện trong thế giới thực một cách hiệu quả hơn. Chúng ta có thể cung cấp giải pháp cho các vấn đề trong thế giới thực nếu chúng ta sử dụng Lập trình hướng đối tượng.

Điểm khác nhau giữa OOP và OBP (Object-base programming)

Lập trình dựa trên đối tượng có tất cả đặc điểm của OOP ngoại trừ tính kế thừa. JavaScript và VBScript là các ví dụ về các ngôn ngữ lập trình dựa trên đối tượng.

Cập nhật thông tin chi tiết về Lập Trình Hướng Đối Tượng(Oops) Trong Java trên website 2atlantic.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!