面向?qū)ο缶幊?Object-Oriented Programming蒋纬,簡稱OOP)是計算機科學中常見的編程范式源梭。與傳統(tǒng)的面向過程編程相比铺呵,面向?qū)ο缶幊虒嶓w抽象成對象,以此來描述和解決問題派撕。在現(xiàn)代軟件開發(fā)中婉弹,OOP是一種非常重要的編程思想,可以極大地提高軟件的可讀性终吼、可維護性和可擴展性镀赌。因此,在JAVA編程課程中际跪,教授面向?qū)ο缶幊淌欠浅1匾摹?br>
JAVA 面向?qū)ο缶幊探虒W設(shè)計
JAVA面向?qū)ο缶幊痰慕虒W商佛,應(yīng)該在JAVA編程基礎(chǔ)課程的基礎(chǔ)上進行蛙粘。通常推薦在學生掌握了JAVA基礎(chǔ)語法和語言特性的基礎(chǔ)上,開始教授面向?qū)ο缶幊掏谩T谡n程設(shè)置方面出牧,可以按照以下的框架進行。
·面向?qū)ο缶幊探榻B
OOP 的初步理解類和對象
繼承歇盼、封裝舔痕、多態(tài).類的設(shè)計
成員變量、屬性和方法構(gòu)造方法
所有的編程語言都會操縱內(nèi)存中的元素豹缀。有時程序員必須要有意識地直接或間接地操縱它們伯复。在 C/C++ 中,對象的操縱是通過指針來完成的邢笙。Java 利用萬物皆對象的思想和單一一致的語法方式來簡化問題啸如。雖萬物皆可為對象,但我們所操縱的標識符實際上只是對對象的“引用” 氮惯。舉例:我們可以用遙控器(引用)去操縱電視(對象)叮雳。只要擁有對象的“引用”,就可以操縱該“對象”妇汗。此外帘不,沒有電視,遙控器也可以單獨存在杨箭。
下面來創(chuàng)建一個?String?引用寞焙,用于保存單詞或語句。代碼示例:
?對象清理
大多數(shù)程序語言都有作用域的概念互婿。作用域決定了在該范圍內(nèi)定義的變量名的可見性和生存周期捣郊。在 C、 C++ 和 Java 中慈参,作用域是由大括號?{}?的位置決定的呛牲。例如:
Java 的變量只有在其作用域內(nèi)才可用《粒縮進使得 Java 代碼更易于閱讀侈净。由于 Java 是一種自由格式的語言,額外的空格僧凤、制表符和回車并不會影響程序的執(zhí)行結(jié)果。在 Java 中元扔,你不能執(zhí)行以下操作躯保,即使這在 C 和 C++ 中是合法的:
在上例中, Java 編譯器會在提示變量 x 已經(jīng)被定義過了澎语。因此途事,在 C/C++ 中將一個較大作用域的變量"隱藏"起來的做法验懊,在 Java 中是不被允許的。 因為 Java 的設(shè)計者認為這樣做會導致程序混亂尸变。
Java 對象與基本類型具有不同的生命周期义图。當我們使用?new?關(guān)鍵字來創(chuàng)建 Java 對象時,它的生命周期將會超出作用域召烂。因此碱工,下面這段代碼示例:
上例中,引用 s 在作用域終點就結(jié)束了奏夫。但是怕篷,引用 s 指向的字符串對象依然還在占用內(nèi)存。Java通過垃圾回機制釋放內(nèi)存摒棄了C++操作內(nèi)存可能出現(xiàn)的諸多問題酗昼。
?類的創(chuàng)建
大多數(shù)面向?qū)ο蟮恼Z言都使用?class?關(guān)鍵字類來描述一種新的對象廊谓。 通常在?class?關(guān)鍵字的后面的緊跟類的的名稱。如下代碼示例:
當我們創(chuàng)建好一個類之后麻削,我們可以往類里存放兩種類型的元素:方法(method)和字段(field)蒸痹。
字段:類的字段可以是基本類型,也可以是引用類型呛哟。如果類的字段是對某個對象的引用电抚,那么必須要初始化該引用將其關(guān)聯(lián)到一個實際的對象上。
方法:在許多語言(如 C 和 C++)中竖共,使用術(shù)語?函數(shù)?(function) 用來命名子程序蝙叛。在 Java 中,我們使用術(shù)語?方法(method)來表示“做某事的方式”公给。
返回類型:方法的返回類型表明了當你調(diào)用它時會返回的結(jié)果類型借帘。參數(shù)列表則顯示了可被傳遞到方法內(nèi)部的參數(shù)類型及名稱。方法名和參數(shù)列表統(tǒng)稱為方法簽名(signature of the method)淌铐。簽名作為方法的唯一標識肺然。