


Preview text:
✅ 1. Lớp (Class) và Đối tượng (Object)
Toàn bộ màn hình login là một class: java CopyEdit
public class login extends javax.swing.JFrame {
login là một lớp (class) mô tả cửa sổ đăng nhập.
Khi chạy chương trình, bạn tạo một đối tượng từ class này bằng: java CopyEdit new login().setVisible(true);
👉 Đây là biểu hiện rõ nhất của OOP: bạn dùng class để mô tả thành phần trong chương trình.
✅ 2. Tính kế thừa (Inheritance) java CopyEdit
public class login extends javax.swing.JFrame
Lớp login kế thừa JFrame, nghĩa là nó kế thừa mọi hành vi và thuộc
tính của một cửa sổ (window).
Bạn không cần viết lại code để tạo cửa sổ, bạn chỉ việc kế thừa
JFrame và mở rộng thêm giao diện đăng nhập riêng.
🧠 Java Swing đã giúp bạn kế thừa nhiều lớp giao diện từ thư viện AWT/Swing.
✅ 3. Tính đóng gói (Encapsulation)
Các thành phần như jTextField1, jPasswordField2, jButton3... là thuộc tính bên trong class login.
Bạn không truy cập trực tiếp từ bên ngoài mà thay vào đó bạn xử lý
chúng thông qua các hàm xử lý sự kiện như: java CopyEdit
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { ... }
⛳ Tức là: Nội dung bên trong login được “đóng gói” lại và điều khiển
thông qua các hành vi (method).
✅ 4. Tính đa hình (Polymorphism)
Đây là một điểm khá hay: java CopyEdit
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } });
Ở đây bạn đang cài đặt
(implement) interface ActionListener bằng
cách ghi đè (override) phương thức actionPerformed.
Khi một JButton được click, Java gọi đúng phiên bản của
actionPerformed() mà bạn đã định nghĩa.
🎯 Đây chính là đa hình: một sự kiện gọi cùng tên phương thức nhưng
thực thi khác nhau tùy context.
✅ 5. Tính trừu tượng (Abstraction)
Bạn không cần biết JFrame, JTextField, hay JButton hoạt động bên trong
ra sao — bạn chỉ dùng được chúng thông qua API trừu tượng mà Java cung cấp.
Tương tự, bạn dùng interface ActionListener, FocusListener mà không
cần biết chi tiết bên trong.
→ Tức là: Bạn đang làm việc với một mô hình trừu tượng hóa của giao diện người dùng.