在Java中,如果一个静态方法想要访问类的非静态成员变量,以下哪种方式是正确的?假设类名为 `MyClass`,非静态成员变量名为 `instanceVar`,静态方法名为 `staticMethod`。
答案解析
核心考点:静态方法与非静态成员变量的访问限制。
解题思路分析:静态方法属于类,而非静态成员变量属于类的实例。静态方法不能直接访问非静态成员变量,因为静态方法调用时,可能还没有创建类的实例。必须通过类的实例才能访问非静态成员。选项A直接使用非静态变量是错误的,会导致编译错误。选项B通过创建实例来访问非静态变量是正确的。选项C将非静态变量改为静态变量虽然可以访问,但改变了题意。选项D使用this引用在静态方法中是错误的,静态方法中没有this。
选项A分析:静态方法不能直接访问非静态变量,会报错。
选项B分析:正确,通过实例访问非静态变量。
选项C分析:虽然能访问,但改变了题目意图,访问的是静态变量而非非静态变量。
选项D分析:静态方法中没有this,不能使用this。
易错点提醒:静态方法属于类,而非静态成员属于实例,静态方法不能直接访问非静态成员。
正确答案:B