JAVA中 在static方法内部能否调用非静态方法

如题所述

static方法内部不能直接调用非静态方法,
可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。
例:非静态方法是className类里面的method();
className cn=new className();
cn.method();
这样就可以了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-03
不可以,因为静态方法是不需要实例化,非静态方法是必须实例化的。所以,静态方法调用非静态方法不能用this.方法名()来调用。必须先实例化一个对象,然后用对象名.方法名()。
第2个回答  2010-03-04
小小的盗贼正解。

JAVA中 在static方法内部能否调用非静态方法?
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。希望能帮助你。

Java中的静态方法为什么不能调用非静态方法
没报错对不对?这不能说明在C语言中,静态方法能够调用非静态方法。在C语言中,static不是用来定义非静态方法的,是用来限制方法的作用域的。就是说,方法前面加了static修饰,这个方法只能在当前文件中调用。因为C语言是面向过程的语言。这里的方法称为函数更合适。如果是C++呢?看代码。结果及背后的原...

不能在static方法中调用非static方法
如果你只是在这里写着玩,就只能把stgatic写成静态的。如果在项目中,这种情况是基本不会有的,要尽量少的用静态方法。他们一直占用着内存的。

如何在静态方法中调用非静态方法
public static void main(String[] args) { StaticMethodTest sObj=new StaticMethodTest();StaticMethod(sObj); \/\/在主函数中可以直接调用静态方法 } }

java为什么不能在静态方法中使用非静态变量
静态方法是不用创建对象就直接调用,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法,只能访问方法体内的局部变量、自己的参数和静态变量,而非静态变量是给一个类的实例化对象调用的,一个是类调用,一个是类对象调用,所有在静态方法中是不能使用非静态变量的。实例:上面出错的原因...

用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
在类DuiLie的前面加上static,因为static void main函数是静态函数,只能调用静态成员,不能调用动态成员

JAVA无法从静态上下文中引用非静态 变量 this
也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.

“无法从静态上下文中引用非静态方法”这个问题怎么解决?
静态方法中不能直接调用非静态方法。因为非静态方法不是独立存在的,它是依附于对象存在——即只有申明了对象,才能通过对象调用。而静态方法则可以直接通过类名调用,而不需要申明对象。因此直接引用非静态方法就会出错。比如常见的main方法都是静态的,必须由static修饰,因此在main方法里调用类的其他非静态...

相似回答