sinat_21792769 2015-10-16 15:57 采纳率: 33.3%
浏览 1445
已采纳

急求分析两段JAVA代码(最近笔试碰到的)

public class NameClass {

private static  int x ;

public static void main(String[] args) {
    name(x);
    System.out.println(x);
}
public static void name(int x){
    x ++;

}

}
//请帮忙分析下为什么这断代码的输出为0?

package cn.com.test2;

public class A {

public static void testMethod(String name){
    System.out.println("hello"+name);
}

public static void main(String[] args) {
    testMethod("nick");
    //?
    ((A)null).testMethod("tom");//这句话是什么意思呢?求详细解答

}

}

  • 写回答

6条回答 默认 最新

  • qq1032101603 2015-10-16 16:31
    关注

    第一个程序;name函数操作的x的作用域只在name函数内,与外层的静态变量x无关。这个静态变量在类加载时就初始化为0了。
    第二个程序:先将null类 强制类型转换为A类型,然后通过这个A类型来调用静态方法testMethod。如果你用普通的方法就不能实现。
    在java中,对null进行强制类型转换不会报错,结果还是null。第二个程序也可以写成下面这样:

     A obj= null;
          obj.testMethod("Gook");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试