达摩java_JAVA面向对象
類和對(duì)象
類
現(xiàn)實(shí)世界,隨處可見(jiàn)的一種事物就是對(duì)象。對(duì)象是事物存在的實(shí)體。人不可能記住每個(gè)實(shí)體,所以將具有相同特點(diǎn)的東西歸為類。對(duì)象有兩部分組成,動(dòng)態(tài)和靜態(tài)。靜態(tài)是屬性,動(dòng)態(tài)是方法。
類是封裝對(duì)象的屬性和行為的載體。
類中對(duì)象的行為是以方法的形式定義的,對(duì)象的屬性是以成員變量的形式定義的。
成員變量:類的屬性的叫法。
成員方法:
權(quán)限修飾符 ?返回值類型 ?方法名(類型參數(shù) ?參數(shù)名){
………. // 方法體
return? 返回值;
}
類的構(gòu)造方法
與類同名的方法,對(duì)象的創(chuàng)建通過(guò)構(gòu)造方法完成。其特點(diǎn)如下:
1,??????? 構(gòu)造方法沒(méi)有返回值
2,??????? 構(gòu)造方法的名稱要與本類名相同。
靜態(tài)變量、常量和方法
由static修飾的變量、常量和方法叫靜態(tài)變量、常量和方法。
static: 五種1:靜態(tài)成員變量2:靜態(tài)成員方法3:靜態(tài)代碼塊4:靜態(tài)內(nèi)部類X5:靜態(tài)導(dǎo)包
static:可以被類名直接調(diào)用
類名.屬性名類名.方發(fā)名static與非static之間的重要區(qū)別:區(qū)別1:static修飾的成員是隨著類的加載而加載(優(yōu)先)
非static成員是隨著對(duì)象的創(chuàng)建而加載區(qū)別2:
靜態(tài)方法|靜態(tài)代碼塊只能調(diào)用靜態(tài)成員,非靜態(tài)成員是不能直接調(diào)用的,創(chuàng)建對(duì)象(不能使用this關(guān)鍵字)非靜態(tài)方法可以直接調(diào)用非靜態(tài)成員,也可以調(diào)用靜態(tài)成員.類的對(duì)象進(jìn)行調(diào)用靜態(tài)成員區(qū)別3:靜態(tài)成員對(duì)于多個(gè)對(duì)象而言是共享的非靜態(tài)成員對(duì)于多個(gè)對(duì)象是彼此獨(dú)立的
對(duì)象
對(duì)象的創(chuàng)建:Text text = new Text();
Text text = new Text();
類名 對(duì)象名= new 類名(參數(shù)(可以為空)
);
訪問(wèn)對(duì)象的屬性和行為:對(duì)象.類成員的方式來(lái)獲取。
對(duì)象的引用: 類名 ?對(duì)象引用名稱
對(duì)象的比較:Java中兩種比較對(duì)象的方式,分別為“==”運(yùn)算符與equals()方法的區(qū)別。Equals()方法是比較兩個(gè)對(duì)象引用所指的內(nèi)容是否相等;而“==”運(yùn)算符比較的是兩個(gè)對(duì)象引用的地址是否相等。
對(duì)象的銷毀:暫且不知道。
封裝
封裝的概念:將類的某些信息隱藏在類的內(nèi)部,不允許外部類直接訪問(wèn),而是通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的訪問(wèn)和操作。
封裝的實(shí)現(xiàn):1,通過(guò)訪問(wèn)修飾符
2,通過(guò)基本類型的類封裝
沒(méi)有什么具體的方法,封裝體現(xiàn)在Java的思想里。(目前的理解,隨時(shí)改!)
繼承
類的繼承
基本思想是基于某個(gè)父類進(jìn)行擴(kuò)展,得到一個(gè)新的子類。子類可以繼承父類的原有方法和屬性,也可以增加原來(lái)父類所不具備的屬性和方法,或者直接重寫父類的某些方法。
繼承:類和類之間的關(guān)系
在Java所有類都默認(rèn)繼承自O(shè)bject
class child extends Parent extends關(guān)鍵字實(shí)現(xiàn)類的繼承
單根性:一個(gè)類只能存在一個(gè)父類
在Java中的繼承:子類可以繼承父類的任何非私有成員(變量方法
構(gòu)造)? 子類永遠(yuǎn)比父類擁有更多的成員
子>父
Object:任意一個(gè)類都直接或間接繼承Object 在MyEclipse中查看繼承架構(gòu)圖的快捷鍵為ctrl+T? ctrl+O 查看類中的所有成員
native:不是由java實(shí)現(xiàn)的,而是由C語(yǔ)言實(shí)現(xiàn)的
final:常量 類(代表該類不能被繼承) 方法(該方法不能被子類重寫)
類型轉(zhuǎn)換
向上轉(zhuǎn)型: 子類向父類轉(zhuǎn)換 自動(dòng)
向下轉(zhuǎn)型: 父類向子類轉(zhuǎn)換 強(qiáng)制ClassCastException instanceof? (在調(diào)用子類特有的成員時(shí))
子類可以再任何時(shí)刻替代父類: is a關(guān)系
方法的重載
方法重寫:子類繼承了父類的方法后,要對(duì)父類的方法進(jìn)行改寫 要求除了方法體之外,其他的必須一致(就進(jìn)原則)
super:超類super代表父類的對(duì)象
構(gòu)造函數(shù):函數(shù)名與類名完全相同, 沒(méi)有返回值類型
執(zhí)行時(shí)機(jī):是在類的實(shí)例化的過(guò)程中,會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)
作用:完成類的成員變量的初始化
快捷鍵: alt+shirf+s generate
constructor........
@Override:注解 標(biāo)識(shí)的作用
類和類之間發(fā)生繼承關(guān)系的情況下:構(gòu)造是如何調(diào)用的
實(shí)例化子類的同時(shí):會(huì)先執(zhí)行父類的無(wú)參構(gòu)造
super():隱式調(diào)用 必須位于第一行
帶參構(gòu)造必須顯示調(diào)用
多態(tài)
多態(tài):發(fā)生在具有繼承關(guān)系的實(shí)體中,不同實(shí)體為了完成同一操作(函數(shù)名)所采取的不同方式(方法體)。
里氏替換原則:(LiskovSubstitutionPrinciple):在出現(xiàn)超類的位置上,可以使用其子類對(duì)象 。由于,子類比父類更優(yōu)秀,出現(xiàn)父類的任何位置,子類都可以使用)
多態(tài)實(shí)現(xiàn)的三種方式:
父類類型接收子類對(duì)象實(shí)現(xiàn)的多態(tài)
父類類型作為方法形參
父類類型作為方法返回值
抽象類
抽象類: abstract關(guān)鍵字修飾的類
不能直接實(shí)例化
內(nèi)部可以存在抽象方法:
1 使用abstract關(guān)鍵字修飾
2 不能存在方法體
3 子類必須重寫 除非子類也是抽象類
普通類: 既能存在抽象方法,又能存在非抽象方法。可以構(gòu)造函數(shù)
接口
接口象征著一種能力:實(shí)現(xiàn)類對(duì)應(yīng)接口的實(shí)現(xiàn)類,表明具備該種功能。
總結(jié)
以上是生活随笔為你收集整理的达摩java_JAVA面向对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java适配器各三种_适配器三种
- 下一篇: JAVA随机存储_java-如何将随机整