本文介绍了Java字段不可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作为我家庭作业的一部分,我得到了一个已经准备好的公共静电void main方法。我的工作是通过创建与此相关的所有方法来补充这一点。这应该在另外三个班级中完成。
在已经准备好的Main方法中,有以下代码:
ticket = new LotteryTicket(10);
ticket.ticketOwner = new Player();
LotteryTicket
和Player
是我创建的其他类。LotteryTicket
类中的相关实例变量为:
private LotteryRow[] rows;
private Player ticketOwner;
public LotteryTicket(int maxNumberOfRows) {
this.rows = new LotteryRow[maxNumberOfRows];
}
Player
如前所述,是我创建的另一个类。在这个类中,除了其他内容之外,还有一个用于用户输入数据(如姓名、地址、邮政编码等)的方法。
ticket.ticketOwner = new Player();
行出错。错误是:"字段LotteryTicket.ticketOwner
不可见"这可能是什么原因?如果您能帮忙,我将不胜感激!我希望我提供的代码是足够的。我以前没有遇到过此错误消息,因此我不知道该怎么办。
推荐答案
问题的核心是您尝试访问的字段(ticketOwner
)标记为private
。此外,至少从我们看到的情况来看,似乎缺少用于访问它的getter/setter。
getter/setters
并使用它们访问字段,但另一种难看的方法是将字段设置为public
。但是你会想继续读下去.您的最佳选择(如果彩票需要玩家,似乎是这样)是将Player
实例放在LotteryTicket
本身的构造函数中,这样就不会产生额外的开销。
public LotteryTicket(int maxNumberOfRows, Player player) {
this.rows = new LotteryRow[maxNumberOfRows];
this.ticketOwner = player;
}
编辑
您的调用将如下所示:
Player p = new Player();
// invoke APIs on (Player p), if needed
ticket = new LotteryTicket(10, p);
这篇关于Java字段不可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!