面向?qū)ο缶幊?Object-Oriented Programming,簡稱OOP)是計算機科學中常見的編程范式。與傳統(tǒng)的面向過程編程相比,面向?qū)ο缶幊虒嶓w抽象成對象,以此來描述和解決問題。在現(xiàn)代軟件開發(fā)中,OOP是一種非常重要的編程思想,可以極大地提高軟件的可讀性、可維護性和可擴展性。因此,在JAVA編程課程中,教授面向?qū)ο缶幊淌欠浅1匾摹?br>
JAVA 面向?qū)ο缶幊探虒W設計
JAVA面向?qū)ο缶幊痰慕虒W,應該在JAVA編程基礎課程的基礎上進行。通常推薦在學生掌握了JAVA基礎語法和語言特性的基礎上,開始教授面向?qū)ο缶幊獭T谡n程設置方面,可以按照以下的框架進行。
·面向?qū)ο缶幊探榻B
OOP 的初步理解類和對象
繼承、封裝、多態(tài).類的設計
成員變量、屬性和方法構造方法
所有的編程語言都會操縱內(nèi)存中的元素。有時程序員必須要有意識地直接或間接地操縱它們。在 C/C++ 中,對象的操縱是通過指針來完成的。Java 利用萬物皆對象的思想和單一一致的語法方式來簡化問題。雖萬物皆可為對象,但我們所操縱的標識符實際上只是對對象的“引用” 。舉例:我們可以用遙控器(引用)去操縱電視(對象)。只要擁有對象的“引用”,就可以操縱該“對象”。此外,沒有電視,遙控器也可以單獨存在。
下面來創(chuàng)建一個?String?引用,用于保存單詞或語句。代碼示例:

?對象清理
大多數(shù)程序語言都有作用域的概念。作用域決定了在該范圍內(nèi)定義的變量名的可見性和生存周期。在 C、 C++ 和 Java 中,作用域是由大括號?{}?的位置決定的。例如:

Java 的變量只有在其作用域內(nèi)才可用??s進使得 Java 代碼更易于閱讀。由于 Java 是一種自由格式的語言,額外的空格、制表符和回車并不會影響程序的執(zhí)行結果。在 Java 中,你不能執(zhí)行以下操作,即使這在 C 和 C++ 中是合法的:

在上例中, Java 編譯器會在提示變量 x 已經(jīng)被定義過了。因此,在 C/C++ 中將一個較大作用域的變量"隱藏"起來的做法,在 Java 中是不被允許的。 因為 Java 的設計者認為這樣做會導致程序混亂。
Java 對象與基本類型具有不同的生命周期。當我們使用?new?關鍵字來創(chuàng)建 Java 對象時,它的生命周期將會超出作用域。因此,下面這段代碼示例:

上例中,引用 s 在作用域終點就結束了。但是,引用 s 指向的字符串對象依然還在占用內(nèi)存。Java通過垃圾回機制釋放內(nèi)存摒棄了C++操作內(nèi)存可能出現(xiàn)的諸多問題。
?類的創(chuàng)建
大多數(shù)面向?qū)ο蟮恼Z言都使用?class?關鍵字類來描述一種新的對象。 通常在?class?關鍵字的后面的緊跟類的的名稱。如下代碼示例:

當我們創(chuàng)建好一個類之后,我們可以往類里存放兩種類型的元素:方法(method)和字段(field)。
字段:類的字段可以是基本類型,也可以是引用類型。如果類的字段是對某個對象的引用,那么必須要初始化該引用將其關聯(lián)到一個實際的對象上。
方法:在許多語言(如 C 和 C++)中,使用術語?函數(shù)?(function) 用來命名子程序。在 Java 中,我們使用術語?方法(method)來表示“做某事的方式”。

返回類型:方法的返回類型表明了當你調(diào)用它時會返回的結果類型。參數(shù)列表則顯示了可被傳遞到方法內(nèi)部的參數(shù)類型及名稱。方法名和參數(shù)列表統(tǒng)稱為方法簽名(signature of the method)。簽名作為方法的唯一標識。
