阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

源码客栈 其他问答 1
package NowCoder;
class Test {
    public static void hello() {
        System.out.println("hello");
    }
}
public class MyApplication {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test test=null;
        test.hello();
    }
}
  • ``` A .能编译通过,并正确运行
* ```
  B .因为使用了未初始化的变量,所以不能编译通过
  • ``` C .以错误的方式访问了静态方法
* ```
  D .能编译通过,但因变量为null,不能正常运行

回复

共2条回复 我来回复
  • 毕设工坊
    这个人很懒,什么都没有留下~
    评论

    能编译通过,并正确运行

    这道题考察的时static关键字修饰方法的用法

    被static修饰的方法叫做静态方法 如题中hello就是一个静态方法

    静态方法的访问有两种:

    1.直接使用“ 类名. ”调用 Test.hello(); (一般都用第一种方法,让人一下就明白这是静态方法)

    2.new 一个对象 ,“ 引用. ” 的方式调用

    使用这种方法,其实* 底层会转化为 "类名." 调用*的方式

    本题中就用了第二种方法,虽然Test test = null

    但是test.hello();------>Test.hello();

    所以正常编译运行

    0条评论
  • 毕业设计工坊
    这个人很懒,什么都没有留下~
    评论

    注意hello方法为static方法,若为非静态方法,会报java.lang.NullPointerException

    0条评论

发表回复

登录后才能评论