1
A
回答
4
我认为他们的意思是,这是合法的:
public class Test {
private int someValue;
public int myMethod() {
return someValue + anotherValue;
}
private int anotherValue;
}
(它是!)
不过,我认为这是该网站一个错误来形容这为“ [i] nstance变量可以在使用之前或之后在课程级别声明“。
短语“在课堂上声明”是不好的英语语法。
短语“在课堂上”是不明确的。它可能意味着在课堂上宣布。然而,它也可能意味着宣布为“班级”(即
static
)变量。(这是矛盾的,不正确的,但...)短语“在使用之前或之后”是不明确的。这可能意味着在源代码文件之前或之后。它也可能意味着在时间意义之前或之后。 (这是不正确的。在运行时,所有对象的实例变量的声明,并在方法或构造函数体的代码被执行之前进行初始化。)
虽然他们正试图说些什么(我认为)在这句话中是正确的,他们已经表达得很差,而且这显然造成了一些读者的困惑。
0
实例变量val
在行#2中声明(请注意标记),但在第#1行之前引用。您可以删除第3行和第2条评论的评论。那么它也会工作。
这意味着变量val
即使在申报之前在行#1考虑使用之后考虑使用,如果你考虑3号线#1行。
public class prog{
//private int val; //line# 3
public int getVal()
{
return val;//line# 1
}
private int val; //line# 2
prog()
{
val=0;
}
public static void main(String [] args)
{
prog obj= new prog();
System.out.println("val:"+obj.getVal());
}
}
0
尽管您的参考文档很好地解释了它,但我会添加一些细节以确保完整性。
一个实例变量...
- 是宣布类级别
- 可以有任何的可见性是必要(
public
,protected
,private
,或者没有修饰符来表示包-private) - 实例化后会收到initial value(也就是说,你没有有实例化字段的值...但是,如果你不实例化一个参考值,你可能会碰到一个
NullPointerException
)
“前或使用后”这句话并没有太大的意义,但让我们说明一个场景:
public class Foo {
private String word;
public void printTheWord() {
System.out.println(word);
}
}
word
没有实例,但因为它是收到的null
的初始值,我们可以使用它。这意味着我们不会得到我们想要的价值,但它会编译。
将此与局部变量进行对比。下面的代码不会编译,因为word
尚未实例化。
public class Foo {
public void printTheWord() {
String word;
System.out.println(word);
}
}
0
短语“使用前后”。将意味着实例变量适用于整个类,不像局部变量那样仅限于该方法内部。
它可以在课程开始时声明或初始化,这通常是最可能的方式。 其他的,在类的内部,可以在使用它的方法的调用之后声明。
请找到下面的代码片段,了解了一句:
public class InstanceVariable {
//declared before
int foo=4;
public void testInstanceVariableUse(){
System.out.println("The total value of the instance variable is "+ (foo+boo));
}
//declared after
int boo=5;
}
class TestInstanceVariable{
public static void main(String[] args){
InstanceVariable instanceVar = new InstanceVariable();
instanceVar.testInstanceVariableUse();
}
}
输出: 实例变量的总价值为9
相关问题
- 1. 在声明局部变量var后,实例变量变为不可见
- 2. 可以在枚举声明中修改实例变量吗?
- 3. Objective-C中实例变量声明的顺序是否重要?
- 4. 匿名内部类:声明为实例变量VS创建于
- 5. 是否可以使用search.luceneSearch与以前声明的变量?
- 6. 是否可以检测函数中声明的局部变量的数量?
- 7. 实例变量声明的放置
- 8. 是否可以在条件中声明变量?
- 9. 是否可以强制JavaScript在使用前声明变量?
- 10. 是否可以在声明后初始化最终变量..?
- 11. (XQuery/Conditions)是否可以在if语句中声明变量?
- 12. 是否可以从外部修改类实例的私有变量?
- 13. 获取在类中声明的所有实例变量
- 14. 是否可以删除使用const声明的变量?
- 15. 是否可以从内部类实例访问一个外部类实例?
- 16. 差异如何声明实例变量
- 17. 属性和实例变量声明
- 18. 声明验证阻止实例变量
- 19. 我是否在ObjC的.h文件中声明了所有的实例变量?
- 20. C++修改实例变量声明在父类
- 21. 是否可以使用循环来声明变量?
- 22. Excel - 是否可以为特定单词声明变量?
- 23. 将IBOutlet放入实例变量声明或@property声明中?
- 24. 了解类和实例变量的属性声明
- 25. do-while在底部声明
- 26. 在局部变量声明语句中,在块声明中,声明语句的哪个部分是声明符?
- 27. iPhone,存取阵列,局部声明隐藏实例变量
- 28. 是否有可能将已在类中声明的实例全局化?
- 29. 是否可以在Puppet中“声明”?
- 30. 我可以在Java中更改变量的声明类型吗?
这是合法的,但我仍然会如果有人叫警察在我的团队中做到了。 –