百度试题 结果1 题目[中等题]是否可以在静态(static)方法内部调用非静态(static)方法?相关知识点: 试题来源: 解析 答: 不可以,如果其中包含对象的method();不能保证对象初始化。反馈 收藏
题目28 、是否可以从一个静态( static )方法内部发出对非静态( non-static)方法的调用?相关知识点: 试题来源: 解析 答:不可以,静态方法只能访问静态成员, 因为非静态方法的调用要先创建对象,因此在调用静态方法时可能对象并没有被初始化。反馈 收藏
也就是说static方法中,没有this,那就没办法this.rest(),也就是没办法调用普通的非static的方法,因为这些方法都是要通过对象或者说是对象的引用才能调用的,static的方法中没有。 当然,你可以通过在static方法中new对象通过引用来调用方法或者说是通过传对象的引用作为参数来调用非static的方法。
staticpublic$name="小妹"; public$height= 180; staticpublicfunctiontell(){ echoself::$name;//静态方法调用静态属性,使用self关键词 //echo $this->height;//错。静态方法不能调用非静态属性 //因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象 } publicfunctionsay(){ echoself::$name....
我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法。但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-static方法。 其实这个事实的应用很经常,以至于我们不去重视:在主函数(static方法)中我们经常创建某个类的实例,再利用其饮用变量调用它的非静态方法...
是否可以从一个static(静态)方法内部调用非static(非静态)方法? 不可以。static方法调用时不需要创建对象(可直接调用),当一个static方法被调用时,可能还没有创建任何实例对象,也就不可能调用非静态方法。
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。
拓展问题:为什么java中的声明为static的main方法能调用非静态方法或变量? 原因:必须通过初始化(new)一个对象后,通过对象来调用,否则会报错。 classA{publicstaticvoidmain(String[]args){Aa=newA();a.printHello();}voidprintHello(){System.out.println("Hello");}}//结果正常 ...
百度试题 题目可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用。 A.正确B.错误相关知识点: 试题来源: 解析 B 反馈 收藏
百度试题 题目static方法中能直接调用非静态方法和非静态成员变量。相关知识点: 试题来源: 解析 错 反馈 收藏