Bài học này chúng ta sẽ học Cách tạo một class và object trong lập trình Java hướng đối tượng (Java OOP).
Ví dụ thực tế về cách tạo Class và object trong Lập trình Java
Bài viết này, trước tiên mình sẽ giúp bạn hiểu cơ bản qua các ví dụ thực tế. Biết cách tạo class và object trong Java như thế nào.
1. Class trong Java là gì? Object trong Java bạn đã từng nghe đến chưa?
Các Class và các Object là những thành phần cơ bản của Lập trình hướng đối tượng (OOP).
Thường sẽ có một sự nhầm lẫn giữa các Class và các Object. Trong bài này, mình sẽ cố gắng giúp cho bạn hiểu được.
-
Class là gì? Cách tạo Class trong Java
-
Object là gì? Cách tạo Object trong Java
-
Sự khác biệt giữa Class và Object là gì
-
Các khái niệm của Class và Object
-
Ví dụ về Class và Object trong Java
-
Ví dụ về Class và Object: Phương thức main() bên ngoài class
Class trong Java là gì?
Trong Java một Class là một thực thể xác định đối tượng sẽ có những hành vi nào và những đối tượng sẽ có.
Nói cách khác, class chỉ là một bản kế hoạch hay một bộ chỉ dẫn để xây dựng các đặc điểm của đối tượng cụ thể sau này.
Cách tạo class trong Java:
class <class_name> {
field;
method;
}
Trong đó:
-
class
: Là từ khóa để tạo class
-
<class_name>
: Là tên class bạn định tạo nó sẽ được viết theo quy tắc PascalCase (Viết liên và viết HOA chữ cái đầu tiên của từng từ)
-
field
: Các biến đối tượng
Object trong Java là gì?
Một Object (đối tượng) nó chứa trong đó bao gồm các method (phương thức) và properties (thuộc tính) để tạo ra một kiểu dữ liệu hữu ích.
Object xác định hành vi của class. Khi bạn gửi một thông điệp vào một object, có nghĩa là bạn đang yêu cầu gọi các object hoặc thực hiện một trong những phương thức của nó.
Từ một quan điểm của lập trình hướng đối tượng, một đối tượng có thể là một cấu trúc dữ liệu (data structure), một biến (variable) hoặc một chức năng (function).
Object được phân bổ vị trí bộ nhớ. Các Object được thiết kế như class phân cấp.
Cách tạo Object trong Java:
<class_name> ReferenceVariable = new <class_name>();
Trong đó:
-
<class_name>
: Là kiểu dữ liệu của đối tượng bạn định tạo
-
ReferenceVariable
: Là tên tham chiếu của đối tượng
-
new
: Từ khóa để tạo đối tượng
-
<class_name>()
: Là class mà bạn tạo đối tượng từ nó
2. Điểm khác biệt giữa Class và Object trong Java OOP
Một Class là một Blueprint (kế hoạch) hay Prototype (nguyên mẫu) xác định biến và các phương thức (hay function) chung với tất cả các đối tượng cùng loại.
Một Object (đối tượng) là một cụ thể, thể hiện của một Class.
Các đối tượng thường được dùng để mô tả đối tượng trong thế giới thực mà bạn thấy hàng ngày.
3. Hiểu về khái niệm Class và Object trong Java với ví dụ cụ thể
Hãy lấy một ví dụ về việc phát triển Hệ thống Quản lý Chó.
Bạn sẽ cần nhiều thông tin về những con chó giống như các loài khác nhau của những con chó, tuổi, kích thước....
Bạn cần phải mô hình hóa con chó vào phần mềm.
Mô hình hóa thực thể vào phần mềm
Và câu hỏi là: Làm thế nào để xây dựng một hệ thống như vậy?
Đầu tiên, chúng ta hãy làm một bài tập.
Bạn có thể xem hình ảnh khác nhau ba giống chó bên dưới đây.
3 giống chó khác nhau - Ví dụ về Class và Object trong Java
Bây giờ, ngay tại đây! Hãy liệt kê ra sự khác biệt của chúng
Một số sự khác biệt bạn có thể liệt kê ra có lẽ là:
-
Giống
-
Tuổi
-
Kích cỡ
-
Màu sắc.
Nếu bạn suy nghĩ thêm một phút, sự khác biệt này cũng là đặc điểm chung của những con chó này.
Những đặc điểm (giống, tuổi, kích cỡ, màu) có thể tạo thành một dữ liệu cho các dữ liệu của object (gọi là Data member)
Các đặc điểm khác biệt của giống chó - Data member trong Java
Tiếp theo, hãy liệt kê các hành vi phổ biến trong những con chó này như:
Và đây sẽ là hành động của object trong phần mềm.
Và, đến đoạn này, chúng ta đã xác định được các điều sau đây:
Mô hình hóa giống chó bằng class Dog
Bây giờ, cho các giá trị khác nhau cho data member (giống, kích thước và màu) trong class, bạn sẽ nhận được các object chó khác nhau.
Gán các đặc điểm cho data member để tạo ra các giống chó khác nhau
Bạn có thể thiết kế bất kỳ chương trình nào sử dụng cách tiếp cận của Lập trình hướng đối tượng (OOP)
Trong khi tạo ra một class, bạn phải thực hiện theo nguyên tắc.
5 nguyên tắc khi tạo class trong Java:
-
Single Responsibility Principle (SRP)
-
Open Closed Responsibility (OCP)
-
Liskov Substitution Responsibility (LSR)
-
Interface Segregation Principle (ISP)
-
Dependency Inversion Principle (DIP)
Nếu bạn mới bắt đầu học Java. Hãy để mọi thứ đơn giản nhất.
Bài này thì bạn chỉ cần biết là có 5 nguyên tắc tạo class là được.
4. Ví dụ thực tế về cách tạo Class và Object trong Java
Chúng ta sẽ tạo Class Dog như đã phân tích ở trên:
// Khai báo class
public class Dog {
// Tạo các biến
String breed;
String size;
int age;
String color;
// Phương thức lấy thông tin giống chó
public String getInfo() {
return ("Breed is: "+breed+" Size is: "+size+" Age is: "+age+" Color is: "+color);
}
// Tất cả sẽ được thực thi từ trong hàm Main
public static void main(String[] args) {
// Tạo ra giống 1 con chó giống maltese
Dog maltese = new Dog();
// Gán các đặc điểm cho con chó này
maltese.breed = "Maltese";
maltese.size = "Small";
maltese.age = 2;
maltese.color = "white";
// In ra thông tin con chó maltese
System.out.println(maltese.getInfo());
}
}
Kết quả chúng ta nhận được sẽ là:
Breed is: Maltese Size is: Small Age is: 2 Color is: White
Lưu ý rằng, Chúng ta đã tạo class là Dog
để mô tả các điểm chung về chó.
Tuy nhiên chưa gán giá trị cho nó.
Tiếp nữa là chúng ta tạo một phương thức để lấy thông tin giống chó.
Sau đó, từ class Dog
, chúng ta tạo ra một giống chó mới là maltese
và gán cho nó các đặc điểm đã khai báo trong class Dog
.
5. Ví dụ về Class và Object: Tạo phương thức main() ở class khác
Trong ví dụ trên, chúng ta đang tạo ra phương thức main()
bên trong cùng class.
Bây giờ, chúng ta tạo ra các Class và xác định phương thức main()
ở trong class khác.
Đây là một cách làm tốt hơn so với cách trước:
Lưu tên file là Execute.java
// Tạo class Dog chịu trách nhiệm khai báo
// các biến và phương thức
class Dog {
// Tạo các biến
String breed;
String size;
int age;
String color;
// Phương thức lấy thông tin
public String getInfo() {
return ("Breed is: "+breed+" Size is: "+size+" Age is: "+age+" Color is: "+color);
}
}
// Tạo class mới chỉ chịu trách nhiệm thực thi
public class Execute{
public static void main(String[] args) {
Dog maltese = new Dog();
maltese.breed = "Maltese";
maltese.size = "Small";
maltese.age = 2;
maltese.color = "white";
System.out.println(maltese.getInfo());
}
}
Kết quả chúng ta sẽ nhận được là tương tự như cách làm trên.
Breed is: Maltese Size is: Small Age is: 2 Color is: White
Tuy nhiên ở đây chúng ta đã áp dụng nguyên tắc S khi tạo class là: Mỗi class chỉ chịu một trách nhiệm duy nhất.
-
Class Dog: Chịu trách nhiệm mô hình hóa các giống chó
-
Class Execute: Chị trách nhiệm thực thi, tạo ra giống chó cụ thể
Bạn đã hiểu về Class và Object chưa?
Như vậy, chỉ qua ví dụ tạo ra các giống chó, mình đã giúp bạn hiểu cơ bản về Class trong Java là gì, Object mặt mũi như thế nào, Cách tạo Class trong Java...
-
Class trong Java là một thực thể quyết định làm thế nào một đối tượng sẽ cư xử và những đối tượng sẽ có.
-
Một Object trong Java là một phần trong đó bao gồm phương thức và thuộc tính để làm cho loại dữ liệu đó hữu ích.
-
Một hệ thống class học cho phép chương trình có thể xác định một class mới dựa trên class cha bằng cách sử dụng một kỹ thuật như inheritance, overriding and augmenting.
Chúng ta sẽ liên tục sử dụng Class và Object trong Lập trình Java hướng đối tượng, Java Web. Vì thế bạn sẽ hiểu chúng hơn qua các ví dụ sau này.
> Nếu muốn nắm thật vững về ngôn ngữ Java, hãy tham gia ngay Khóa học Java tại NIIT - ICT Hà Nội.