2021-3-19 上课例题些许见解

例一:

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+,后面那个+起拼接字符串的作用。
告辞

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值