java面向對象基礎

面向對象思想

  • 面向過程
    • 第一步
    • 第二步
    • 自己慢慢實現
  • 面向對象
    • 找到對象(第一步 第二步)
    • 封裝到對象中 由對象來實現第一步 第二步
  • 舉例
    • 買菜(面向對象)
      • 1找賣菜的老大媽
        • 大媽種菜
        • 洗乾淨
      • 2給錢得到菜
    • 買菜(面向過程)
      • 1自己種菜
      • 2自己洗乾淨
      • 3得到菜
  • 面向對象思想特點
    • 1 是一種更符合我們思想習慣的思想
    • 2 可以將複雜的事情簡單化
    • 3 將我們從執行都變成了指揮者
    • 4 就是將過程封裝下 直接面向對象
  • 面向對象的開發
    • 就是不斷的創建對象 使用對象 指揮對象做事情
  • 面向對象的設計
    • 其實就是在管理和維護對象之間的關係
  • 面向對象的特徵
    • 封裝
    • 繼承
    • 多態

類與對象概述

  • java中最基本的單位是類 java中用class描述事物也是如此
    • 成員變量:就是事物屬性
    • 成員方法:就是事物的行爲

    • 定義類其實就是定義類的成員
    • 成員變量:和以前定義的局部變量(方法中)是不一樣的 在類中 方法外
    • 成員方法:在類中定義的方法 沒有static
  • 類和對象的概念
    • 類 是一組相關屬性和行爲的集合
    • 對象 是類事物的具體體現 也可以說是類的實例
    • 舉例
      • 類:學生
      • 對象:學生中的一個對象

學生類的定義

  • A學生類
  • B案例演示
    • 屬性:姓名 年齡 身高
    • 行爲:學習 睡覺 上廁所

成員變量和局部變量的區別

  • A在類中的位置不同
    • 成員變量:在類的方法外
    • 局部變量:在方法的聲明上或者方法定義中
  • B在內存中的位置不同
    • 成員變量:在堆內存中(成員變量屬於對象 對象進堆內存)
    • 局部變量:在棧內存中(局部變量屬於方法 方法進棧內存)
  • C生命週期不同
    • 成員變量:隨着對象的創建而存在 隨着對象的消失而消失
    • 局部變量:隨着方法的調用而存在 隨着方法的調用完畢而消失
  • D初始化值不同
    • 成員變量:成員變量有初始化的值
    • 局部變量:沒有默認的初始化 必須定義 賦值 才能使用
  • 注意事項:
    • 局部變量名稱可以和成員變量的名稱一樣 在方法中使用的時候 就近原則
    • 基本數據類型: 整數類型,byte short int long 浮點類型,float double 字符類型,char 布爾類型:boolean
    • 引用數據類型:數組 類 接口 枚舉

匿名對象

  • 匿名格式
    • new 類();
  • 匿名對象調用方法格式
    • new 類().方法();
  • 匿名對象 適用於一次創建一次使用,多次使用不適合
  • 匿名對象 可以作爲方法的參數

封裝的概述

  • A封裝概述
    • 隱藏對象的屬性和實現的細節 僅對外提供公共訪問方式
  • B封裝好處
    • 隱藏實現細節 提供公共的訪問方式
    • 提高代碼的複用性
    • 提高安全性
  • C封裝原則
    • 將不需對外提供的內容都隱藏起來
    • 把屬性隱藏 提供公共方法對其訪問

private關鍵字概述和特別、

  • 1 private關鍵字特點
    • 是一個權限修飾符
    • 可以修改成員變量 和 成員方法
    • 被修改的成員 只能在本類中被訪問
  • 2安全演示

this關鍵字

  • 1,this關鍵字特點
    • 代表當前對象的一種引用
  • 2,案例演示
    • this的應用場景
    • 用來區分 成員變量 和 局部變量重名
    • public void setAge(int age){ this.age = age;}

手機類代碼及其測試

    class Test{

            public static void main(String[] args){

                Phone p1  = new Phone();
                p1.setBrand("小米");
                p1.setPrice(5555);
                System.out.println(p1.getBrand()+" " +p1.getPrice());

                p1.call();
                p1.sendMessage();
                p1.playGame();

            }
    }

    /*
        手機類
            屬性:品牌brand 價格price
            行爲:打電話call  發短信sendMessage 玩遊戲playGame()
    */
    class Phone{
        //屬性私有 提供set和get方法
        private String brand;
        private int price;

        //設置品牌 參數 String 
        public void setBrand(String brand){
            this.brand = brand;
        }
        //獲取品牌 返回類型 String
        public String getBrand(){
            return this.brand;//this.可以省略
        }

        //設置價格 參數 int price
        public void setPrice(int price){
            this.price = price;
        }
        //獲取價格
        public int getPrice(){
            return price;
        }
    //成員方法 打電話 call
    public void call(){
        System.out.println("打電話");

    }

    //發短信
    public void sendMessage(){
        System.out.println("發短信");
    }

    //玩遊戲 
    public void playGame(){
        System.out.println("玩遊戲 ");
    }


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