# Data class, enum và sealed interface

> data class cho giá trị bất biến, enum cho tập lựa chọn cố định, sealed interface cho trạng thái nhiều nhánh, when exhaustive - đọc trên code thật của TicTac.

- URL: https://dantech.academy/courses/kotlin-mobile-101/01-kotlin-essentials/lesson-02-data-and-sealed-classes
- Khóa học: [Kotlin Mobile 101](https://dantech.academy/courses/kotlin-mobile-101.md)
- Module: Kotlin Essentials
- Thời lượng: 12 phút
- Độ khó: beginner
- Truy cập: Dành cho học viên

## Mục tiêu

- Viết data class và dùng copy() để tạo bản sao đã sửa thay vì đổi tại chỗ
- Dùng when exhaustive để trình biên dịch bắt lỗi thiếu nhánh thay cho bạn

## Nội dung bài học

1. Enum Class: Tập Lựa Chọn Cố Định
2. Data Class: Dữ Liệu Là Giá Trị
3. Sealed Interface: Nhiều Nhánh, Mỗi Nhánh Mang Dữ Liệu Riêng
4. when: Trình Biên Dịch Đếm Hộ Bạn
5. Enum Hay Sealed: Chọn Thế Nào
6. Class Thường Và Interface

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/kotlin-mobile-101/checkout)

---

- Bài trước: [Null safety, biến và hàm](https://dantech.academy/courses/kotlin-mobile-101/01-kotlin-essentials/lesson-01-null-safety-and-functions.md)
- Bài tiếp theo: [Collections, coroutines và StateFlow](https://dantech.academy/courses/kotlin-mobile-101/01-kotlin-essentials/lesson-03-collections-and-coroutines.md)
