问答详情
源自:8-9 Java 中的 static 使用之静态方法

普通方法调用同类中的静态和非静态方法有什么规则?

如题 普通方法调用同类中的静态和非静态方法有什么规则?

提问者:CookingRock 2014-12-15 16:58

个回答

  • CookingRock
    2015-03-09 23:22:26

    我这才发现···不好意思啊  还是谢谢你了

  • _潇潇暮雨
    2014-12-16 22:30:55

        静态方法不能调用非静态方法,因为调用非静态方法要实例化对象。调用静态方法直接用"类名.静态方法名",而非静态方法的调用格式是"对象.方法名"。

    class A {
    	public static void fun1() {
    		System.out.println("妈妈再也不用担心我的学习了!");
    	}
    
    	public  void fun2() {
    		System.out.println("慕课网");
    	}
    
    	public void fun3() {
    		this.fun1();				//非静态方法可以调用静态方法,反之不成立
    		System.out.println("你好!");
    	}
    
    }
    
    public class Demo {
    
    	public static void main(String[] args) {
    		A.fun1(); 		//静态方法直接通过类名进行访问
    		new A().fun1();	//静态方法也可以通过实例化对象的方式进行访问
    		
    		/*通过实例化对象的方式调用非静态方法*/
    		new A().fun2();
    		new A().fun3();
    	}
    
    }

        程序运行结果:

    妈妈再也不用担心我的学习了!

    妈妈再也不用担心我的学习了!

    慕课网

    妈妈再也不用担心我的学习了!

    你好!