Class hay lớp là một trong những khái niệm cơ bản mà các bạn mới bắt đầu học lập trình Java cần tìm hiểu. Trong bài viết này, Rikkei Academy sẽ giới thiệu tổng quan cho bạn về Class trong Java bao gồm khái niệm, thành phần cấu tạo, cách khai báo và phân loại các lớp trong Java.
Class trong java là gì?
Trong Java, class (lớp) là một cấu trúc dữ liệu được dùng để định nghĩa một đối tượng (object). Một lớp định nghĩa các thuộc tính (attributes) và phương thức (methods) của đối tượng mà nó đại diện cho.
Các thuộc tính của một lớp là các biến để lưu trữ các giá trị, còn các phương thức của lớp là các hàm để thực hiện các thao tác trên các thuộc tính của đối tượng.
Thành phần của Class trong Java là gì?
Với các bạn bắt đầu tìm hiểu về Class thì việc hiểu các thành phần của nó rất quan trọng để bạn có thể dễ dàng xác định các thuộc tính và phương thức cần thiết để triển khai tính năng cụ thể của ứng dụng. Một lớp được cấu tạo bởi nhiều thành phần khác nhau, dưới đây là một số thành phần nổi bật của Class trong Java:
- Các trường (fields): là các biến hoặc dữ liệu của lớp. Fields cũng được gọi là các biến thành viên trong Java. Chúng ta sử dụng các thuật ngữ trường và biến (variable) thay thế cho nhau. Trường gồm hai loại chính là Biến lớp (Class Variables) và Biến thể hiện (Instance Variable)
- Hàm tạo (constructor): là một hàm đặc biệt được sử dụng để khởi tạo đối tượng, có tên trùng với tên lớp, có thể có hoặc không có tham số.
- Các phương thức (methods): mô tả các hành vi của đối tượng được tạo ra. Phương thức lớp được tạo tương tự với phương thức thông thường của Java. Trong phương thức lớp, ta có thể sử dụng tất cả các trường và hàm tạo.
- Thuộc tính (Attributes): là các biến để lưu trữ các giá trị của đối tượng.
- Các khối mã (code block): các đoạn mã được thực thi ngay khi đối tượng được khởi tạo.
- Lớp lồng nhau (nested class): được khai báo bên trong một lớp khác.

Cú pháp khai báo Class trong Java như thế nào?
Để khai báo một lớp trong Java, chúng ta sử dụng từ khóa class. Cú pháp:
[access modifier] class ClassName [extends Superclass] [implements Interface1, Interface2, …] {
// các thành phần của lớp gồm field, atribute, method,… } |
Trong đó:
Access modifier
Là một từ khóa trong Java được sử dụng để quy định mức độ truy cập của các thành phần gồm thuộc tính (attributes), phương thức (methods) và hàmi tạo (constructors) trong một lớp. Có 4 loại access modifier trong Java:
- Public: các thành phần có thể được truy cập từ bất kỳ đâu trong chương trình.
- Private: các thành phầnchỉ có thể được truy cập trong cùng một lớp.
- Protected: các thành phần có thể được truy cập trong cùng một lớp, các lớp con và các lớp cùng package.
- Default (không có từ khóa access modifier): các thành phần mặc định chỉ có thể được truy cập trong cùng một package.
Tên lớp (Class name)
Là tên được sử dụng để định danh cho lớp. Tên lớp theo quy ước được đặt theo kiểu PascalCase, trong đó các từ trong tên được viết liền nhau và mỗi từ bắt đầu bằng một chữ cái hoa, ví dụ: CustomerOrders.
Thân lớp (Class Body)
Là phần chứa các thành phần của lớp như các phương thức, thuộc tính và các thành phần khác của lớp. Thân lớp được bao quanh bởi cặp dấu ngoặc nhọn { }.
Superclass (nếu có)
Là tên của lớp cha (superclass) của lớp được khai báo, được đặt trước bởi từ khóa “extends”. Một lớp chỉ có thể kế thừa (subclass) một lớp cha. Không phải tất cả các lớp đều có lớp cha đi kèm.
Interfaces (nếu có)
Là một danh sách các giao diện (interfaces) được triển khai bởi lớp, được đặt trước bởi từ khóa “implements”. Một lớp có thể triển khai nhiều hơn một giao diện.
Phân loại Class trong Java
Chúng ta có thể phân loại Class trong Java thành các loại như sau:

Built-in classes
Là các lớp được định nghĩa sẵn trong Java Development Kit (JDK), còn được gọi là các thư viện (libraries) được cung cấp bởi JDK. Một số ví dụ về các lớp built-in bao gồm:
- java.lang.System
- java.util.Date
- java.util.ArrayList
- java.lang.Thread.
User-defined classes
Là các lớp được định nghĩa bởi người dùng và sử dụng trong các ứng dụng Java. Các lớp user-defined được chia thành ba loại:

Concrete class
Là các lớp tiêu chuẩn được định nghĩa bởi người dùng và chứa các phương thức và trường dữ liệu. Khởi tạo concrete class chúng ta sử dụng cú pháp chung:
[access modifier] class ClassName {
// Phần thân của lớp, bao gồm các thuộc tính và phương thức } |
Abstract class
Là một lớp trừu tượng, được định nghĩa bằng từ khóa “abstract”. Để khởi tạo một lớp trừu tượng, nó phải chứa ít nhất một phương thức trừu tượng. Lớp trừu tượng thường được sử dụng để định nghĩa các lớp con (subclass) và các phương thức trừu tượng (abstract method) để bắt buộc các lớp con phải cung cấp phương thức đó. Nếu không, nó chỉ có thể kế thừa lớp trừu tượng đó và triển khai các phương thức của lớp cha.
Cú pháp:
[access modifier] abstract class ClassName {
// Phần thân của lớp, bao gồm các thuộc tính, phương thức và abstract method } |
Tham khảo thêm: 5 Phút Tìm Hiểu Về Abstract Class Trong Java
Interface
Là các lớp đặc biệt chỉ chứa các phương thức trừu tượng, không chứa bất kỳ trường nào. Các lớp triển khai (implement) interface sẽ phải định nghĩa các phương thức trừu tượng trong interface đó. Interface được sử dụng để định nghĩa các hành vi chung mà các lớp có thể triển khai.
[access modifier] interface InterfaceName {
// Khai báo các phương thức trừu tượng (abstract methods) và các hằng số (constants) } |
Tìm hiểu thêm: Interface Trong Java Là Gì Bạn Đã Biết Chưa?
Kết luận
Hy vọng với những thông tin cơ bản trong bài viết này của Rikkei Academy đã giúp bạn hiểu hơn về Class trong Java.
Nếu bạn theo đuổi lĩnh vực lập trình và muốn theo học một lộ trình tinh gọn với kiến thức, kỹ năng bám sát công việc cùng người hướng dẫn tận tâm thì tham khảo ngay Rikkei Academy. Với khóa học lập trình 6 tháng giúp bạn trở thành lập trình viên tiêu chuẩn. Đăng ký nhận tư vấn ngay!
Nguồn tham khảo:
https://blog.hubspot.com/website/what-is-a-class-in-java
https://www.javatpoint.com/class-definition-in-java
https://www.geeksforgeeks.org/classes-objects-java/
https://www.simplilearn.com/tutorials/java-tutorial/java-classes-and-objects