1. 程式人生 > 實用技巧 >Java學習筆記(十三) 面向物件基礎

Java學習筆記(十三) 面向物件基礎

一、類和物件

1.1 什麼是物件

萬物皆物件,客觀存在的事物皆為物件

1.2 什麼是面向物件

1.3 什麼是類

類就是對現實生活中一類具有共同屬性行為的事物的抽象

類的特點:

  • 類是物件的資料型別
  • 類是具有相同屬性和行為的一組物件的集合

1.4 什麼是物件的屬性

屬性:物件具有的各種特徵,每個物件的每個屬性都擁有特定的

1.5 什麼是物件的行為

行為:物件能夠執行的操作

1.6 類和物件的關係

:類是對現實生活中一類具有共同屬性和行為的事物的抽象

物件:是能夠看得到摸得著的真實存在的實體

1.7 類的定義

類的重要性:是Java程式的基本組成單位

類是什麼:是對現實生活中一類具有共同屬性

行為的事物的抽象,確定物件將會擁有的屬性和行為

類的組成:屬性行為

  • 屬性:在類中通過成員變數來體現(類中方法外的變數)
  • 行為:在類中通過成員方法來提現(和前面的方法相比去掉static關鍵字即可)

類的定義步驟

  1. 定義類
  2. 編寫類的成員變數
  3. 編寫類的成員方法
/*
    類的定義

    類的定義步驟:
        編寫類的成員變數
        編寫類的成員方法

    手機類:
        型別:
        手機(Phone)

        成員變數:
        品牌(brand)
        價格(price)

        成員方法:
        打電話(call)
        發簡訊(sendMessage)
 
*/ public class Phone { //成員變數 String brand; int price; //成員方法 public void call(){ System.out.println("打電話"); } public void sendMessage(){ System.out.println("發簡訊"); } }

1.8 物件的使用

建立物件:

  • 格式:類名 物件名 = new 型別();
  • 範例:Phone p = new Phone();

使用物件:

1. 使用成員變數

  • 格式:物件名.變數名
  • 範例:p.brand

2.使用成員方法

  • 格式:物件名.方法名()
  • 範例:p.call()
/*
    建立物件
        格式:類名 物件名 = new 類名();
        範例:Phone p = new Phone();
        
    使用物件:
        1.使用成員變數
            格式:物件名.變數名
            範例:p.brand
        2.使用成員方法
            格式:物件名.方法名()
            範例:p.call()    
 */
public class PhoneDemo {
    public static void main(String[] args) {
        //建立物件
        Phone p = new Phone();

        //使用成員變數
        System.out.println(p.brand);    //null
        System.out.println(p.price);    //0

        p.brand = "小米";
        p.price = 2999;

        System.out.println(p.brand);    //小米
        System.out.println(p.price);    //2999

        //使用成員方法
        p.call();           //打電話
        p.sendMessage();    //發簡訊
    }
}

案例:學生

package com.demo;
/*
    學生類
        需求:首先定義一個學生類,然後定義一個學生測試類,在學生測試類中通過物件完成成員變數和成員方法的使用
 */
public class Student {
    //成員變數
    String name;
    int age;

    //成員方法
    public void study(){
        System.out.println("好好學習,天天向上");
    }
    public void doHomework(){
        System.out.println("鍵盤敲爛,月薪過萬");
    }
}
/*
    學生測試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //建立物件
        Student s = new Student();

        System.out.println(s); //輸出:記憶體地址
        //使用物件
        System.out.println(s.name+","+s.age);//輸出:null,0

        s.name="aaron";
        s.age=30;

        System.out.println(s.name+","+s.age);//輸出:aaron,30

        s.study();
        s.doHomework();
    }
}

二、物件記憶體圖

2.1 物件記憶體圖(單個物件)

2.2 物件記憶體圖(多個物件)

2.3 物件記憶體圖(多個物件指向相同)

三、成員變數和區域性變數

3.1 什麼是成員變數和區域性變數

成員變數:類中方法外的變數

區域性變數:方法中的變數

3.2 成員變數和區域性變數的區別

四、封裝

4.1 private關鍵字