JAVA中 在static方法内部能否调用非静态方法?
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。希望能帮助你。
Java中的静态方法为什么不能调用非静态方法
没报错对不对?这不能说明在C语言中,静态方法能够调用非静态方法。在C语言中,static不是用来定义非静态方法的,是用来限制方法的作用域的。就是说,方法前面加了static修饰,这个方法只能在当前文件中调用。因为C语言是面向过程的语言。这里的方法称为函数更合适。如果是C++呢?看代码。结果及背后的原...
如何在静态方法中调用非静态方法
public static void main(String[] args) { StaticMethodTest sObj=new StaticMethodTest();StaticMethod(sObj); \/\/在主函数中可以直接调用静态方法 } }
java为什么不能在静态方法中使用非静态变量
静态方法是不用创建对象就直接调用,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法,只能访问方法体内的局部变量、自己的参数和静态变量,而非静态变量是给一个类的实例化对象调用的,一个是类调用,一个是类对象调用,所有在静态方法中是不能使用非静态变量的。实例:上面出错的原因...
不能在static方法中调用非static方法
如果你只是在这里写着玩,就只能把stgatic写成静态的。如果在项目中,这种情况是基本不会有的,要尽量少的用静态方法。他们一直占用着内存的。
用static修饰的方法能不能调用非static方法,能不能访问非static变量...
不能,因为静态方法在类装载的时候就分配了内存块,而非静态的方法和变量在new这个类的对象的时候才分配内存块, 他们内存分配的时间不一样 静态区域访问非静态区域是没有任何意义的 本回答由提问者推荐 举报| 答案纠错 | 评论 33 1 497455993 采纳率:27% 来自团队:Java老馆 擅长: JAVA相关 数据库DB 手机使用...
java ,为什么无法从静态上下文中引用非静态方法
因为编译器不知道那个方法在哪,两种解决办法,一种加static修饰,这样在程序运行时就会被加载入内存,另一种创建对象,然后调用对象的方法,如 public static void main(String args[]){ TextLinerSearch t = new TextLinerSearch ();t.linearSearch(list,-3);} ...
JAVA无法从静态上下文中引用非静态 变量 this
内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public ...
【新面试题】Java中的静态方法为什么不能调用非静态方法
首先,你可能会说静态方法是属于类的,而非静态方法属于实例对象。这没错,但答案其实只差一句话。JVM是如何调用Java方法的呢?构建运行环境,调用Java方法。构建运行环境会多做一步给this指针赋值,这是关键。非静态方法会,静态方法不会。如果你能理解这段话,并从我手写的JVM中找到对应的代码,你就...
java中无法从静态上下文中引用非静态 变量 i while(i>0)
静态方法只能调用外部静态变量和静态方法,因为你的main()方法是静态方法,而你想去引用外面定义的非静态变量(i和j)当然就不行了,所以可以将i和j改成静态的或着将i和j的定义方到main方法里面去。1、static int i,j;2、main(){ int i,j;} 总结:静态方法只能引用外部的静态方法和静态变量,...