面向物件及方法的呼叫
面向物件
- 面向物件編程的本質是:以類的方式組織代碼,以物件的組織封裝資料
- 三大特性:
- 封裝
- 繼承
- 多肽
- 從認識角度考慮是先有物件后有類,從代碼的角度考慮是先有類后有物件,類是物件的模板
方法的呼叫
-
同一個包中的類可以直接使用,直接用類名點呼叫其中的方法
-
呼叫本類中的靜態方法可以直接用方法名就可以
例如:
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一個本類的物件,用物件進行呼叫
例如:
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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/253811.html
標籤:Java
下一篇:類與物件的創建
