Java 中有哪些常见变量?类只由变量组成吗?
查看完整题解
参考回答
直接回答
普通类的字段分为静态字段和实例字段;方法、构造器等代码中还会使用参数和局部变量。类本身不只由变量组成,还可以声明方法、构造器、初始化器和嵌套类型。回答这题时应区分“字段属于谁”与“某个名字在哪里有效”。
讲清原理
静态字段表达类状态,实例字段表达对象状态;局部变量只在相应作用域内使用,参数则由调用过程提供。它们在初始化、修饰符和访问规则上不同。
字段和数组元素有默认初始值;局部变量必须在读取前满足明确赋值要求。也不要简单说“基本类型都在栈上、对象都在堆上”,因为变量所处位置和存储值的类型是两个维度,具体优化也不由这种口号决定。
例子与易错点
class Counter {
static int total;
int value;
int add(int step) {
int next = value + step;
value = next;
return next;
}
}
System.out.println(new Counter().add(2)); // 2
total、value 是字段,step 是参数,next 是局部变量。一个字段在方法内可见,不表示它就变成了局部变量;不要只看出现的位置来分类。
相关题:第 34 题、第 37 题。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。