JavaSE04 面向?qū)ο?/h1>

一竿屹、什么是面向?qū)ο?/h1>
  • 萬物皆對象。
  • 對象就是一個概念柒巫,把所有的事物都稱作為“對象”(沒有不是對象的東西)
  • 屬性就是該事物的組成部分刷袍,所有可以被包含的部分都稱為“屬性”(沒有不含屬性的對象)
  • 方法就是達成目標的途徑,所有可行性的行為都成為方法(沒有不存在方法的對象和屬性妓布,但是可以選擇使用哪些方法)
  • 舉例:比如把人看成是一個對象姻蚓,那么姓名,性別秋茫,生日等則是人這個對象的屬性史简,吃飯,睡覺等行為就是人這個對象的方法。

二圆兵、類與對象

  • 類:類是一種分類跺讯,一個類別,一個模板殉农,它描述一類對象的行為和狀態(tài)刀脏,是一組具有相同特性(屬性)與行為(方法)的事物集合
  • 對象:是一個個體的特征,是類的一個實例超凳,有狀態(tài)和行為
  • 類是對象的抽象(模板Class)愈污,對象是類的具體

三、構造方法

構造方法:方法的重載轮傍,對屬性進行初始化操作暂雹,構造方法名稱與類名相同,沒有返回值聲明(包括 void)

(1)無參構造

public User() {
    }

(2)有參構造

public User(String username) {
        this.username = username;
    }
  • 每一個類中都會有一個默認的無參構造方法
  • 如果手動定義了一個有參構造创夜,則默認的無參構造無效杭跪,還需手動再加一個無參構造。

(3)單例模式

構造方法私有化驰吓,讓除了自己類能創(chuàng)建外其他地方都不可以創(chuàng)建

  • 在自己的類中創(chuàng)建一個單實例(飽漢模式一出來就創(chuàng)建單實例涧尿,饑漢模式需要的時候才 創(chuàng)建)
  • 提供一個方法獲取該實例對象(饑漢模式創(chuàng)建時需要進行方法同步)
  • 代碼體現(xiàn):
//餓漢式
class Single{
    private Single(){} //私有化構造函數(shù)。
private static Single s = new Single(); //創(chuàng)建私有并靜態(tài)的本類對象檬贰。
    public static Single getInstance(){ //定義公有并靜態(tài)的方法姑廉,返回該對象。
        return s;
    }
}
//懶漢式:延遲加載方式翁涤。
class Single2{
    private Single2(){}
private static Single2 s = null;
    public static Single2 getInstance(){
        if(s==null)
            s = new Single2();
        return s;
    }
}

四桥言、對象的創(chuàng)建

new 對象 例如:User user new User();

  • new關鍵字:表示向內(nèi)存申請空間,也表示實例化一個對象迷雪,創(chuàng)建一個對象限书。
  • 棧存放引用
  • 堆存放具體的對象


    對象的創(chuàng)建

五、封裝

封裝:屬性私有化章咧,提供get,set方法

  • 好處:將變化隔離倦西;便于使用;提高重用性赁严;安全性
  • 封裝原則:將不需要對外提供的內(nèi)容都隱藏起來扰柠,把屬性都隱藏,提供公共方法對其訪問疼约。
  • 代碼提現(xiàn):
public class User {
    
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
}

六卤档、繼承

繼承:如同生活中的子女繼承父母擁有的所有財產(chǎn),程序中的繼承是指子類擁有父類數(shù)據(jù)結構的方法和機制程剥,這是類之間的一種關系劝枣;繼承只能是單繼承。
好處
1:提高了代碼的復用性。
2:讓類與類之間產(chǎn)生了關系舔腾,提供了另一個特征多態(tài)的前提溪胶。

  • extends關鍵字
  • 子類擁有父類的全部特性
  • 繼承只能是單繼承

方法重寫(override):相對繼承而言,子類中對父類已經(jīng)存在的方法進行區(qū)別化的修改稳诚。

this:代表是本類類型的對象引用
super:代表是子類所屬的父類中的內(nèi)存空間引用哗脖。

代碼提現(xiàn):

public class User {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

public class Admin extends User{
    @Override
    public String getName() {
        return super.getName();
    }
}

七、多態(tài)

多態(tài):父類的引用指向子類的對象 例如:Person person = new Student();

  • 多態(tài)前提
    A:存在著繼承或者實現(xiàn)關系
    B:有方法的重寫
    C:父類(接口)引用指向子類(實現(xiàn))對象
  • 好處:多態(tài)的存在提高了程序的擴展性和后期可維護性

instanceof:作用是測試它左邊的對象是否是它右邊的類的實例

  • 在寫程序的時候扳还,如果要進行類型轉換才避,我們最好使用instanceof運算符來判斷它左邊的對象是否是它右邊的類的實例,再進行強制轉換

八氨距、接口

接口:當一個類中的方法都是抽象的時候桑逝,java提供了另一種表示方式,叫接口衔蹲。接口是一系列方法的聲明肢娘,是一些方法特征的集合呈础。

