父类中类变量的可见性

时间:2015-12-25 12:57:05

标签: java oop inheritance visibility getter-setter

我有一个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;
}

2 个答案:

答案 0 :(得分:2)

如果您想在Entity课程中负责,请将属性设为私有。让protected获取者和制定者。这种方式Player可以间接访问x和y属性,Game类无法设置访问这些属性,因为protected getter和setter。

答案 1 :(得分:1)

您可以设置protected和仅使用子类中的super.x ; super.y ;来访问。 最好不要使用setter和getter(对象编程)