java怎么在静态方法中使用动态方法

如题所述

java在静态方法中使用动态方法的方法是new对象出来,然后用.的方式调用方法:

举例如下:

定义Outer.java:

public class Outer {

  private static int size;

  public void dostuff() {

      size++;

      System.out.println("hello,I am called");

  }

}

然后在另外的测试类Main中,调用:

public class Main {

public static void main(String[] args) {

Outer outer =new Outer();

outer.dostuff();

}

}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-08
Java静态方法是不能调用动态方法的,原因如下:
1.因为静态方法和动态方法在内存中的位置不一样,静态方法的地址空间在加载类的时候就确定,而动态方法的地址空间在生成类实例的时候确定
2.静态方法在程序初始化后会一直贮存在内存中,不会被垃圾回收器回收,
非静态方法只在该类初始化后贮存在内存中,当该类调用完毕后会被垃圾回收器收集释放。
3.静态方法在初始化类时初始化,并分配内存;动态方法只有先创建类的实例对象后,才能调用动态方法
第2个回答  2016-04-22
1.静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存.
class A
{
public static string b()
{
return "Hello";
}

}

用法: A.b(); //调用方便
静态方法可以通过类名直接调用,
2.动态的方法在先声明类实例才能调用类中的方法.

class A
{
public string b()
{
return "Hello";
}
}
用法: A a = new a(); a.b();
3.一般使用频繁的方法用静态方法,用的少的方法用动态的。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。
4.静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题都不会有的。最好是包要操作的数据全部以参数的方式传到方法中去
5. 静态方法是类方法,调用时不需要创建类实例。
6. 静态方法是静态绑定到子类,不是被继承。本回答被提问者和网友采纳
第3个回答  2016-04-22
Java里静态方法不能调用非静态方法。
只能把被调用的方法改成静态的。
相似回答