首页 > 试题广场 >

下面关于静态方法说明正确的是

[单选题]
下面关于静态方法说明正确的是
  • 在静态方法中可用this来调用本类的类方法
  • 在静态方法中调用本类的静态方法时可直接调用
  • 在静态方法中只能调用本类中的静态方法
  • 在静态方法中绝对不能调用实例方法
A:静态方法没有this。
C:静态方法中可以调用其他类的静态方法,比如我们经常用的println。
D:静态方法可以通过创建类的实例来调用实例方法。

个人认为,这题目说起来并不是很严谨,不过能理解题目所要表达的意思就行了,别抠着字眼不放了。
发表于 2019-08-27 08:45:28 回复(0)
我理解的是这样的  的确静态方法是比实例先加载的 但是题目可能意思是这样的
public class A{
    public static void doSome(){}
    public void doSomeOthers(){}
    public A(){}
    public static void main(String... args){
        doSome();
    }
}
上面这样是静态方法中直接调用本类的其他静态方法
public class A{
    public static void doSome(){}
    public void doSomeOthers(){}
    public A(){}
    public static void main(String... args){
        new A().doSomeOthers();
    }
}
而这个就是在静态方法中调用本类的非静态的方法了 所以第三第四选项也是错的
至于第一个选项 类加载的时候 关于静态方法局部变量表第一个不是this 不存在this

发表于 2019-08-22 09:23:53 回复(0)
主函数就是静态方法可调用非静态
发表于 2019-09-24 17:21:59 回复(0)

this后代指当前成员变量或对象,而静态方法是以类,所以并不需要this调用,静态方法中可以通过实例调用

发表于 2019-09-19 20:58:54 回复(0)
屏蔽了好几次,你为何还出来
发表于 2019-09-07 19:59:30 回复(0)
个人理解,不能调用this是因为可能对象还没创建,比如你通过类名调用静态方法,而该类都没有实例化,又怎么在静态方法内调用非静态方法呢。
发表于 2019-09-06 23:49:16 回复(0)
请问怎么理解D选项,静态方法不是比实例方法先加载吗
发表于 2019-08-22 07:38:05 回复(1)