77问答网
所有问题
java中静态的函数不可以调用非静态的函数吗?
在main中调用一个非静态的函数,提示错误说“非静态的函数不可以被静态的函数调用”
举报该问题
推荐答案 2012-04-22
嗯,不可以调用的
静态的函数,为啥要叫静态呢 ?
因为它不动啊!
何为不动 ? 即是不管你这个类产生了多少个对象,这静态的属性或者函数都只有这么一个存在,也就是说每个类的实例中的静态成员都是同一个。
既然如此,你一个静态函数如果想要调用非静态的函数,那请问一下,您是想调用哪个对象的函数呢 ?您倒是静态的,不管哪个对象中都是您,可人家非静态的不是啊,人家每个对象中都不同的啊,这您一不做二不休就想去调用,那能成吗 ? 显然不行的。
那怎么办呢 ?
当然是使用实例对象来调用了,也就是说指定一个对象,让这个静态的知告诉上头,它要调用的非静态函数是属性哪个对象的。
如:
publiv class A {
public void main(String[] args) {
fuck(); //这里这样调用就不对了,因为没有指明是要调用哪个对象的fuck函数
A a = new A();
a.fuck(); //这里这样调用对了,指明说要调用a这个对象的fuck函数
}
void fuck() {}
}
比如,你的朋友问你:你的车买来多少年了 ?
你怎么回答 ?
你就得琢磨啊,这人家又没具体问你的什么车 ?
人家说是问你自行车了吗 ? 说是问你汽车了吗 ?
人家并没有。。
那你能直接回答说啥买了3年、5年了吗 。?
不能的!
所以,你就得问,你问的是啥车 ? 你不说你问的啥车我怎么知道我应该告诉你我什么车买了多少年啊。。
就这样,你就给他报个错!
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/WGWYWIGpI.html
其他回答
第1个回答 2012-04-23
静态方法和实例方法的不同是,静态方法是在类加载的时候就已经编译了,而实例方法必须有实例的清空下才能使用。
A类有一个静态方法a,实例方法b 那么你调用A的时候可以直接A.a;但是调用b的时候必须先实例
new A().b这样才行本回答被提问者采纳
第2个回答 2012-04-22
你必须实例化那个函数所在的类,然后再调用实例的这个方法,或者这个方法改为static。
相似回答
java静态
方法
能调用非静态
方法么
答:
当然可以
。你可以参考示例。public class A{ //类A中非静态方法 public void func(){ ... } //类A中静态方法(主函数)public static void main(String[] args){ A a=new A();//需实例化A的对象后才可以调用A中非静态方法 a.func();} ...
java
静态方法
可以调用非静态
方法吗
答:
//必须可以
!public class 非静态方法{public static void main(String[] args) {System.out.println("\n\t\t===java 静态方法可以调用非静态方法吗!===\n");init();}//测试案例,静态方法!private static void init(){//这里调用下面的,看控制台输出!new 非静态方法().show();//很好调...
Java静态
方法
调用
问题~~
答:
当然不是啦
,静态方法和普通方法最大的区别就是静态方法是属于类本身的,也就是他的Class类。而普通方法是属于这个类的对象的,必须创建了对象才能调用。所以静态方法可以直接用类名.方法名。
JAVA中
"静态方法中
不能
直接
调用非静态的
属性和方法"何以理解?举个例子...
答:
y);正确 doi();这句话也错因为静态方法
中不能
直接
调用非静态
方法 doi2();正确 } } ———回楼主,如果你这个对象中有非静态方法的话那是
可以调用的
,因为非静态方法就是用new出来的对象调用的
Java静态
方法为什么
不能
访问
非静态
方法
答:
可以通过类名直接去访问,
非静态
成员(变量和方法)属于类的对象,所以只有在类的对象禅师(创建实例)的时候才会分配内存,然后通过类的对象去访问。在一个类
的静态
成员中去访问非静态成员之所以会出错是因为在类的非静态成员不存在的时候静态成员就已经存在了,访问一个内存中
不
存在的东西当然会出错。
JAVA中
在static方法内部能否
调用非静态
方法?
答:
static方法内部
不能
直接
调用非静态
方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类
里面的
method();className cn=new className();cn.method();这样就可以了。希望能帮助你。
java
静态方法
里面可以调用非静态
方法吗
答:
//
可以的
!public class StaticTest {public static void main(String[] args) {System.out.println("\n\t\t如何实现静态方法
调用非静态
方法有哪些\n");//方式1:匿名调用!new StaticTest().show();//方式2:创建对象调用!StaticTest st=new StaticTest();st.show();}//非静态方法!void show...
大家正在搜
java静态和非静态的调用
java静态方法调用静态方法
java静态类和静态方法
java函数调用
Java中的静态方法是什么
java怎么调用另一个类的方法
java静态方法使用
java什么时候用静态方法
java非静态方法
相关问题
静态函数可以直接调用非静态函数吗
java中,未创建对象时,静态函数不可以调用非静态函数,那要...
java中静态的函数不可以调用非静态的函数吗
JAVA 里既然静态方法无法调用非静态方法,那主方法main...
java主方法如何调用非静态方法
JAVA中 在static方法内部能否调用非静态方法
JAVA中,非静态方法可以调用静态成员变量吗?
静态函数当中使用非静态变量