Menu
CoddyTech

Trường (thuộc tính)

Thuộc phần Lập trình hướng đối tượng trong hành trình Java của Coddy. Bài học 6 trên 87.

Trường (field, còn gọi là thuộc tính (attribute)) là biến (variable) lưu trữ dữ liệu bên trong một lớp (class). Chúng thường là private và được truy cập thông qua phương thức (method) getter và setter.

Khai báo các trường

public class Person {
    private String name;
    private int age;
}

Thêm getter và setter

public class Person {
    private String name;
    private int age;
    
    public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return this.age;
    }
    
    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        }
    }
}

Sử dụng lớp

Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName());  // Alice

Việc đặt các trường ở chế độ private được gọi là tính đóng gói. Cách này bảo vệ dữ liệu bằng cách kiểm soát quyền truy cập thông qua các phương thức, cho phép bạn thêm bước xác thực trong các phương thức setter.

challenge icon

Thử thách

Trung bình

Tạo một lớp BankAccount với các trường private và phương thức getter:

  • Các trường private: accountName (String) và balance (double)
  • Một hàm khởi tạo để thiết lập cả hai trường
  • Phương thức getter cho từng trường
  • Phương thức deposit() để thêm tiền
  • Phương thức withdraw() trả về "Success" hoặc "Insufficient funds"

Tự làm thử

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        double initial = Double.parseDouble(scanner.nextLine());
        double deposit = Double.parseDouble(scanner.nextLine());
        
        BankAccount account = new BankAccount(name, initial);
        
        System.out.println("Account: " + account.getAccountName());
        System.out.println("Balance: " + account.getBalance());
        
        account.deposit(deposit);
        System.out.println("After deposit: " + account.getBalance());
        
        String result = account.withdraw(2000);
        System.out.println("Withdraw 2000: " + result);
        System.out.println("Final Balance: " + account.getBalance());
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Java online