  • 用interface關鍵字表示舆驶。類與接口關系用implements表示。
  • 約束:只能定義方法名而钞,而沒有方法體
  • 子類實現(xiàn)接口沙廉,必須重寫其中的方法
  • 只有一個方法的接口叫做函數(shù)式接口,可以使用lambda表達式簡化
  • 接口比抽象類更抽象
  • 一個類可以實現(xiàn)多個接口
  • 代碼提現(xiàn):
public interface USB {
    void read();
    void write();
}

public class YouPan implements USB {
    @Override
    public void read() {
        System.out.println("U盤正在通過USB功能讀取數(shù)據(jù)");
    }

    @Override
    public void write() {
        System.out.println("U盤正在通過USB功能寫入數(shù)據(jù)");
    }
}

九臼节、內(nèi)部類

內(nèi)部類:將一個類定義在另一個給類里面或者方法里面撬陵,這樣的類就被稱為內(nèi)部類。

內(nèi)部類可以分為四種:成員內(nèi)部類网缝、局部內(nèi)部類巨税、匿名內(nèi)部類、靜態(tài)內(nèi)部類

(1)成員內(nèi)部類:成員內(nèi)部類是最普通的內(nèi)部類粉臊,它的定義為位于另一個類的內(nèi)部

  • 成員內(nèi)部類無條件訪問外部類的屬性和方法
  • 外部類中如果要訪問成員內(nèi)部類的成員草添,必須先創(chuàng)建一個成員內(nèi)部類的對象,再通過指向這個對象的引用來訪問

(2)局部內(nèi)部類:定義在一個方法或者一個作用域里面的類扼仲,它和成員內(nèi)部類的區(qū)別在于局部內(nèi)部類的訪問僅限于方法內(nèi)或者該作用域內(nèi)远寸。

(3)匿名內(nèi)部類:應該是平時我們編寫代碼時用得最多的,在編寫事件監(jiān)聽的代碼時使用匿名內(nèi)部類不但方便屠凶,而且使代碼更加容易維護

  • 代碼提現(xiàn):
public class Test {
    public static void main(String[] args) {
        driveCar(new Car(){
            @Override
            public void drive() {
                System.out.println("駕駛著BMW汽車");
            }
        });
    }
    public static void driveCar(Car car){
        car.drive();
    }
}

interface Car {
    void drive();
}
  • 分析以上代碼知道靜態(tài)方法driveCar需要一個Car對象驰后,我們通過實現(xiàn)接口創(chuàng)建一個匿名類對象傳遞過去。事實上還可以通過繼承類來創(chuàng)建一個匿名內(nèi)部類對象矗愧。
  • 注意事項:匿名內(nèi)部類沒有構造方法灶芝。也是唯一沒有構造方法的內(nèi)部類。匿名內(nèi)部類和局部內(nèi)部類只能訪問外部類的final變量。

(4)靜態(tài)內(nèi)部類:是定義在另一個類里面的類夜涕,只不過在類的前面多了一個關鍵字static颤专。靜態(tài)內(nèi)部類是不需要依賴于外部類的。

  • 靜態(tài)內(nèi)部類和成員內(nèi)部類相比多了一個static修飾符
  • 因為外部類加載時只會加載靜態(tài)域钠乏,所以靜態(tài)內(nèi)部類不能使用外部類的非靜態(tài)變量與方法

內(nèi)部類的好處:

  • 完善了Java多繼承機制栖秕,由于每一個內(nèi)部類都可以獨立的繼承接口或類,所以無論外部類是否繼承或?qū)崿F(xiàn)了某個類或接口晓避,對于內(nèi)部類沒有影響簇捍。
  • 方便寫事件驅(qū)動程序。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末俏拱,一起剝皮案震驚了整個濱河市暑塑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锅必,老刑警劉巖事格,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搞隐,居然都是意外死亡驹愚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門劣纲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逢捺,“玉大人,你說我怎么就攤上這事癞季〗偻” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵绷柒,是天一觀的道長志于。 經(jīng)常有香客問我,道長废睦,這世上最難降的妖魔是什么伺绽? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮郊楣,結果婚禮上憔恳,老公的妹妹穿的比我還像新娘。我一直安慰自己净蚤,他們只是感情好钥组,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著今瀑,像睡著了一般程梦。 火紅的嫁衣襯著肌膚如雪点把。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天屿附,我揣著相機與錄音郎逃,去河邊找鬼。 笑死挺份,一個胖子當著我的面吹牛褒翰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匀泊,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼优训,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了各聘?” 一聲冷哼從身側響起揣非,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躲因,沒想到半個月后早敬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡大脉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年搞监,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱靴。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腺逛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衡怀,到底是詐尸還是另有隱情,我是刑警寧澤安疗,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布抛杨,位于F島的核電站,受9級特大地震影響荐类,放射性物質(zhì)發(fā)生泄漏怖现。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一玉罐、第九天 我趴在偏房一處隱蔽的房頂上張望屈嗤。 院中可真熱鬧,春花似錦吊输、人聲如沸饶号。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茫船。三九已至琅束,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間算谈,已是汗流浹背涩禀。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留然眼,地道東北人艾船。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像高每,于是被迫代替她去往敵國和親丽声。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容