VieTopikKhoá học
  • Games
  • Cá nhân
Tải app
© 2026 VieTopikChính sách bảo mậtĐiều khoản sử dụngCài appEnglish
  • Trang chủ
  • Học
  • Luyện thi
  • Cẩm nang
  • Games
  • Cá nhân
Java CoreClass cơ bản
Bài 10/19
4 phút

Class và object

Bình luận
Nội dung bài · 5 mục
  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt

Tới giờ bạn mới dùng các kiểu có sẵn như int, String, List. Nhưng một sản phẩm trong cửa hàng có cả tên, giá và cách tính tiền, không kiểu có sẵn nào chứa hết được. Bài này hướng dẫn bạn tự tạo kiểu riêng bằng class.

Khái niệm

📐 Class: kiểu dữ liệu do bạn tự định nghĩa, gom dữ liệu và hành vi liên quan vào một chỗ.

🧊 Object: một giá trị cụ thể được tạo ra từ class bằng từ khoá new.

📎 Field: biến khai báo bên trong class, mỗi object giữ một bản riêng.

Class chỉ là phần mô tả. Muốn dùng thì phải tạo object từ nó, và từ một class tạo bao nhiêu object cũng được.

Ví dụ

// Main.java
void main() {
    var pen = new Product();
    pen.name = "Bút bi";
    pen.price = 5000;

    System.out.println(pen.totalFor(2)); // 10000
}

// Product.java
class Product {
    public String name = "";   // mặc định là chuỗi rỗng
    public long price;

    public long totalFor(int quantity) {
        return price * quantity;
    }
}
  • Mỗi class nằm trong một file riêng trùng tên class, đặt cạnh Main.java. Lệnh java Main.java tự biên dịch các class mà nó dùng.
  • class Product khai báo hai field (name, price) và một method (totalFor).
  • public cho phép code bên ngoài class dùng field và method đó.
  • new Product() tạo một object, biến pen giữ object đó.
  • Dùng dấu chấm để truy cập field và method của object: pen.price, pen.totalFor(2). Bên trong totalFor, price chính là giá của pen.

Thử ngay

Giữ nguyên Product.java, thay nội dung Main.java bằng đoạn sau rồi chạy java Main.java:

// Main.java
void main() {
    var pen = new Product();
    pen.name = "Bút bi";
    pen.price = 5000;

    var notebook = new Product();
    notebook.name = "Vở";
    notebook.price = 12000;

    pen.price = 6000;

    System.out.println(pen.name + ": " + pen.price);
    System.out.println(
            notebook.name + ": " + notebook.price);
}

Đoán trước khi chạy: đổi giá pen thành 6000 thì giá notebook có đổi theo không?

Xem kết quả
Bút bi: 6000
Vở: 12000

Không đổi. pen và notebook là hai object riêng, mỗi object giữ price của mình.

Lỗi hay gặp

Khai báo biến nhưng quên new. Biến chưa được gán object nào nên không dùng được.

// SAI — lỗi compile: pen chưa được gán
Product pen;
pen.price = 5000;
// ĐÚNG — tạo object trước rồi mới dùng
var pen = new Product();
pen.price = 5000;

Tóm tắt

  • Class mô tả dữ liệu (field) và hành vi (method).
  • new tạo object từ class, mỗi object giữ field riêng.
  • Dùng dấu chấm để truy cập field và method: pen.price, pen.totalFor(2).
MapGetter, setter và constructor

Bình luận

Đang tải bình luận…

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt