阅读如下代码。 请问,对语句行 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,不能正常运行
-
能编译通过,并正确运行
这道题考察的时static关键字修饰方法的用法
被static修饰的方法叫做静态方法 如题中hello就是一个静态方法
静态方法的访问有两种:
1.直接使用“ 类名. ”调用 Test.hello(); (一般都用第一种方法,让人一下就明白这是静态方法)
2.new 一个对象 ,“ 引用. ” 的方式调用
使用这种方法,其实* 底层会转化为 "类名." 调用*的方式
本题中就用了第二种方法,虽然Test test = null
但是test.hello();------>Test.hello();
所以正常编译运行
-
注意hello方法为static方法,若为非静态方法,会报java.lang.NullPointerException
发表回复