我有一个Player.java类,它扩展了Entity.java。在实体中,我定义了x和y坐标。在Game.java中,我创建了一个玩家对象:Player player = new Player(0, 0);
。 Entity.java中x和y变量的可见性应该是多少?我不希望能够直接在Game.java中设置它们,但如果我将它们设为私有,我就无法从子类Player.java访问它们。我应该在Entity.java中创建getter和setter吗?当我在Player.java类中需要x和y时,调用那些方法?这意味着每次我需要在Player.java中使用x和y来计算我需要调用getter和setter的东西。
Main.java
Player player = new Player(0,0);
Player.java
public Player(int x, int y) {
super(x, y);
}
Entity.java
private/public int x;
private/public int y;
public Entity(int x, int y) {
this.x = x;
this.y = y;
}
答案 0 :(得分:2)
如果您想在Entity
课程中负责,请将属性设为私有。让protected
获取者和制定者。这种方式Player
可以间接访问x和y属性,Game
类无法设置访问这些属性,因为protected
getter和setter。
答案 1 :(得分:1)
您可以设置protected
和仅使用子类中的super.x ; super.y ;
来访问。
最好不要使用setter和getter(对象编程)