题目
8、下面有关静态方法的描述中,错误的是:A、静态方法属于类,不属于实例B、静态方法可以直接用类名调用C、静态方法中,可以定义非静态的局部变量[1]D、静态方法中,可以访问实例方法
8、下面有关静态方法的描述中,错误的是:
A、静态方法属于类,不属于实例
B、静态方法可以直接用类名调用
C、静态方法中,可以定义非静态的局部变量[1]
D、静态方法中,可以访问实例方法
题目解答
答案
8、D
解析
考查要点:本题主要考查对静态方法的理解,包括静态方法的定义、调用方式、局部变量的使用以及对实例方法的访问限制。
解题核心思路:
- 静态方法的归属与调用:静态方法属于类,而非实例,可通过类名直接调用。
- 局部变量的静态属性:静态方法中允许定义非静态局部变量,因为局部变量的作用域仅限于方法内部。
- 访问实例方法的限制:静态方法无法直接访问实例方法,因为实例方法依赖于实例对象,而静态方法不持有实例的隐式引用(
this
)。
破题关键点:
- 选项D的矛盾点:静态方法无法直接调用实例方法,必须通过显式的实例对象调用。
选项分析
A、静态方法属于类,不属于实例
正确。静态方法通过static
关键字修饰,属于类的范畴,所有实例共享同一份静态方法,调用时无需依赖实例。
B、静态方法可以直接用类名调用
正确。静态方法可通过类名直接调用,例如ClassName.staticMethod()
,无需创建实例。
C、静态方法中,可以定义非静态的局部变量
正确。局部变量的作用域仅在方法内部,与静态方法的静态属性无关。例如:
public static void staticMethod() {
int localVar = 10; // 非静态局部变量,合法
}
D、静态方法中,可以访问实例方法
错误。实例方法需要通过实例对象调用,而静态方法无法隐式访问实例的this
引用。若要在静态方法中调用实例方法,必须显式创建实例并调用,例如:
public static void staticMethod() {
MyClass obj = new MyClass(); // 需要显式实例化
obj.instanceMethod(); // 通过实例调用实例方法
}