1.写法不同
静态方法写法为 public static void add()
实例化方法写法为 public void add2()
2.调用方法不同
静态方法只能直接调用静态的方法和属性 写法为:Lianxi.add()//类名.变量
实例化方法可以调用实例化的方法和属,也可以调用静态的方法和属性(首先要实例化New )
package com.hanqi; public class Lianxi { public static void add() { System.out.println("这是一个静态方法"); } public void add2() { System.out.println("这是一个动态方法"); } public static void main(String[] args) { Lianxi.add();//静态方法可以直接调用 Lianxi lianxi = new Lianxi(); lianxi.add();//实例化方法也可以调用非静态方法的属性和方法,,首先要实例化 lianxi.add2();//实例化方法必须首先实例化才可以调用实例化方法的属性和方法 } }
3.静态的属性和方法是共享的,而实例化的属性和方法是单个的
package com.hanqi; public class Lianxi { public static int t1 = 0;// 静态 public int t2 = 0;// 非静态 public void add2() { t1++; t2++; System.out.println(this + " 静态属性 t1=" + t1 + " 实例属性t2=" + t2); } public static void main(String[] args) { for (int i = 0; i < 10; i++) { Lianxi lianxi = new Lianxi(); lianxi.add2(); }
运行结果为
可以看到作为静态的t1随着循环次数的增加之不断改变,是共享的,只有一份;而实例化的t2值没有改变,实例属性是单独的