Java學習筆記(十三) 面向物件基礎
阿新 • • 發佈:2020-12-02
一、類和物件
1.1 什麼是物件
萬物皆物件,客觀存在的事物皆為物件
1.2 什麼是面向物件
1.3 什麼是類
類就是對現實生活中一類具有共同屬性和行為的事物的抽象
類的特點:
- 類是物件的資料型別
- 類是具有相同屬性和行為的一組物件的集合
1.4 什麼是物件的屬性
屬性:物件具有的各種特徵,每個物件的每個屬性都擁有特定的值
1.5 什麼是物件的行為
行為:物件能夠執行的操作
1.6 類和物件的關係
類:類是對現實生活中一類具有共同屬性和行為的事物的抽象
物件:是能夠看得到摸得著的真實存在的實體
1.7 類的定義
類的重要性:是Java程式的基本組成單位
類是什麼:是對現實生活中一類具有共同屬性
類的組成:屬性和行為
- 屬性:在類中通過成員變數來體現(類中方法外的變數)
- 行為:在類中通過成員方法來提現(和前面的方法相比去掉static關鍵字即可)
類的定義步驟:
- 定義類
- 編寫類的成員變數
- 編寫類的成員方法
/* 類的定義 類的定義步驟: 編寫類的成員變數 編寫類的成員方法 手機類: 型別: 手機(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關鍵字