本文以静态方法和非静态方法进行区分。
一,静态方法调用其他方法
1.静态方法调用非静态方法
无论是否在同一个类中,均需要通过对象调用。
Son类:
public class Son { public void Son2(){//Son类里的非静态方法 System.out.println("Son类里的非静态方法的儿子"); } }
Test类:
public class Test { public void Son1(){//非静态方法 System.out.println("同类里的非静态方法的儿子"); } public static void main(String[] args) { Test test = new Test(); test.Son1();//静态方法通过对象调用同一个类里的非静态方法 Son son = new Son(); son.Son2();//静态方法通过对象调用另一个类里的非静态方法 } }
2.静态方法调用静态方法
同一个类内直接调用,不同类直接通过“类名.方法名(参数表)”调用。
Son类:
public class Son { public static void Son2(){//Son类里的静态方法 System.out.println("Son类里的静态方法的儿子"); } }
Test类:
public class Test { public void staic Son1(){//静态方法 System.out.println("同类里的静态方法的儿子"); } public static void main(String[] args) { Son1();//静态方法直接调用同一个类里的静态方法 Son.Son2();//静态方法通过调用同一个类里的静态方法 } }
二,非静态方法调用其他方法
1.非静态方法在同一个类内调用其他方法
在同一个类内,非静态方法可以直接调用静态方法和非静态方法。
Test类:
public class Test { public void Son1(){//非静态方法 System.out.println("同一个类里的非静态方法的儿子"); } public static void Son2(){//静态方法 System.out.println("同一个类里的静态方法的儿子"); } public void run(){ Son1();//非静态方法直接调用同一个类里的非静态方法 Son2();//非静态方法直接调用同一个类里的静态方法 } public static void main(String[] args) { Test test = new Test(); test.run(); } }
2.非静态方法在不同类之间调用其他方法
在不同类之间,非静态方法需要通过对象才能调用非静态方法。可以通过类名调用静态方法。
Test类:
public class Test { public void run(){ Son son = new Son(); son.Son1();//非静态方法通过对象调用另一个类里的非静态方法 Son.Son2();//非静态方法通过类名调用另一个类里的静态方法 } public static void main(String[] args) { Test test = new Test(); test.run(); } }
Son类:
public class Son { public void Son1(){//非静态方法 System.out.println("Son类里的非静态方法的儿子"); } public static void Son2(){//静态方法 System.out.println("Son类里的静态方法的儿子"); } }
还没有评论,来说两句吧...