亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

面向對象

2019-11-11 07:08:55
字體:
來源:轉載
供稿:網友

1、面向對象 面向對象(Object Oriented)是一種新興的程序設計方法,或者是一種新的程序設計規范(paradigm),其基本思想是使用對象、類、繼承、封裝、多態等基本概念來進行程序設計。從現實世界中客觀存在的事物(即對象)出發來構造軟件系統,并且在系統構造中盡可能運用人類的自然思維方式。 1.1面向對象 面向對象是一種程序設計思想,計算機程序的設計實質上就是將現實中的一些事物的特征抽離出來描述成一些計算機事件的過程,這種抽象的過程中,我們把具體的事物封裝成一個一個的整體進行描述,使被描述的對象具備一些系統性、整體性的的行為和特征,我們把這種設計思想稱為面向對象。 2、面向對象與面向過程 2.1、面向過程是早期的程序語言設計思想,該思想強調事物的行為細節,即程序的設計不需要封裝成一個個的整體,而是將整個程序描述成一個行為,所有行為細節都按照固定方式一步一步的執行,執行程序就是執行某一行為的過程。 2.2、面向對象和面向過程都是一種思想,面向對象是相對于面向過程而言的, 面向過程強調的是具體的功能行為,而面向對象將功能封裝進對象,強調具備了功能的對象,面向對象是基于面向過程的,但面向對象思想更接近于現實場景。 2、對象 對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。 3、類 類是具有相同屬性和方法的一組對象的集合,它為屬于該類的所有對象提供了統一的抽象描述,其內部包括屬性和方法兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名并包括屬性和方法兩個主要部分。 java中的類實現包括兩個部分:類聲明和類體。 類的實例化可生成對象,一個對象的生命周期包括三個階段:生成、使用、消除。 當不存在對一個對象的引用時,該對象成為一個無用對象。Java的垃圾收集器自動掃描對象的動態內存區,把沒有引用的對象作為垃圾收集起來并釋放。當系統內存用盡或調用System.gc( )要求垃圾回收時,垃圾回收線程與系統同步運行。 向對象的三個基本特征是:封裝、繼承、多態。 4、封裝 首先,屬性能夠描述事物的特征,方法能夠描述事物的動作。封裝就是把同一類事物的共性(包括屬性和方法)歸到同一類中,方便使用。 1.1、封裝是指:隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。 1.2、封裝的好處: (1)將外界的變化隔離,使程序具備獨立、安全和穩定性。 (2)便于設計者使用,提高代碼的復用性。 1.3、封裝的原則 (1)將不需要對外提供的內容都隱藏起來。 (2)把實現細節隱藏,提供可以對其進行訪問公共的方式。 1.4、封裝的方式 將某一功能、屬性抽離出來,獨立寫成單獨的方法或類。 設置訪問權限 (1)設置訪問權限可以限定該功能或屬性可以被特定的訪問者訪問,保證了程序的安全性和功能的穩定性。 (2)Java對類和類中成員都定義了特定的訪問修飾符。 類:public(公共的) 、default(默認的,不寫就默認是它) 類中成員:public、PRotected、default(默認的)、private 注:類的訪問修飾符可以不寫(默認的),也可以寫public(公共的),一個java文件中只能有一個被public修飾的類,且被public修飾的類類名必須要跟文件名一致(包括大小寫一致),否則編譯會出錯,為了方便閱讀,類名的命名規范是單詞的首字母大寫,多個單詞組成的類名每個單詞的首字母都大寫。

