與C對比的話,Java的特點是它是一種面向對象的語言,那么面向對象到底是什么意思?粵嵌西安Java培訓來簡單聊一聊。
現實世界中,隨處可見的一種事物就是對象,對象是事物存在的實體,如人類、書桌、計算機、高樓大廈等。人類解決問題的方式總是將復雜的事物簡單化,于是就會思考這些對象都是由哪些部分組成的。通常都會將對象劃分為兩個部分,即動態部分與靜態部分。靜態部分,顧名思義就是不能動的部分,這個部分被稱為“屬性”,任何對象都會具備其自身屬性,如一個人,它包括高矮、胖瘦、性別、年齡等屬性。然而具有這些屬性的人會執行哪些動作也是一個值得探討的部分,這個人可以哭泣、微笑、說話、行走,這些是這個人具備的行為(動態部分),人類通過探討對象的屬性和觀察對象的行為了解對象。
粵嵌先Java培訓在這打個比方,把寫一個程序想象成做一張桌子:
使用面向過程的思路:桌子,要用木頭做,所以我要種樹,樹種好了,我要砍木頭;可是沒鐵,開個鐵礦先;有礦石了,造個煉鐵房;煉好鐵,做成鋸子,鋸木,做鐵錘,做釘子;但是我不會裝桌子,去學學木工,桌子做好了。
接下來是面向對象:我要做桌子,要木頭,直接從建材市場買;沒鐵釘鐵錘,直接從五金商店買;不會裝桌子,直接請個木工,桌子完成。
所謂面向對象,如上例,我要木頭,從建材市場這個對象拿,調用建材市場這個對象中出售木頭這個方法,返回我一個木頭,至于建材市場的木頭哪來的,我不知道,也不用知道,為什么這個社會有各行各業?他們全都是對象,都有一個方法,返回該職業能返回給社會的事物,之所以說面向對象更接近于人的正常思維,妙處就在這,我們把能拿到我們想要的東西的出處抽取成一個對象,我們直接訪問它,拿到我們要的東西,它又從它該拿到東西的對象處拿東西,看似互不相干,卻又有很多關系,這就是面向對象,每一個對象,一個方法,只做它自己該做的事,其他的,交給其他的方法,其他的對象。
面向對象相比面向過程,更接近于人的思維,而復雜的活則更多地交給編譯器去做,雖然可能由于編譯器不夠智能而使得終重新效率偏低,但是卻加快了程序員的工作效率,以上是粵嵌西安Java培訓對面向對象的理解。