作为我的第一个Java项目,我正在尝试制作一个定位不同城市的小程序。
我想从“City”类访问我的类“GPS”的变量,但我一直遇到这样的错误:作业的左侧必须是变量。任何人都可以向我解释我在这里做错了什么,以及今后如何避免这种错误?
public class Gps {
private int x;
private int y;
private int z;
public int getX() {
return this.x;
}
public int getY() {
return this.y;
}
public int getZ() {
return this.z;
}
}
(我想把变量作为私有)
这个类“City”应该有坐标:
class City {
Gps where;
Location(int x, int y, int z) {
where.getX() = x;
where.getY() = y; //The Error Here
where.getZ() = z;
}
}
不要用getter设置属性。应该这样做:
public class Gps {
private int x;
private int y;
private int z;
public int getX() {
return this.x;
}
public int getY() {
return this.y;
}
public int getZ() {
return this.z;
}
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public void setZ(int z) {
this.z = z;
}
}
class City {
Gps where;
City(int x, int y, int z) {
this.where = new Gps();
where.setX(x);
where.setY(y);
where.setZ(z);
}
}
错误本身就说明了这一点:不能为非字段或变量的对象赋值。getter用于获取存储在类中的值。Java使用setter来处理值的存储:
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
现在可以通过调用setter设置值:
City(int x, int y, int z) {
where.setX(x);
...
}
然而,这种解决方案并不理想,因为它使Gps变得可变。您可以通过添加构造函数来保持它不可变:
public Gps(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
现在City
可以设置其中
在一个镜头中:
City(int x, int y, int z) {
where = new Gps(x, y, z);
}
我在想为什么会这样。我的其他项目工作完美,但这一个不行。
问题内容: 为什么不起作用? 无法理解为什么作业的左侧不是变量。 有人帮忙吗? 问题答案: 如果您只想增加5,而又不限于此,则可以避免冗长,而可以这样做: 这将in- in 的值原地增加5。
问题内容: state.charAt(i)部分在标题中指出了问题。如果我的方法不是完全错误的,该如何解决该问题。 问题答案: 之所以不起作用,是因为它是类的方法-即它是一个函数,并且您无法在Java中为函数赋值。 如果您想逐个字符地遍历一个字符串,我可能会这样做: 然后改为对GuessAsChar进行操作。根据您的需要,可能有更好的方法(如更整洁的方法)来搜索字符串中的字符对等。
问题内容: 这个问题源于-其他解包概述,据我所知,它存在于Python 3.5中(并且没有反向移植到)。具体来说,在“ 缺点 ”部分中,注意以下几点: 虽然原因是一, ,原因是一个。这样做的原因可能会使不熟悉该结构的人感到困惑。 对于第一种情况,确实确实存在: 在第二种情况下,创建了: 不熟悉这个概念,我很困惑。谁能解释这种行为?加星标的表情是否会根据其所在的侧面而有所不同? 问题答案: 当还考虑
我开始盲目地看着我的代码,我的大脑快要过热了。谈到编程,我是新来的。 公共类回收系统{ }} 公共类瓶子{ } 公共类EmptyStackException扩展了异常{ } 公共类瓶计数{ } 我对getbottle、TotalBottalCount和BottalCount变量有单独的类。 我想做一个基于用户输入的回收系统模拟器,如果有任何意义的话,有三种不同类型的瓶子,它们被分配了不同的值,一个
问题内容: 这里发生了什么事? 它抛出一个错误,说 我正在做的是将值重新分配给一个已经声明的变量。 问题答案: 将新值分配给现有变量时,请从第二条语句中删除。 当您像在第一个语句中那样第一次执行简短声明和赋值时使用。