為了實現良好的封裝,我們通常將類的成員變量聲明為private,在通過public方法來對這個變量來訪問。對一個變量的操作,一般有讀取和賦值2個操作,,我們分別定義2個方法來實現這2個操作,一個是getXX(XX表示要訪問的成員變量的名字)用來讀取這個成員變量,另一個是setXX()用來對這個變量賦值。 下面我們來看下這個例子: public class Demo { /* * 對屬性的封裝一個人的姓名、性別、年齡、都是這個人的私有屬性 */ private String name; private String sex; private int age; /* * setter()、getter()是該對象對外開發的接口 */ public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

5、繼承 1、繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的功能,或者說將事物的共性的功能和屬性抽取出來定義成一個父類,讓后來具有更多樣化實現的子類繼承父類。 2、繼承的作用: (1)父類具備的方法子類可以直接繼承過來,不用重新書寫,提高了代碼的復用性。 (2)讓類與類之間產生關系,有了關系才有多態的實現。 (3)Java中只支持單繼承,不支持多繼承,因為多繼承存在安全隱患(當多個父類存在同個功能時,子類不確定要運行哪一個),Java支持多層繼承,即父類還可以繼承其他類,java用另一種機制解決單繼承的局限性,即多實現。 3、對繼承體系的使用 (1)想要使用體系,應該先查閱父類,因為父類定義了該體系的共性功能,了解了父類的功能,就基本可以使用該體系的功能了。 (2)在具體調用時,要創建子類的對象,因為有可能當父類是抽象類時父類不能創建對象,而且子類具備更豐富、更具體的功能實現。 4.繼承的特點 4.0覆蓋(重寫) 4.1如果子父類中的成員一致時,子類成員會覆蓋父類成員。 4.2當子類繼承父類時,沿襲父類的功能到子類中,但子類對該功能的實現細節不一致,子類可以保留父類對該功能的定義,重寫功能的內容。 4.3重寫與重載:重載只看參數列表,其他一致參數列表不一致為重載,而重寫子父類的參數必須要一致 4.4 this與super this表示當前對象的引用,super表示當前對象父類的引用

5.子父類中的構造函數 5.0構造函數不能重寫。 5.1構造函數第一行有一條隱式的語句super()/this()。 5.2在對子類對象進行初始化時,父類構造函數也會運行,因為子類中的構造函數默認第一行有一條隱式的super()語句,這樣方便子類構造時先獲取到父類的共性屬性。 5.3 super()一定要定義在子類構造函數的第一行,當沒有默認的空參數構造函數,要手動指定。 6、注意事項: 6.1千萬別為了獲取其他類中的功能而繼承,必須是類與類間有所屬關系才可以繼承。 6.2子類覆蓋父類時必須保證子類權限大于等于父類,才可以覆蓋,否則編譯失敗。 6.3子類靜態成員只能覆蓋父類靜態成員。 7 final關鍵字 7.1 final關鍵字可以修飾類、函數和變量。 7.2被final修飾的類不可以被繼承(繼承打破了封裝性)。 7.3被final修飾的方法不可以被復寫。 7.4被final修飾的變量只能被賦值一次,既可以修飾成員變量,也可以修飾局部變量、形參。 8. Object類 8.1java中有一個特殊的類,Object類,它是所有對象的超類(根類),Object類中定義了所有對象的共性成員。 8.2Object類中的方法 equals() 比較兩個對象是否相同 toString() 返回該對象的字符串表示形式 getClass() 獲取該對象對應的字節碼文件對象 hasCode() 獲取該對象的哈希碼值 9.類間的體系關系 繼承、聚集(聚合)、組合 9.1繼承: 指的是一個類繼承另外的一個類的功能,并增加它自己的新功能或改寫舊有功能的具體實現,繼承是類與類之間最常見的關系。 9.2聚合: 指的是整體與部分的關系。通常在定義一個整體類后,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關系。例如足球隊中的足球隊員就是聚合關系。 9.3組合: 也表示類之間整體和部分的關系,但是組合關系中部分和整體具有統一的生存期。一旦整體對象不存在,部分對象也將不存在。部分對象與整體對象之間具有共生死的關系。例如人的各個身體器官之間的關系。 繼承的實例 class Person { public String name = “四J”; public int age = 20; } class Student extends Person { void study() { System.out.println(“I can study!”); } } public class Tcj{ public static void main(String args[]) { Student stu = new Student(); // stu.name = “zhangsan”; // stu.age = 20; System.out.println(“name=” + stu.name + “/t” + “age=” + stu.age); } }

6、多態 方法的重寫、重載與動態連接構成多態性; 6.1、多態的定義;某一類事物具備的多種表現形態(貓、狗和動物)。同時,多態也是面向對象編程的精髓所在。 6.2、java中多態的表現形式 父類的引用指向自己的子類對象。 父類的引用接收自己的子類對象。 6.3、多態的前提 必須是類與類之間有關系,要么繼承,要么實現。 子父類間的成員存在覆蓋。 6.4、多態的好處與缺陷 好處是提高了程序的擴展性,缺陷是只能使用父類的引用訪問父類的方法,無法訪問子類的特有方法。 6.5、多態的應用 類型轉換 向上轉型,自然轉型。 向下轉型,強制父類引用向下轉型。 6.6、特點 (1)多態中成員函數的特點 編譯時看引用變量所屬的類中是否有方法。 運行時看對象所屬類的方法。 (2)多態中成員變量的特點 無論編譯或運行時都參看右邊。 多態中靜態成員函數的特點 編譯或運行時都參看左邊 。

6.7 要理解多態性,首先要知道什么是“向上轉型”。   我定義了一個子類Cat,它繼承了Animal類,那么后者就是前者的父類。我可以通過   Cat c = new Cat(); 例化一個Cat的對象   但當我這樣定義時: Animal a = new Cat();   這代表什么意思呢?   它表示我定義了一個Animal類型的引用,指向新建的Cat類型的對象。由于Cat是繼承自它的父類Animal,所以Animal類型的引用是可以指向Cat類型的對象的。那么這樣做有什么意義呢?因為子類是對父類的一個改進和擴充,所以一般子類在功能上較父類更強大,屬性較父類更獨特,定義一個父類類型的引用指向一個子類的對象既可以使用子類強大的功能,又可以抽取父類的共性。所以, 父類引用只能調用父類中存在的方法和屬性,不能調用子類的擴展部分;因為父類引用指向的是堆中子類對象繼承的父類;(但是如果強制把超類轉換成子類的話,就可以調用子類中新添加而超類沒有的方法了。) 同時,父類中的一個方法只有在父類中定義而在子類中沒有重寫的情況下,才可以被父類類型的引用調用; 對于父類中定義的方法,如果子類中重寫了該方法,那么父類類型的引用將會調用子類中的這個方法,這就是動態連接。    6.8 對象的多態性是指在父類中定義的屬性或方法被子類繼承之后,可以具有不同的數據類型或表現出不同的行為。這使得同一個屬性或方法在父類及其各個子類中具有不同的語義。例如:”幾何圖形”的”繪圖”方法,”橢圓”和”多邊形”都是”幾何圖”的子類,其”繪圖”方法功能不同。 Java的多態性體現在兩個方面:由方法重載實現的靜態多態性(編譯時多態)和方法重寫實現的動態多態性(運行時多態)。 編譯時多態:在編譯階段,具體調用哪個被重載的方法,編譯器會根據參數的不同來靜態確定調用相應的方法。 運行時多態:由于子類繼承了父類所有的屬性(私有的除外),所以子類對象可以作為父類對象使用。程序中凡是使用父類對象的地方,都可以用子類對象來代替。一個對象可以通過引用子類的實例來調用子類的方法。 7、重載(Overloading) 方法重載是讓類以統一的方式處理不同數據類型的手段。 一個類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法。 返回值類型可以相同也可以不相同,無法以返回型別作為重載函數的區分標準。 8、重寫(Overriding) 子類對父類的方法進行重新編寫。如果在子類中的方法與其父類有相同的的方法名、返回類型和參數表,我們說該方法被重寫(Overriding)。 如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。 子類函數的訪問修飾權限不能低于父類的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区高清在线观看| 青青a在线精品免费观看| 97超碰色婷婷| 欧美国产视频一区二区| 九九久久精品一区| 在线激情影院一区| 欧美日韩成人黄色| 欧美性生交xxxxxdddd| 亚洲free嫩bbb| 亚洲欧美国产精品| 久久影视免费观看| 一道本无吗dⅴd在线播放一区| 亚洲人成毛片在线播放| 亚洲字幕在线观看| 午夜精品99久久免费| 这里只有精品丝袜| 久久男人av资源网站| 欧美另类在线播放| 97精品国产aⅴ7777| 国产精品三级久久久久久电影| 日韩成人在线免费观看| 97人人爽人人喊人人模波多| 精品国产户外野外| 日本高清视频精品| 欧美极品少妇与黑人| 国产日韩欧美中文在线播放| 亚洲一区av在线播放| 91中文字幕在线观看| 国产精品成人一区二区| 国产视频在线一区二区| 国产精品女人久久久久久| 亚洲精品国产精品自产a区红杏吧| 日韩欧美在线一区| 日韩欧美在线视频日韩欧美在线视频| 中文国产亚洲喷潮| 久久久久免费视频| 性欧美xxxx| 日韩精品免费视频| 日韩精品免费综合视频在线播放| 国产精品人人做人人爽| 国产欧美久久久久久| 国产精品精品一区二区三区午夜版| 国产97免费视| 色青青草原桃花久久综合| 久久视频在线直播| 日韩中文字幕不卡视频| 亚洲欧美一区二区三区四区| 亚洲伊人成综合成人网| 精品国产91乱高清在线观看| 欧美日韩亚洲一区二区| 国产v综合ⅴ日韩v欧美大片| 秋霞午夜一区二区| 91精品视频免费看| 亚洲偷熟乱区亚洲香蕉av| 国产欧美久久久久久| 国产一区二区色| 中文字幕亚洲欧美日韩2019| www高清在线视频日韩欧美| 久久久久久久久久国产精品| 国产在线视频2019最新视频| 国产精品视频精品视频| 欧美一性一乱一交一视频| 国产精品99久久久久久白浆小说| 亚洲欧美激情视频| 久久国产精品久久久久久久久久| 久久精品中文字幕电影| 欧美一乱一性一交一视频| 亚洲女人天堂成人av在线| 久久精品在线播放| 亚洲一区二区三区香蕉| 欧美日产国产成人免费图片| 欧美成人免费网| 久久久久久久久久久人体| 国产精品欧美一区二区三区奶水| 中文字幕亚洲欧美日韩高清| 日韩在线观看免费网站| 高清一区二区三区四区五区| 在线免费看av不卡| 久久久久久久久久国产精品| 亚洲精品自拍偷拍| 日韩在线免费高清视频| 成人免费视频xnxx.com| 欧美二区在线播放| 日韩有码片在线观看| 欧美激情在线观看视频| 亚洲国产精品字幕| 欧美精品videossex性护士| 中文字幕一区二区精品| 4k岛国日韩精品**专区| 日韩中文字幕在线| 国产精品久久久久久久久久久久久久| 欧美巨乳在线观看| 97久久久久久| 欧美贵妇videos办公室| 亚洲欧美日韩区| 全球成人中文在线| 久久精品成人欧美大片古装| 操人视频在线观看欧美| 国产精品久久久久99| 亚洲精品国产拍免费91在线| 欧美亚洲成人精品| 疯狂做受xxxx欧美肥白少妇| 亚洲在线第一页| 91精品国产乱码久久久久久蜜臀| 国产精品久久久久久久久男| 亚洲精品456在线播放狼人| 91视频国产一区| 亚洲免费成人av电影| 日韩中文字幕在线精品| 影音先锋日韩有码| 精品中文字幕在线2019| 国产女同一区二区| 国外成人在线直播| 欧美性xxxx极品hd欧美风情| 欧美激情亚洲精品| 一区二区三区美女xx视频| 亚洲国产精品久久精品怡红院| 国产欧美精品一区二区三区-老狼| 国产视频在线观看一区二区| 国产精品久久久久久久久男| 日韩美女免费视频| 久久精品成人一区二区三区| 久久乐国产精品| 国产精品日日摸夜夜添夜夜av| 欧美孕妇毛茸茸xxxx| 欧美视频在线观看免费| 国产精品成av人在线视午夜片| 日韩视频第一页| 成人久久一区二区| 激情久久av一区av二区av三区| 色妞欧美日韩在线| 亚洲第一精品久久忘忧草社区| 国产成人一区二区三区小说| 国产欧美欧洲在线观看| 少妇高潮 亚洲精品| 久久精视频免费在线久久完整在线看| 国产午夜精品美女视频明星a级| 欧美午夜视频在线观看| 亚洲天堂日韩电影| www.日本久久久久com.| 日本一本a高清免费不卡| 成人黄色免费网站在线观看| 欧美精品第一页在线播放| 97在线视频免费播放| 国产精品久久久久久久美男| 欧美一区二区影院| 成人深夜直播免费观看| 精品免费在线观看| 91精品国产网站| 黄色91在线观看| 国产精品大片wwwwww| 黑人巨大精品欧美一区二区一视频| 性欧美视频videos6一9| 欧美一区视频在线| 精品成人在线视频| 亚洲第一精品电影| 欧美激情在线狂野欧美精品| 成人免费xxxxx在线观看| 欧洲美女免费图片一区| 国产精品九九久久久久久久| 欧美理论电影在线播放| 亚洲欧洲美洲在线综合| 97视频在线观看免费| 91精品国产乱码久久久久久蜜臀|