java基礎六

06.01_面向對象(面向對象思想概述)(瞭解)

  • A:面向過程思想概述
    • 第一步
    • 第二步
  • B:面向對象思想概述
    • 找對象(第一步,第二步)
  • C:舉例
    • 買煎餅果子
    • 洗衣服
  • D:面向對象思想特點
    • a:是一種更符合我們思想習慣的思想
    • b:可以將複雜的事情簡單化
    • c:將我們從執行者變成了指揮者
      • 角色發生了轉換
  • E:面向對象開發
    • 就是不斷的創建對象,使用對象,指揮對象做事情。
  • F:面向對象設計
    • 其實就是在管理和維護對象之間的關係。
  • G:面向對象特徵
    • 封裝(encapsulation)
    • 繼承(inheritance)
    • 多態(polymorphism)

06.02_面向對象(類與對象概述)(掌握)

  • A:我們學習編程是爲了什麼
    • 爲了把我們日常生活中實物用學習語言描述出來
  • B:我們如何描述現實世界事物
    • 屬性 就是該事物的描述信息(事物身上的名詞)
    • 行爲 就是該事物能夠做什麼(事物身上的動詞)
  • C:Java中最基本的單位是類,Java中用class描述事物也是如此
    • 成員變量 就是事物的屬性
    • 成員方法 就是事物的行爲
  • D:定義類其實就是定義類的成員(成員變量和成員方法)
    • a:成員變量 和以前定義變量是一樣的,只不過位置發生了改變。在類中,方法外。
    • b:成員方法 和以前定義方法是一樣的,只不過把static去掉,後面在詳細講解static的作用。
  • E:類和對象的概念
    • a:類:是一組相關的屬性和行爲的集合
    • b:對象:是該類事物的具體體現
    • c:舉例:
      • 類 學生
      • 對象 具體的某個學生就是一個對象

06.03_面向對象(學生類的定義)(掌握)

  • A:學生事物
  • B:學生類
  • C:案例演示
    • 屬性:姓名,年齡,性別
    • 行爲:學習,睡覺

06.04_面向對象(手機類的定義)(掌握)

  • 模仿學生類,讓學生自己完成
    • 屬性:品牌(brand)價格(price)
    • 行爲:打電話(call),發信息(sendMessage)玩遊戲(playGame)

06.05_面向對象(學生類的使用)(掌握)

  • A:文件名問題
    • 在一個java文件中寫兩個類:一個基本的類,一個測試類。
    • 建議:文件名稱和測試類名稱一致。
  • B:如何使用對象?
    • 創建對象並使用
    • 格式:類名 對象名 = new 類名();
  • D:如何使用成員變量呢?
    • 對象名.變量名
  • E:如何使用成員方法呢?
    • 對象名.方法名(…)

06.06_面向對象(手機類的使用)(掌握)

  • A:學生自己完成
    • 模仿學生類,讓學生自己完成

06.07_面向對象(一個對象的內存圖)(掌握)

  • A:畫圖演示
    • 一個對象
      在這裏插入圖片描述

06.08_面向對象(二個對象的內存圖)(瞭解)

  • A:畫圖演示
    • 二個不同的對象
      在這裏插入圖片描述

06.09_面向對象(三個引用兩個對象的內存圖)(瞭解)

  • A:畫圖演示
    • 三個引用,有兩個對象的引用指向同一個地址
      在這裏插入圖片描述

06.10_面向對象(成員變量和局部變量的區別)(掌握)

  • A:在類中的位置不同

    • 成員變量:在類中方法外
    • 局部變量:在方法定義中或者方法聲明上
  • B:在內存中的位置不同

    • 成員變量:在堆內存(成員變量屬於對象,對象進堆內存)
    • 局部變量:在棧內存(局部變量屬於方法,方法進棧內存)
  • C:生命週期不同

    • 成員變量:隨着對象的創建而存在,隨着對象的消失而消失
    • 局部變量:隨着方法的調用而存在,隨着方法的調用完畢而消失
  • D:初始化值不同

    • 成員變量:有默認初始化值
    • 局部變量:沒有默認初始化值,必須定義,賦值,然後才能使用。
  • 注意事項:

    • 局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,採用的是就近原則。
    • 基本數據類型變量包括哪些:byte,short,int,long,float,double,boolean,char
    • 引用數據類型變量包括哪些:數組,類,接口,枚舉

