字段(属性)
本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 6 课,共 87 课。
字段(属性)是在类内部存储数据的变量。它们通常是 private,并通过 getter 和 setter 方法访问。
声明字段
public class Person {
private String name;
private int age;
}添加 getter 和 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;
}
}
}使用类
Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName()); // Alice将字段设为 private 称为封装。它通过方法控制访问来保护数据,让你可以在 setter 中添加验证。
挑战
中等创建一个包含私有字段和 getter 方法的 BankAccount 类:
- 私有字段:
accountName(String)和balance(double) - 一个用于设置这两个字段的构造函数
- 每个字段都要有 getter 方法
- 用于存入金额的
deposit()方法 withdraw()方法,返回 "Success" 或 "Insufficient funds"
亲手试试
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());
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Java 在线编译器