Property ‘balance‘ is private and only accessible within class ‘BankAccount‘. <ArkTSCheck>
·
Property 'balance' is private and only accessible within class 'BankAccount'. <ArkTSCheck>
这个错误提示来自于 ArkTS,意思是你正在尝试从类 BankAccount 外部访问其私有属性 balance。在面向对象编程里,私有属性被设计用来限制外部直接访问,以此遵循封装原则,提升代码安全性与可维护性。要解决这个问题,有下面几种办法:
1. 使用公共访问器方法(Getter)
如果类 BankAccount 已经定义了获取 balance 的公共访问器方法(一般命名为 getBalance),你应该通过这个方法来获取余额值,示例代码如下:
class BankAccount {
private balance: number;
constructor(initialBalance: number) {
this.balance = initialBalance;
}
public getBalance(): number {
return this.balance;
}
}
// 在类外部访问
let account = new BankAccount(1000);
let currentBalance = account.getBalance();
2. 重新考虑设计需求
有时候报错意味着当前的设计不够合理。要是确实需要在多处代码里自由访问这个属性,也许把 balance 设为 protected 会更合适,protected 属性能在类自身及其子类里被访问:
class BankAccount {
protected balance: number;
constructor(initialBalance: number) {
this.balance = initialBalance;
}
}
class SavingsAccount extends BankAccount {
// 在子类中可以访问 balance
public addInterest() {
this.balance *= 1.05;
}
}
更多推荐


所有评论(0)