oop(面向?qū)ο缶幊?

一裆悄、面向?qū)ο缶幊蹋╫op)的概念

面向?qū)ο缶幊蹋∣bject Oriented Programming, OOP是一種編程范式,它將計(jì)算機(jī)程序視為對(duì)象的集合,每個(gè)對(duì)象都可以接收消息、進(jìn)行數(shù)據(jù)處理和與其他對(duì)象交互拔恰。面向?qū)ο缶幊痰暮诵母拍钍穷惡蛯?duì)象,類定義了對(duì)象的屬性和行為焊夸,對(duì)象是類的實(shí)例仁连。面向?qū)ο缶幊谭椒ūM可能模擬人類的思維方式,使得軟件的開發(fā)方法與過程盡可能接近人類認(rèn)識(shí)世界阱穗、解決現(xiàn)實(shí)問題的方法和過程饭冬。面向?qū)ο缶幊痰膬?yōu)點(diǎn)包括重用性、靈活性和擴(kuò)展性揪阶。它能夠提供模塊化昌抠、可重用和易于維護(hù)的代碼結(jié)構(gòu)。

二鲁僚、面向?qū)ο缶幊蹋╫op)的特性

1.繼承


子類自動(dòng)繼承父類的屬性和方法炊苫,并可以添加新的屬性和方法。

父類 Animal(屬性和方法):


package cn.lnfvc.ken;

public class Animal {

private Stringname;

private int age;// 將age聲明為int類型

    // 無參構(gòu)造函數(shù)

    public Animal() {

}

public StringgetName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {// 返回類型改為int

        return age;

}

public void setAge(int age) {

this.age = age;

}

public Animal(String name,int age) {// 將age參數(shù)類型改為int

        this.name = name;

this.age = age;

}

@Override

    public StringtoString() {

return "Animal{" +

"name='" +name +'\'' +

", age=" +age +// 去掉了引號(hào)

                '}';// 修正了拼寫錯(cuò)誤

    }

}

子類 Mao1(屬性和方法):


class Mao1 extends Animal {

private boolean isEyes;

public Mao1() {

super();

}

public Mao1(String name,int age,boolean isEyes) {

super(name, age);

this.isEyes = isEyes;

}

public void setEyes(boolean isEyes) {

this.isEyes = isEyes;

}

public boolean isEyes() {

return isEyes;

}

@Override

    public StringtoString() {

return "Mao{" +

"name='" + getName() +'\'' +

", age=" + getAge() +

", isEyes=" +isEyes +

'}';

}

}

Mao1 類繼承自 Animal 類冰沙,這意味著所有 Mao1 對(duì)象都是 Animal 對(duì)象侨艾,但不是所有 Animal 對(duì)象都是 Mao1 對(duì)象。

2.多態(tài)

同一操作作用于不同的對(duì)象可以有不同的解釋和執(zhí)行結(jié)果拓挥。


class  CatTest {

public static void main(String[] args) {

Mao1 bigMao =new Mao1();

bigMao.setName("大毛");

bigMao.setAge(20);// 直接設(shè)置年齡為int類型

 bigMao.setEyes(true);

Mao1 mao =new Mao1();

Animal cat =new Animal();// 創(chuàng)建一個(gè)Animal對(duì)象

         System.out.println(bigMao.toString());// 打印bigMao對(duì)象的字符串表示

        System.out.println(mao.toString());// 打印mao對(duì)象的字符串表示

        System.out.println(cat.toString());// 打印cat對(duì)象的字符串表示

    }

}

bigMao 和 mao 是 Mao1 類型的引用唠梨,指向 Mao1 對(duì)象,調(diào)用 toString 方法時(shí)執(zhí)行的是 Mao1 類中重寫的版本侥啤。cat 是 Animal 類型的引用当叭,指向 Animal 對(duì)象,調(diào)用 toString 方法時(shí)執(zhí)行的是 Animal 類中定義的版本盖灸。

輸出結(jié)果:

image

3.封裝

將客觀事物封裝成抽象的類蚁鳖,并隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼模塊化赁炎。


public class Book {

//    書名

    private  Stringname;

//    價(jià)格

    private double price;

//    作者

    private Stringauthor;

//    類目

    private  Stringtype;

//    右鍵生成 構(gòu)造函數(shù)

    /**

*

    * @param name

    * @param price

    * @param author

    * @param type

    */

私有成員變量:所有成員變量(name, price, author, type)都被聲明為 private醉箕,這意味著它們不能被外部類直接訪問。


public Book(String name,double price, String author, String type) {

this.name = name;

this.price = price;

this.author = author;

this.type = type;

}

public StringgetName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public StringgetAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public StringgetType() {

return type;

}

public void setType(String type) {

this.type = type;

}

公共方法:提供了公共的 getter 和 setter 方法來訪問和修改私有成員變量徙垫。這些方法允許受控的訪問和修改對(duì)象的狀態(tài)琅攘。


@Override

public StringtoString() {

return "Book{" +

"name='" +name +'\'' +

", price=" +price +

", author='" +author +'\'' +

", type='" +type +'\'' +

'}';

}

@Override public String toString():重寫了 Object 類的 toString 方法,用于提供 Book 對(duì)象的字符串表示松邪。這個(gè)方法返回一個(gè)格式化的字符串坞琴,包含所有書的屬性。


package cn.lnfvc.ken;

public class Text5 {

public static void main(String[] args) {

        Book book =new Book("java基礎(chǔ)筆記",99.6,"林信良","編程類");

System.out.println(book.toString());

}

}

構(gòu)造函數(shù):提供了一個(gè)公共的構(gòu)造函數(shù)來初始化對(duì)象的狀態(tài)

輸出結(jié)果:

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逗抑,一起剝皮案震驚了整個(gè)濱河市剧辐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邮府,老刑警劉巖荧关,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異褂傀,居然都是意外死亡忍啤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來同波,“玉大人鳄梅,你說我怎么就攤上這事∥撮荩” “怎么了戴尸?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)冤狡。 經(jīng)常有香客問我孙蒙,道長(zhǎng),這世上最難降的妖魔是什么悲雳? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任挎峦,我火速辦了婚禮,結(jié)果婚禮上合瓢,老公的妹妹穿的比我還像新娘坦胶。我一直安慰自己,他們只是感情好歪玲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布迁央。 她就那樣靜靜地躺著,像睡著了一般滥崩。 火紅的嫁衣襯著肌膚如雪岖圈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天钙皮,我揣著相機(jī)與錄音蜂科,去河邊找鬼。 笑死短条,一個(gè)胖子當(dāng)著我的面吹牛导匣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茸时,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贡定,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了可都?” 一聲冷哼從身側(cè)響起缓待,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渠牲,沒想到半個(gè)月后旋炒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡签杈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年瘫镇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铣除,死狀恐怖谚咬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情通孽,我是刑警寧澤序宦,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布睁壁,位于F島的核電站背苦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏潘明。R本人自食惡果不足惜行剂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钳降。 院中可真熱鬧厚宰,春花似錦、人聲如沸遂填。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吓坚。三九已至撵幽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間礁击,已是汗流浹背盐杂。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哆窿,地道東北人链烈。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像挚躯,于是被迫代替她去往敵國(guó)和親强衡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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