【问题标题】:How do I access a private variable from a method?如何从方法访问私有变量?
【发布时间】:2014-02-19 15:20:10
【问题描述】:
currentColor = getCarColor(this.car.color)

这里color是私有的,getCarColor是一个方法,我如何访问变量color

【问题讨论】:

  • 这会破坏封装。除非你有非常好的理由,否则不要。如果你有充分的理由,你可以使用反射。
  • 这就是我们在类中对变量使用setter和getter而不是直接访问它们的原因
  • 如果私有变量在你拥有的类中,为什么不在类中添加getter方法呢?
  • 已经有一个公共的getter方法,getCarColor(据我所知......),但它没有做我认为应该做的事情。

标签: java private access-specifier


【解决方案1】:

您不应该直接访问私有变量:它们被设为私有是有原因的。

正确的做法是为汽车添加一个 public 访问器方法:

class Car {
    private Color color;
    // Add this method:
    public Color getColor() { return color; }
}

【讨论】:

  • 已经有一个公共的getter方法,getCarColor(据我所知......),但它没有做我认为应该做的事情。
  • @user3328737 你叫它this.car.getCarColor(),对吧?
  • @user3328737 欢迎您。如果您不再需要这方面的帮助,请考虑接受该答案,以向其他网站访问者表明您不再积极寻找改进的答案。
  • 我认为我之前的评论是因为脏话...... :) 我会尽快将其标记为已回答。
猜你喜欢
  • 2012-09-24
  • 2013-10-08
  • 2011-03-02
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多