<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à:
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)
Tìm hiểu thêm về SOLID trong Java
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:
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à <class_name>`0 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 `<class_name>`2 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 `<class_name>`2 ở 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à `<class_name>`4
// 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.
Đâu là sự khác nhau giữa đối tượng và lớp?
Lớp là một nhóm đối tượng có các đặc điểm tương tự nhau. Đối tượng là một thực thể trong thế giới thực như bút, laptop,… Một lớp chỉ cần được khai báo một lần. Đối tượng có thể được tạo ra nhiều lần theo yêu cầu.
Trong Java lớp và đối tượng khác nhau như thế nào?
Định nghĩa lớp mô tả về các thành phần mà mỗi thực thể của nó sẽ chứa, cụ thể là dữ liệu của mỗi thực thể và các phương thức cho phép truy cập và sửa đổi dữ liệu đó. Một lớp không phải là một đối tượng, nó là một "cái khuôn" dùng để tạo nên đối tượng. Nó mô tả cách tạo một đối tượng thuộc kiểu cụ thể đó.
Khi sử dụng từ khóa new để tạo một đối tượng nó được tạo ra ở đâu?
Từ khóa new được sử dụng để cấp phát bộ nhớ cho đối tượng. Nói rõ hơn đó là: Lúc ta định nghĩa ra một đối tượng, chúng ta chỉ mới tạo ra nó trong "kế hoạch", trong "tưởng tượng".
Đối tượng object được xem như thế nào của lớp class )?
Đối tượng (Object) là một thực thể cụ thể của một lớp (Class) trong Java. Nó bao gồm các thuộc tính và phương thức và được sử dụng để đại diện cho một đối tượng thực tế trong thế giới thực.