面向對象及方法的調用

面向對象及方法的調用

面向對象

  • 面向對象編程的本質是:以類的方式組織代碼,以對象的組織封裝數據
  • 三大特性:
    1. 封裝
    2. 繼承
    3. 多肽
  • 從認識角度考慮是先有對象後有類,從代碼的角度考慮是先有類後有對象,類是對象的模板

方法的調用

  • 同一個包中的類能夠直接使用,直接用類名點調用其中的方法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;
    }
}
相關文章
相關標籤/搜索