例一:
Class test{
static int i;//静态变量
int j;//实例变量
public void localprint(){
int k=0;//局部变量
i++;
j++;
k++;
System.out.print("i="+i);
System.out.print("j="+j);
System.out.print("k="+k);
}
public void aprint(){
localprint();
localprint();
}
}
Public class mainTest{
public stastic void main() {
test class1=new test();//定义实例class1
class1.aprint();
test class2=new test();//定义实例class2
class2.aprint();
}
求其输出。由主函数开始看,可得对应运行步骤:class.aprint——localprint,一个class对应两个local。
所以输出形式为:
class1:
(1) i= ;j= ;k=
(2)i= ;j= ;k=
class2:
(1) i= ;j= ;k=
(2)i= ;j= ;k=
i是静态变量,全局使用,所以每调用一次关于i的函数都在原来的基础上+1。j变量起作用的范围只在class函数中,所以在class函数中的每次调用localprint都会导致 j+1;而k是局部变量,其起作用的范围只在localprint中,且每次初始值皆为0。
所以答案为:
class1:
(1) i= 1 ;j=1 ;k=1
(2)i= 2 ;j=2 ;k=1
class2:
(1) i= 3 ;j=1 ;k=1
(2)i= 3 ;j= 2 ;k=1
例二:
int i=1;
while(i<10)
if(i++%2==0)
System.out.print(i);
A.22222~ B.246810 C.2468 D.3579
首先由while(i<10)可直接去掉A,B选项。i++是先进行表达式运算,再进行自增运算,++i是先进行自增运算,再进行表达式运算。所以选D。
加加在前,先加后用;加加在后,先用后加
例三:
int x=1,y=2;
boolean b=(x-->2)&&(++y>2);
System.out.println("x="+x+,"y="+y);
A.x=1;y=2 B.x=1;y=3 C.x=0,y=2 D.x=0,y=3
选C。加加在前,先加后用;加加在后,先用后加。
&&或||,短路或条件操作符。当计算p1&&p2时,java先计算p1,如果p1为ture再计算p2;如果p1为false,则不再计算p2。当计算p1||p2时,java先计算p1,如果p1为false再计算p2;如果p1为ture,则不再计算p2。
java中print()括号中加号(+)的作用,1.作为连接符2.作为算数运算符进行加法运算。
①当左右两边连接的都是非数字类型时,则为连接符;
②当一边是数值类型,另一边是非数值类型时,则为连接符;
③当两边都是数值类型时,则为运算符,即相加求和的作用。
注:最后一条语句中+x+,后面那个+起拼接字符串的作用。
告辞