1.静态方法调用静态方法:
用静态方法时通过(类名.方法名)的方法进行调用,当调用方法和被调用的方法在同一类中时,类名可省略,直接通过方法名进行调用;
同时也可以通过对象进行调用,但较为繁琐,一般不使用。
调用下面方法后可输出s1,s2中的内容。

public class test1 { public static voids1(){ System.out.println("调用了静态方法"); } public static void main(String[] args){ s1(); java2.s2(); }}
public class java2 {public static void s2(){System.out.println("再次调用静态方法");}}

输出结果如下图所示:

2.静态方法调用非静态方法:

静态方法调用非静态方法时,均需要通过对象进行调用。
调用下面的方法后可以输出是s1,s2中的值。

public class test1 {publicvoids1(){System.out.println("调用了非静态方法");}public static void main(String[] args){test1 s=new test1();s.s1();test2 s1=new test2();s1.s2();}}
public class test2 {publicvoid s2(){System.out.println("再次调用非静态方法");}}

输出结果如下图所示:

3.非静态方法调用静态方法
非静态方法调用静态方法时,若调用方法和被调用的方法在同一个类中,可直接调用,若不在同一个类中,则需要通过通过类名进行调用。
如下所示,调用下面的方法可输出s2和s3:

public class test1 {publicvoids1(){s2();test2.s3();}public static void s2(){System.out.println("调用了静态方法");}public static void main(String[] args) {test1 s1=new test1();s1.s1();}}
public class test2 {public static void s3(){System.out.println("再次调用静态方法");}}

输出结果如下图所示:

4.非静态方法调用非静态方法:
非静态方法调用非静态方法时若调用方法和被调用方法在同一个类中,则可以直接调用,若在不同的两个类中,则需要通过对象进行调用。
调用下面的方法可以输出s21和s3:

public class test1 {publicvoids1(){s2();test2 d=new test2();d.s3();}publicvoid s2(){System.out.println("调用了非静态方法");}public static void main(String[] args) {test1 s1=new test1();s1.s1();}}
public class test2 {publicvoid s3(){System.out.println("再次调用非静态方法");}}

输出结果如下所示: