Chào các bạn đã đến với chủ đề tiếp theo của mình. Ở những chủ đề trước, mình đã giới thiệu qua cách code cơ bản trên Java. Hôm nay, mình sẽ chuyển sang phần quan trọng nhất là lập trình hướng đối tượng, đây là yêu cầu quan trọng đối với lập trình viên hiện giờ. Ở bài này, mình sẽ đi qua những nội dung như sau:
Nội dung
1. Lập trình hướng đối tượng (OOP) là gì?
Trong những bài viết trước đây, chúng ta viết chương trình bằng cách viết toàn bộ code vào chương trình main duy nhất và chạy, và ta tự định nghĩa các biến theo suy nghĩ cá nhân. Ví dụ như topic trước đây, ta tự định nghĩa các biến lưu thông tin con người như sau:
public class LapTrinhHuongDoiTuong {
public static void main(String[] args) {
String name;
float height;
int age;
name = "phuong le";
height = 1.7f;
age = 21;
System.out.println(name);
System.out.println(height);
System.out.println(age);
}
}
Như trên, việc định nghĩa biến name, height và age là do cá nhân người viết lúc đó tự định nghĩa ra. Về cốt lõi chương trình, khó mà nhận biết được mối liên quan các biến trên, giả sử trong 1 chương trình có lưu thông tin đến 3-4 người, như vậy ta phải tăng số lượng biến lưu thông tin gấp 3-4 lần, khó mà đảm bảo được biến nào lưu thông tin cho đối tượng nào. Chưa kể, trong một dự án với nhiều người, việc tự định nghĩa lập trình theo cá nhân sẽ ảnh hưởng đến cách làm việc của tập thể.
Việc lập trình như vậy ta cần phải gom lại trực quan hơn, để mô tả trung thực hệ thống. Ta sẽ quy lại thành một đối tượng, như ví dụ trên: Việc các 3 biến name, heigth, age là lưu thông tin của một người, ta sẽ tạo ra một đối tượng là con người và trong đối tượng đó sẽ có thông tin 3 biến trên.
2. Những khái niệm cơ bản của lập trình hướng đối tượng
2.1. Đối tượng (Object)
Đối tượng ở đây ta thể hiểu như khái niệm bên ngoài: Con người, Xe máy, Nhà cửa…
Trong một đối tượng sẽ bao gồm 2 thông tin: thuộc tính và phương thức.
- Thuộc tính: là những thông tin của đối tượng. Ví dụ: con người có họ tên, chiều cao, độ tuổi,…
- Phương thức: là những thao tác, hành động mà đối tượng đó có thể thực hiện. Ví dụ: con người có những hành động ăn, ngủ, đi lại,…
2.2. Lớp (Class)
Lớp chính là định nghĩa của đối tượng, ta sẽ xây dựng lớp để tạo ra những đối tượng khác nhau. Ví dụ như: Bạn Nguyễn Văn A và Lê Văn B đều là con người, mà con người thì đều có tên, tuổi, chiều cao,.. tuy nhiên thông tin lại khác nhau như ngoài tên, bạn A 20 tuổi còn bạn B 22 tuổi. Như vậy con người chính là lớp, Nguyễn Văn A và Lê Văn B là đối tượng.
3. Hướng đối tượng trong Java
Bản chất Java là ngôn ngữ thuần hướng đối tượng, vì vậy đây là ngôn ngữ bậc cao nên việc học lập trình ngay từ đầu bạn sẽ thấy khó hiểu với những từ khóa class, new, …
Bây giờ, mình sẽ ví dụ qua cách chuyển đoạn code trên thành đoạn code hướng đối tượng. Các bài sau sẽ giải thích sâu hơn:
Đầu tiên ta sẽ khai báo một lớp là con người, trong con người có những thuộc tính là tên, chiều cao và tuổi: Ta sẽ tạo một file class .java lưu riêng:
Sau khi tạo xong, ta khai báo các thuộc tính lớp Person như sau:
public class Person {
String name;
int age;
float height;
}
Tiếp theo, ta sẽ tạo một đối tượng từ lớp con người và cung cấp thông tin cho nó: Ta sẽ dùng cú pháp Person a = new Person(); có nghĩa là tạo đối tượng a thuộc lớp con người.
Ta sẽ cung cấp thông tin cho các thuộc tính bằng cú pháp:
<đối tượng>.<thuộc tính> = <giá trị>;
public class MainClass {
public static void main(String[] args) {
Person a = new Person();
a.name = "phuong le";
a.age = 21;
a.height = 1.7f;
System.out.println(a.name);
System.out.println(a.height);
System.out.println(a.age);
}
}
Như vậy, với cách này ta dễ dàng quản lý chương trình hơn vì ta biết rõ thông tin nào thuộc đối tượng nào. Như bạn đối tượng a có tên gì, chiều cao và độ tuổi bao nhiêu; và giả sử có đối tượng b thì khó nhầm lẫn thông tin với đối tượng a được.
4. Kết
Như vậy chúng ta đã tìm hiểu lập trình hướng đối tượng trong java. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.