在java的笔试中,许多的程序题都离不开变量和方法,也许一个很长的程序就是考你不同类别的变量和方法的使用,这类题型很具有迷惑性,今天我们就来看看这些变量和方法,弄清他们的特点是解题的第一步。
A. 第9行 B. 第5行 C.第7行 D.第10行
分析:不要以为这道题是在考你while循环,其实是在考你局部变量,如果你没有仔细看清楚的话,很容易出错,所以,今后在做题的时候,第一步就要先确认变量都是什么变量。清楚这些之后,很显然,变量c是局部变量,而局部变量必须要显示初始化,所以第9行错误。
A.编译时出错
B.编译时正确而运行时出错
C.输出0
D.输出 null
分析:这里我们注意到,main方法也是静态方法,而静态方法只能访问静态变量(类变量),而不能直接访问类的非静态变量,所以会再编译时出错。说这道题的目的是为了让大家以后一定要看清static这个关键字,他往往决定了你能不能看清出题者的真正意图是不是在考你静态变量与静态方法。
java中的变量主要有局部变量,全局变量,成员变量,类变量(静态变量),实例变量(非静态变量),公共变量,私有变量,保护变量和默认访问变量,方法有公有方法,私有方法,静态方法,最终方法,也许还有其他的一些,这里就不列出来了。看着这么多种类的变量和方法是不是头都大了?有时在看解题分析的时候,说这个变量是某某变量,这个方法时某某方法,那我们到底清楚这个变量和方法吗?这可不一定,所以我把变量和方法之间的关系用这幅图总结了出来,希望可以帮助大家理顺他们之间的关系。
这类题型的程序中,往往只有一个类(注意!如果程序中有两个类存在,那么我们就还需要考虑类之间的关系,这类题,我放在下一个专题里讲解),所以我们只需要搞清楚两件事:
1.确定变量。如果是局部变量,那么它一定要显示的初始化。
2.确定方法,如果是静态方法,那么它一定只能访问静态变量。
往往题目就是在考这两个方面。
例一:下面的代码在编译时哪几行会出现错误?
public class TestDemo {
int a;
public void test(){
a = 2;
int b , c;
while(a>0){
b = a * 2;
System.out.println("The value is" + b);
c = c + 1;
a--;
}
}
}
A. 第9行 B. 第5行 C.第7行 D.第10行
分析:不要以为这道题是在考你while循环,其实是在考你局部变量,如果你没有仔细看清楚的话,很容易出错,所以,今后在做题的时候,第一步就要先确认变量都是什么变量。清楚这些之后,很显然,变量c是局部变量,而局部变量必须要显示初始化,所以第9行错误。
例二:分析下面的代码,哪些叙述是正确的?
public class TestDemo {
int arr[] = new int[5];
public static void main(String[] args) {
System.out.println(arr[0]);
}
}
A.编译时出错
B.编译时正确而运行时出错
C.输出0
D.输出 null
分析:这里我们注意到,main方法也是静态方法,而静态方法只能访问静态变量(类变量),而不能直接访问类的非静态变量,所以会再编译时出错。说这道题的目的是为了让大家以后一定要看清static这个关键字,他往往决定了你能不能看清出题者的真正意图是不是在考你静态变量与静态方法。
无数的概念题,这里我就不做总结了,相信大家如果能仔细看看上面的图,那么这类型题一定不会难到大家。
that's all.