Java基礎-類和對象【面向對象編程】

1.面向對象編程的概念

     1)萬物皆是對象

     2)指以屬性(特徵)和行爲的觀點去分析現實生活中的事物【首先對特徵和行爲進行分析】

    面向對象編程

     3)先對面向對象的思想進行分析,然後使用面向對象的編程語言進行表達的過程

     4)C:面向過程 C++:面向過程+面向對象 Java:純粹的面向對象; 

           面向過程:佈置任務,取上課,各個時間段幹啥,就是所有的過程以及步驟;

           面向對象:我是個對象,分析特徵(熟悉,是否具備講師特徵,講課的行爲是否具備)明天你就去給xx接課

     5)產業發展的需求

     6)三大精髓封裝、多態、繼承

2.類和對象的概念

    1)對象:現實客觀存在的實體,java中體現爲內存空間中的一塊cun

    2)類:分類,具有相同特徵和行爲的多個對象共性的抽象描述,在java中語言種體現爲一種引用數據類型,裏面包含描述特徵/屬性的成員變量以及描述行爲的成員方法;

    3)類是用於構建對象的模版,對象的數據結構由定義他的類決定

    4)類的定義:                   

class 類名{

                    類體

             }

             類名有多個單詞,應首字母大學,即”駝峯命名法“

        5)成員變量的定義

             數據類型 成員變量名 = 初始值;

             規定:成員變量有多個單詞組成,通常從第二個單詞的首字母大寫

       6)對象的創建

              new 類名();

              本意:類定義完成後,用new關鍵字創建該類的對象,這個過程話叫類的實例化;

              實質:創建對象的本質是在內存空間的堆區申請一塊存儲區域,存放該對象獨有的特徵信息;

       7)引用的定義       

              基本概念:

              a.使用引用數據類型定義的變量,簡稱引用

              b.引用變量主要用於記錄對象在堆區中的內存地址信息,便於訪問

            

            語法格式:

             類名 引用變量名;

             引用變量名.成員變量名;             

       8)案例題目  

eg1:       

             class Person(){

                String name;

             }

              new Person();

             eg2:

              Person p = new Person();

               p.name = “我是你”;

               sout(p.name);

       9)Person類代碼執行流程

ps:小編的畫圖水平並不高,敬請見諒!!!

         

3.成員方法的定義

         1)內部的內容

         2)class 類名{

              返回值類型 成員方法名(形參列表){

                   成員方法體;

                 }

                }

         成員方法由多個單詞組成是,要求從第二個單詞起每個單詞的首字母大寫。

        3)返回值類型:返回值的數據類型,可以爲基本數據類型,也可引用數據類型(方法體內返回方法體外,使用return,遇到return方法結             束)

        4)形參列表:多個形參,數據從方法體外-> 方法體內,無初始值。

        5)成員方法可以實現代碼重用,簡化代碼。

        6)成員變量與成員方法在同一個類中,成員方法可以訪問成員變量

        7)實參對形參進行初始化操作,個數、類型、順序都要完全一致,可以傳直接量、變量、表達式、

        8)調用方法的本質是根據方法名跳轉過去執行方法在這個位置

        9)有參無返回值的成員方法的使用

package com.lagou.module1.prject2;
//降低了代碼的耦合性,即代碼的解藕合
public class Person {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    //定義成員變量
    //人的特徵,姓名
    String name;
    int age;
//以參數的形式傳入姓名和年齡
//開發中使用的最多的是單獨的模式,改一個都要改,比較麻煩
    void setNameAge(String name,int age){
        this.name = name;
        this.age = age;
    }

    void show(){
        System.out.println("我是"+name+",今年"+age);
    }

    void showall(int... args){
        for(int i = 0;i < args.length;i++){
            System.out.println("i的值是"+i+args[i]);
        }
    }
    public static void main(String[] args) {
        //聲明person對象只想person類
        Person p = new Person();
        //打印對象中的成員變量值;
        //引用變量名 成員變量名
        System.out.println("我是"+p.name+",今年"+p.age);
        //引用數據類型默認值是null,基本數據類型默認是0
        System.out.println("------------------------------------------------------");
        p.name = "章三";
        p.age = 38;
        System.out.println("我是"+p.name+",我的名字是"+p.age);
        System.out.println("------------------------------------------------------");

        p.setNameAge("關羽",40);
        p.show();
        p.showall(1,2,3,4,5,6);
    }

}

4.可變長參數的使用

參數的長度可以發生改變

    返回值類型 方法名(參數的類型 ... 參數名),參數個數可變,參數包含固定也包含可變長參數,則可變長放在列表末尾

    自定義成員變量使用可變長參數,當成一位數組使用

 void showall(int... args){
         for(int i = 0;i < args.length;i++){
             System.out.println("i的值是"+i+args[i]);
         }

5.成員變量與局部變量之間的區別

     1)聲明位置不同:成員變量是寫在累的內部,方法體的外部。局部變量是方法體內部的

     2)作用域不同:成員變量聲明開始到類體結束,局部變量是從聲明開始到方法體結束

6.方法傳參的過程

7.參數傳遞的注意事項

      1)基本數據類型:作爲形式參數時,形參變化不影響實參變化,分別存儲在不同的內存塊

      2)引用數據類型:作爲形式參數時,形參變化影響實參變化,因爲引用數據類型傳遞的是堆內存地址,存儲在同一塊內存區域

      3)引用數據類型:作爲形式參數時,形參指向發生改變後,數值改變不影響實參變化,因爲引用數據類型傳遞的是堆內存地址,不存儲在同一塊內存區域

喜歡本文的朋友們,歡迎長按下圖關注訂閱不得不說叔,收看更多精彩內容

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章