java方法静态调用
㈠ java怎么在静态方法中使用动态方法
Java静态方法是不能调用动态方法的,原因如下:
1.因为静态方法和动态方法在内存中的位置不一样,静态方法的地址空间在加载类的时候就确定,而动态方法的地址空间在生成类实例的时候确定
2.静态方法在程序初始化后会一直贮存在内存中,不会被垃圾回收器回收,
非静态方法只在该类初始化后贮存在内存中,当该类调用完毕后会被垃圾回收器收集释放。
3.静态方法在初始化类时初始化,并分配内存;动态方法只有先创建类的实例对象后,才能调用动态方法
㈡ java中如何在静态方法中实现对非静态方法的调用,请问各位有没有具体的例子。
public class A{
//类A中非静态方法
public void func(){ ...... }
//类A中静态方法(主函数)
public static void main(String[] args){
A a=new A();//需实例化A的对象后才可以调用A中非静态方法
a.func();
}
如上面这个简单的例子,静态方法对非静态方法发起调用时,需实例化包含非静态方法的类的对象。如果类A中静态方法需调用类B中非静态方法时,也需实例化B的对象。
原因解释:类中静态的方法或者属性,本质上来讲并不是该类的成员,在java虚拟机装在类的时候,这些静态的东西已经有了对象,它只是在这个类中"寄居",不需要通过类的构造器(构造函数)类实现实例化;而非静态的属性或者方法,在类的装载是并没有存在,需在执行了该类的构造函数后才可依赖该类的实例对象存在。所以在静态方法中调用非静态方法时,编译器会报错(Cannot make a static reference to the non-static method func() from the type A)。
不知这么说你懂了没,如果还有什么不懂可以继续问我。
㈢ java 普通方法可以直接调用静态方法吗
可以的,因为创建对象的时候必然加载了
静态方法
,所以普通方法可以调用。但静态方法不能访问普通方法,因为不能保证内存中分配了普通方法的空间
㈣ java如何调用静态方法中的值
你这写的啥东西哦。。。
1、你是想获得他的返回值 ,那你返回值咋是void。。。
2、你是get,你传参数进去干嘛
public static String getStr(){
String a="test";
return a;
}
public static void main(String[] args){
String str=getStr();
System.out.println(str);
}
㈤ Java中,静态方法能调用静态变量么用(类名.静态变量)方法
可以的。
一个类的
静态函数
可以调用这个类的静态函数、
静态变量
(公有和私有都可以),
以及其他类的公有
静态函数和静态变量。
㈥ java本类的静态方法如何直接调用,其他类的静态方法如何调用
java本类的静态方法,直接使用静态的方法名传入参数就可以了,如果是其他类的,权限修饰符必须是public否者无法调用,调用方法是
其他类的类名
.
方法名(参数)