從今天開始,溫習一下JAVA,爲什麼要選擇JAVA語言

---------------------------------------- android培訓java培訓、期待與您交流! ------------------------------------

java是跨平臺語言,什麼是跨平臺語言,就是不僅可以在windows操作系統運行,還可以在linux操作系統上運行,一次編寫,到處運行。他運行在虛擬機上,windows執行的.EXE文件,java執行的.class文件,java語言簡單,開源,而且是面嚮對象語言,而且他還有自己的垃圾回收器,不用考慮內存的問題。而且不像C++複雜,不僅要考慮指針還要考慮內存,Java支持多線程。

       Java的核心思想體現在面向對象:

首先說說我所理解的面向對象,JAVA中萬物都是對象,因爲所有的類都繼承Object,面向對象的核心思想體現在簡單,你想要做什麼事情,C++的是面向過程語言,

面向過程主要強調的行爲動作;

面向對象主要強調的是對象實例;

對象將過程封裝。我們從行動者變成指揮者。

比如說你想讓貪官去吃屎,

咱們可以建立一個貪官的對象(實例)

1. 貪官  貪官1 = new 貪官(),

然後裏面有一個吃屎的動作(方法,函數都行) ;

2.貪官1.吃屎();

但是這樣沒有擴展性,因爲人們不僅討厭貪官還討厭城管啊專家啊,而且上面這個貪官也沒有名字,也沒有性別,上面都沒有,因爲貪官也是人嘛!我們可以創建一個Person對象,然後裏面有name,age,sex這些屬性,我們將這些屬性進行封裝,作用域爲private(外部無法訪問,只有本類可以訪問),爲了讓外部修改或讀取屬性的信息,我們對外提供get,set方法,然後創建Person的構造方法,構造方法這個東西特別的實用:

public Person(String name,int age,String sex){

this.name= name;

this.age = age;

this.sex =sex;

}

這樣我們在實例化一個對象的時候就不需要.set方法設置Person的屬性了,這樣減少了很多代碼量。

我們把貪官啊城管啊什麼的繼承(extends)Person,這樣我們實例化對象就可以直接在構造貪官的時候這樣寫:

了方面我們打印,我直接在Person類中重寫了Object的toString(),因爲所有的類都繼承Object嘛


我們現在舉一反三,既然這裏提到了重寫,首先重寫的必要條件就是有繼承,貪官現在繼承了Person,我們現在在Person類中添加一個eat()方法,public void eat(){};我們不需要返回值,然後貪官重寫了eat()方法;打印的是今天吃的鮑魚。

現在我們貪官類中沒有吃屎的方法,因爲大多數人都不應該吃屎,我們不應該在Person添加吃屎的方法然後讓貪官重寫,既然可以,我們可以定義一個接口(Interface)或者抽象類(abstract),裏面定義一個吃屎的方法,然後讓貪官去實現(implements)這個接口,重寫這個方法。

這裏提到了抽象類和接口我就說說他們的區別:

1.接口需要被實現,抽象類需要被繼承,這句話的一件間接地表達瞭如果我們要實現多繼承可以使用接口,擴展性強

     2.接口中所有的方法都是抽象的,而抽象類中可以有普通方法,意思就是接口的方法需要全部實現,而抽象類只需要實現抽象方法就行。

     3.接口中所有的成員變量(屬性變量)都是static final的,而抽象類中可以有成員變量。

     4.接口不能有構造方法,抽象類可以有構造方法。

     

面向對象的三大特徵

封裝:把屬於一個對象的屬性特徵包裝到一個類中,然後對外提供訪問接口(方法)。打個比方,電腦的USB插口,可以插鼠標,鍵盤,U盤啊之類的,就相當於我們的鼠標,鍵盤,U盤都實現了我們電腦這個接口USB的方法。

繼承:說的簡單點,就是提高重用性,減少代碼量,不過建議大家優先使用組合,因爲繼承太多了,關係複雜,不易於維護。

多態:多態我認爲是面向對象中最有意思的了,首先說說多態的必要條件,必須要有繼承或者實現接口,重寫接口裏的方法,父類引用指向子類引用,然後調用接口中的方法。Java中處處存在多態,比如:

             //父類引用指向子類對象

             List  list = new ArrayList();

             //這裏Iterator是個接口,list.iterator()返回的是一個接口,就說明了ArrayList實現了這個接口

             看過源碼的朋友都知道其實ArrayList的父類AbstractList實現了這個接口,面向對象真是神奇無比啊!

             簡單點的意思就是iterator it = new AbstractList();

             Iterator it = list.iterator();


這裏面全是我的理解,我這個人是想到什麼說什麼的,也許有點亂,希望大家可以給出一些批評和建議,我一定會虛心接受。

---------------------------------------- android培訓java培訓、期待與您交流! ------------------------------------


發佈了31 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章