这可能听起来很疯狂,但我真正想做的只是在公共类中声明并初始化一个成员变量,然后使用另一个在C中非常逼真的值重新赋值。但它在Java中失败了。
public class App {
public int id=6;
// id = 7;
public void method() {
id = 7; // that's okay
}
}
但这可以在一种方法中完成。例如:
{{1}}
所以,对我来说真正令人困惑的是,在那里使用一个方法而不是在下一行中重新分配成员变量的区别。如果有的话,我真的很期待学习它的洞察力概念。
重复的区别:我想学习OOPL强制使用方法/构造函数的方法,如果我在初始化后尝试重新分配任何变量吗?
答案 0 :(得分:-2)
通常,在面向对象的编程中,“类”表示特定对象的描述。如果我们使用汽车的类比,可以将其视为“蓝图”。
蓝图做了很多事情:
第public int id=6
行执行第一行和最后一行。它表示任何App
对象必须具有id
属性,其初始状态为值6
。如果你把行id=7
放在类定义中,这不是蓝图的一部分 - 说id
的默认值是6是没有意义的,然后决定它是7 - 所以这是一个错误。
在Java中,与许多面向对象的语言一样,修改状态的实际代码必须在“方法”中进行,因为每次在OOP中发生某些事情时,它都是“对象”做某事
修改强>
您的错误是
令牌“;”的语法错误,预期
这是有道理的 - 它会看到以下代码
public int id=6;
id=7;
并且认为你真正打算做的是
public int id=6,
id=7;
与
相同 public int id=6, id=7;
当然,除非您更改了第二个定义的名称,否则这可能会产生另一个错误。
答案 1 :(得分:-3)
在根级别,您只能声明方法和字段变量。如果要在初始化对象时更改变量的值,则需要在构造函数中执行此操作:
public class App {
public int id=6;
public App() {
id=7;
}
}