1.在java中,下面关于变量及其有关作用域的描述错误的是( )。
A 实例变量是类的成员变量
B 实例变量是用关键字static声明
C 在方法中定义的局部变量在该方法被执行时创建
D 局部变量在使用前必须被初始化
答案:B
这题主要考实例变量和类变量的含义,还考了上次总结过的知识点(即选项D,这里就不解释了)(变量在何时何地必须初始化),首先先理清楚实例变量是什么意思,实例变量也可叫类的成员变量,就是针对不同的实例,类中的变量的值可能不同,实例变量与实例紧紧相依。而类变量自然和类相互关联,即用关键字static声明的成员变量,是类的实例所共同使用的变量,可以使用类名来使用该变量。所以B是错的,B描述的是类变量。
2.题目:
Given:
class Foo {
static void alpha() {
}
void beta() {
}
}
Which two are true? (Choose two.)
A Foo.beta() is a valid invocation of beta().
B Foo.alpha() is a valid invocation of alpha().
C Method beta() can directly call method alpha().
D Method alpha() can directly call method beta().
答案:BC
umm,这道题错的太好了,让我深深的为我的英语和我对静态方法和非静态方法之间的联系的理解感到担忧啊,通过下面的总结可以知道,C对D错,B对A错,
静态方法只能访问静态方法或者静态成员(通过static关键字来声明静态方法、静态成员),并且不能使用super、this。非静态方法即可访问静态成员静态变量又可以访问非静态方法和变量还可以使用super、this。静态变量和静态方法可以通过类名直接调用,而非静态不行需要通过对象来使用。这难道就是上帝关上一扇门,定会为static打开一扇窗吗。
今天就总结到这里吧,俺累了,睡一觉再战!!!
宝剑锋从磨砺出,梅花香自苦寒来。--冯梦龙
加油!小芳同学



