什么是JAVA編程思想?答案可能很會復雜,但也可以很簡單。要了解JAVA編程思想,首先就要了解什么是編程思想,讓我們來看看什么是編程思想,一句話來講就是,用計算機來解決人們實際問題的思維方式,即編程思想。
我們學習編程語言的最終目的,就是希望用計算機來解決我們的實際問題。那么學習編程該如何入手,也是很多初學者犯難的一個問題,特別是對與非計算機專業的人來說更是如此。面對現實如此多的編程語言(比如:C,C++,JAVA,C# …)和 種類繁多的應用技術(比如: windows編程, linux編程,數據庫, 網絡編程 …)。確實讓人有些眼花繚亂,摸不著頭腦。從下面幾點讓我們了解下編程的思想。
一:過程性的編程思想
計算機只能認識0和1 ,但人卻不能只是用0,1來寫程序。為了程序的寫得方便就出現了0,1的第一層抽象標記,匯編語言。匯編里面的那些標記可是直接對應硬件的。硬件生產廠商都有明確的指令說明書。這些匯編標記是可以被硬件直接識別的。比如CPU,生產CPU的廠家都會有寄存器的標識比如(ax,bx,cx),操作指令標識(mov),等等。驅動方面的編程大多會用到這方面的東西。學習匯編的核心是你需要認識到匯編是一種過程性的編程語言,并且目前的CPU只能執行過程性的程序,任何高級語言都必須轉換成過程性的編程語言后再交給CPU執行。在匯編里主要有三個操作:比較,跳轉(goto),過程調用(call)。為什么說它是過程性的編程思想,值得你去好好的體會一下。不妨寫幾個算法的程序(在程序里面用到比較,跳轉,過程調用),再來看看匯編程序的特點,相信你會有所感悟。值得提一下的是,如果你對操作系統感興趣,也可以看看什么是保護模式?! ?/span>
二:結構性的編程思想
隨著人們解決的問題越來越復雜,匯編程序當然束縛了計算機軟件的發展。因此編程思想發生了一場革命性的變化,結構性的編程方法出現了。在結構性編程思想的編程語言里面,C語言首當其沖。C語言里面有幾個能表現出結構化思想的地方:分支(if), 循環(while,for),結構體(struct). 只要你會用這三個,那么你就可以寫出結構化的程序,但不一定你就了解什么是結構化的編程方法。什么叫做結構化?為什么說goto會破壞程序的結構化?結構體有什么作用,你能說出結構體的哪些好處? 這些都是值得認真體會的地方。別人給的定義不見得都全面。還是自己理解比較靠得住。結構化編程里面最具代表性的書籍就要屬“數據結構“,具體哪本書比較好就不知道了,好像都差不多,只要是用C寫的就行。C語言的“數據結構“里面就是專門來講怎么用結構性的編程思想來解決實際中的算法問題??赐昴承┱鹿?,然后自己找個問題,再用程序去實現它。多寫一些程序,會很有幫助。如果第一遍看完后你看得很模糊,不防先放一放,過一段時間再看看,你可能會有種霍然開朗的感覺。還有需要說明一下,并不是所有的時候結構化的編程一就定好。某些的時候,結構化的編程會使程序更繁雜。(比如結構化編程希望函數只能有一個入口,一個出口。然而有時一個出口會使程序看起來更繁雜)
三:面向對象的編程思想
現在該說說面向對象編程了。這個也是現在用得最多的編程思想。什么是面向對象,它和結構性的思想有什么不同?從程序語法上看,面向對象比結構性的程序多了兩個特性:
1.結構體成員的私有化。結構化程序里面,結構體的成員都是公有的。然而在面向對象里面,結構體改稱為類,并且成員分為公有和私有兩個部分。就因為這一點的不同,就產生了接口的概念。接口不就是類成員的公有部分么?(想想很好笑,本人剛開始認識面向對象的時候,以為只有定義成interface的才叫做接口)
2.類的繼承。因為出現了繼承,才出現了多態。然而就是因為多態,才出現
諸如:隱藏啊,虛函數啊 …等等這些概念。多態的出現,能夠讓同一組數據,在不同的階段,用同一種表達方式,執行不同的操作。如果把這個東西領悟到了,那么你會感嘆一句”原來程序是可以這么寫的”.
因為以上兩點的變化,編程思想也隨之發生了巨大轉變。它可以讓程序更適合人的思維方法來編寫。面向對象的編程語言就很多了,可謂五花八門 :C++ , JAVA , C# …。 都說C++和JAVA有很大的不同,而JAVA和C#卻非常相似,你知道為什么嗎?最根本區別就在于垃圾收集器。就是因為JAVA里面有垃圾自動收集功能,所以JAVA不能和C兼容,而且也不能使用指針。在C++中的值類型和引用類型是可以自己定義的。如果對象被定義為值類型,那么當編輯器自動把對象收集走之后,有時自己會一無所知。如果對象被定義為引用類型,那么又要必須記得把它釋放掉,不然又會引起什么內存泄漏的問題。在JAVA和C#里面就不一樣,在這兩種語言里面,自定義的類,初始得到的對象只能是引用類型。并且有垃圾收集器幫你回收垃圾對象。所以就不會出現內存泄漏的問題。 因為C#比JAVA后出來吧,JAVA所具有的特性,C#基本上都有。并且還具有一些JAVA所不具有的特性(但C#目前不能在linux上面運行)。當然在這里不是說哪個語言好,哪個語言壞。其實他們都是來實現面向對象編程的工具。你也可以用C或者匯編寫一門支持面向對象的語言出來(如果你想做,本人絕對支持,或者用匯編也行。為中國的軟件事業貢獻一份力量,免得總說什么什么語言都是他們外國人發明的。)只要它能夠實現數據封裝,成員私有化,和繼承就行了。在面向對象的編程里面,代表性書籍就要屬“設計模式“了。不過設計模式這個東西,不是你看書就能看懂的。并且你硬套那些模式,不一定對你有多大的好處。這個東西,只有設計做多了,才能有所領悟,自己得到總結??偨Y多了,就會發現和書上的那些東西不謀而合,或許可能比書上總結得更好
好了,目前編程思想的發展就到這一步了。將來的編程思想的會是一個什么樣子,我也不得而知。希望有志之士能夠發明一種編程的思想出來,推動軟件業的發展,讓中國也來引領一下世界軟件的發展潮流。如果你是初學者,可以按照上面的順序來學習計算機。希望在每個環節中能掌握其重點。相信一年之后,你就會有所感悟。在此之間,想要學習java或者想獲取java的更多免費資料,都可以進群了解521,595,826。希望有志同道合的朋友一起學習交流。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。