同一個包中的類能夠直接使用,直接用類名點調用其中的方法java
調用本類中的靜態方法能夠直接用方法名就能夠編程
例如:code
public static void main(String[] args){ a(); } public static void a(){ System.out.println("我是一個靜態方法"); }
調用同一個包中的另外一個類中的靜態方法,須要用類名點方法名進行調用對象
public static void main(String[] args){ xuexi.b(); }
調用同一個包中的另外一個類中的非靜態方法,須要new一個該類的對象,用對象調用他的方法繼承
例如:面向對象編程
public static void main(String[] args){ //對象類型 對象名 = 對象值 xuexi xuexi = new xuexi();//new了xuexi類的對象 xuexi.b();//對象調用方法 }
調用本類中的非靜態方法,也須要new一個本類的對象,用對象進行調用模板
例如:class
public class lianxi1 { public static void main(String[] args){ //對象類型 對象名=對象值 lianxi1 name = new lianxi1(); name.a(); } public void a(){ System.out.println("我是一個靜態方法"); } }
注意:引用
靜態方法是不能調用非靜態方法的,由於靜態方法是和類一塊兒加載的,而非靜態方法建立對象後才存在,因此他們有時間差,靜態方法出現的時候非靜態方法尚未出現吶方法
除了這種狀況,其餘狀況的方法調用方法都是能夠的
例如:
public static void i(){ a();//掉不出來a方法,由於a是非靜態方法 }
舉例說明:
public static void main(String[] args){ int a=1; xx(a);//a執行力此方法後a的值還爲1,a只是給這個方法進行了傳值,並無將a自己傳給方法,這就是值傳遞 System.out.println(a); } public static void xx(int a){ a=10; }
舉類說明:
public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);//輸出爲空 Demo05.change(person); System.out.println(person.name);//輸出對象,這就是引用傳遞 } public static void change(Person person){ person.name="對象"; } static class Person{ String name; } }