06.11_面向對象(方法的形式參數是類名的時候如何調用)(掌握)

  • A:方法的參數是類名public void print(Student s){}//print(new Student());
    • 如果你看到了一個方法的形式參數是一個類類型(引用類型),這裏其實需要的是該類的對象。

06.12_面向對象(匿名對象的概述和應用)(掌握)

  • A:什麼是匿名對象
    • 沒有名字的對象
  • B:匿名對象應用場景
    • a:調用方法,僅僅只調用一次的時候。
      • 那麼,這種匿名調用有什麼好處嗎?
        • 節省代碼
      • 注意:調用多次的時候,不適合。匿名對象調用完畢就是垃圾。可以被垃圾回收器回收。
    • b:匿名對象可以作爲實際參數傳遞
  • C:案例演示
    • 匿名對象應用場景
    • D: 匿名對象內存圖:在這裏插入圖片描述

06.13_面向對象(封裝的概述)(掌握)

  • A:封裝概述

    • 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
  • B:封裝好處

    • 隱藏實現細節,提供公共的訪問方式
    • 提高了代碼的複用性
    • 提高安全性。
  • C:封裝原則

    • 將不需要對外提供的內容都隱藏起來。
    • 把屬性隱藏,提供公共方法對其訪問。

06.14_面向對象(private關鍵字的概述和特點)(掌握)

  • A:人類賦值年齡的問題
  • B:private關鍵字特點
    • a:是一個權限修飾符
    • b:可以修飾成員變量和成員方法
    • c:被其修飾的成員只能在本類中被訪問
  • C:案例演示
    • 封裝和private的應用:
    • A:把成員變量用private修飾
    • B:提供對應的getXxx()和setXxx()方法
    • private僅僅是封裝的一種體現形式,不能說封裝就是私有

06.15_面向對象(this關鍵字的概述和應用)(掌握)

  • A:this關鍵字特點
    • 代表當前對象的引用
  • B:案例演示
    • this的應用場景
    • 用來區分成員變量和局部變量重名

06.16_面向對象(手機類代碼及其測試)(掌握)

  • A:學生練習
    • 請把手機類寫成一個標準類,然後創建對象測試功能。

        class Demo2_Phone {
        	public static void main(String[] args) {
        		Phone p1 = new Phone();
        		p1.setBrand("三星");
        		p1.setPrice(5288);
        
        		System.out.println(p1.getBrand() + "..." + p1.getPrice());
        		p1.call();
        		p1.sendMessage();
        		p1.playGame();
        	}
        }
        /*
        手機類
        	屬性:品牌brand,價格price
        	行爲:打電話call,發短信sendMessage,玩遊戲,playGame
        */
        class Phone {								//java bean
        	private String brand;					//品牌
        	private int price;						//價格
        
        	public void setBrand(String brand) {	//設置品牌
        		this.brand = brand;
        	}
        
        	public String getBrand() {				//獲取品牌
        		return this.brand;					//this.可以省略,你不加系統會默認給你加
        	}
        
        	public void setPrice(int price) {		//設置價格
        		this.price = price;
        	}
        
        	public int getPrice() {					//獲取價格
        		return price;
        	}
        
        	public void call() {					//打電話
        		System.out.println("打電話");
        	}
        
        	public void sendMessage() {				//發短信
        		System.out.println("發短信");
        	}
        
        	public void playGame() {				//玩遊戲
        		System.out.println("玩遊戲");
        	}
        }
      

      相關面試題:

      1:局部變量和成員變量的區別?
      詳情見筆記
      2:匿名對象是什麼?應用場景是什麼?
      沒有名字的對象
      當作參數傳遞
      對方法一次調用
      3:封裝是什麼?java中封裝的體現有哪些?請舉例說明。
      封裝是隱藏實現細節,對外提供公共的訪問方法
      私有屬性
      私有行爲
      4:this關鍵字是什麼?this關鍵字的應用場景?
      代表當前對象的引用
      區分局部變量和成員變量重名的時候
      5:如何使用一個類的成員
      對象名.成員

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