私有变量访问
Private Variable access
为什么我可以在 Striker
的 hasSameNumber
方法实现中直接访问 p
的私有 number
属性?似乎使用 getter 应该是访问它的唯一(如果不是,最佳实践)方式。我错过了什么?
public class Football {
public static abstract class FootballPlayer {
private final int number;
FootballPlayer(int num) {
number = num;
}
int getNumber() {
return number;
}
abstract boolean hasSameNumber(FootballPlayer p );
}
public static class Striker extends FootballPlayer {
Striker(int num) {
super(num);
}
boolean hasSameNumber(FootballPlayer p ) {
return this.getNumber() == p.number;
}
}
}
编辑:
接受的答案说明了为什么这是允许的 - 谢谢! preferred/best-practice 访问 number
的方式是什么 - 通过 getter 还是直接访问?
Java - 对 number 的访问发生在 Football 的正文中,因此是允许的。
我承认我对这个具体例子感到惊讶。
为什么我可以在 Striker
的 hasSameNumber
方法实现中直接访问 p
的私有 number
属性?似乎使用 getter 应该是访问它的唯一(如果不是,最佳实践)方式。我错过了什么?
public class Football {
public static abstract class FootballPlayer {
private final int number;
FootballPlayer(int num) {
number = num;
}
int getNumber() {
return number;
}
abstract boolean hasSameNumber(FootballPlayer p );
}
public static class Striker extends FootballPlayer {
Striker(int num) {
super(num);
}
boolean hasSameNumber(FootballPlayer p ) {
return this.getNumber() == p.number;
}
}
}
编辑:
接受的答案说明了为什么这是允许的 - 谢谢! preferred/best-practice 访问 number
的方式是什么 - 通过 getter 还是直接访问?
Java - 对 number 的访问发生在 Football 的正文中,因此是允许的。
我承认我对这个具体例子感到惊讶。