面向對象基礎
1. 面向對象基礎概念
面向過程
是一種看待問題饺律、解決問題的思維方式垒探。著眼點在于問題是如何一步步的解決的眉撵,然后親力親為的去解決這個問題
面向對象
是一種看待問題、解決問題的思維方式把敞。著眼點在于找到一個能夠幫助解決問題的實體弥奸,然后委托這個實體去解決問題
把大象裝冰箱:
面向過程:
1、打開冰箱門 --> 我
2奋早、把大象裝進去 --> 我
3盛霎、關上冰箱門 --> 我
面向對象:
1、打開冰箱門 --> 冰箱
2耽装、把大象裝進去 --> 大象
3愤炸、關上冰箱門 --> 冰箱
小明要組裝一臺電腦:
面向過程:
1、小明走到電腦城 --> 小明
2掉奄、購買各種零配件 --> 小明
3规个、將買到的零配件帶回家 --> 小明
4、組裝起來姓建,開機 --> 小明
面向對象:
1诞仓、委托一個朋友去電腦城買電腦
2、委托一個快遞把電腦送回來
3速兔、委托朋友組裝起來
Java是一種面向對象的編程語言:
使用Java可以更加容易的寫出來具有面向對象編程思想的代碼墅拭。
使用面向對象編程語言寫出的代碼一定是面向對象的代碼嗎?
不一定!
對象
一個具有特殊的行為(功能)涣狗,可以幫助解決問題的實體谍婉。
類
是若干個具有相同的特征和行為的對象的集合舒憾。
類和對象的關系
類是若干個對象的集合,對象是類中的個體屡萤。
2. 類的設計和對象的實例化
在程序設計中珍剑,一定是先有的類,再有的對象死陆。
1招拙、類的設計
[訪問權限修飾符] [其他的修飾符] class 類名 {
// 類體
// 1. 這個類所有的對象共有的特征
// 在程序中的體現,就是一個全局變量措译,這個全局變量稱為 -- 屬性
// 2. 這個類所有的對象共有的行為
// 在程序中的體現别凤,就是一個方法
}
2、對象的實例化
找出一個類中的實體领虹。
Person xiaoming = new Person();
3. 類中的成員訪問
類成員:組成一個類的屬性规哪、方法...
點語法:點可以理解為 "的"
static: 可以用來修飾屬性、方法塌衰。被static修飾的成員叫做靜態(tài)成員诉稍。
被static修飾的屬性 --> 靜態(tài)屬性
被static修飾的方法 --> 靜態(tài)方法
沒有被static修飾的屬性 --> 非靜態(tài)屬性、實例屬性
沒有被static修飾的方法 --> 非靜態(tài)方法最疆、實例方法
靜態(tài)的成員是屬于類的杯巨。
靜態(tài)的屬性,沒有在堆上開辟空間努酸。在方法區(qū)中開辟空間服爷。靜態(tài)的屬性空間的開辟是發(fā)生在類第一次被加載到內存中的時候。是屬于類的获诈,是需要用類來訪問的仍源。
結論
1、靜態(tài)成員用類訪問舔涎、非靜態(tài)成員用對象訪問
2笼踩、非靜態(tài)的方法中,可以直接訪問當前類中的靜態(tài)和非靜態(tài)的成員
3亡嫌、靜態(tài)方法中戳表,只能訪問靜態(tài)的成員,不能訪問非靜態(tài)的成員
NullPointerException
在成員訪問的時候昼伴,非常容易遇到的一個異常×鸵伲空指針異常圃郊。
出現的原因:
引用數據類型的默認值是null,而如果使用一個null去執(zhí)行任何的引用操作女蜈,都會觸發(fā)NullPointerException