導航:首頁 > 程序命令 > 程序員拼裝汽車

程序員拼裝汽車

發布時間:2023-09-03 10:05:07

⑴ 小鵬汽車:從城中村到紐交所 一個程序員的造車史

2004年8月,UC首次將伺服器、客戶端混合計算的雲端架構應用到手機瀏覽器領域。

2017年8月,何小鵬從阿里巴巴退出,以董事長的身份正式加入小鵬 汽車 。

2020年8月,小鵬 汽車 敲響了IPO的鍾聲,正式於紐交所上市。

8月,是巧合,也是何小鵬的印記;而成功掛牌紐交所,卻是小鵬 汽車 6歲的印記。

至此,小鵬、蔚來、理想,成了三家赴美上市的新勢力造車代表,而中國新勢力造車版圖也終將形成「三國鼎立」的局面。接下來的兩周里,我們將會用三篇系列報道,為你揭開三巨頭背後的造車歷程。

故事,就由小鵬開篇吧……

— 01角色的轉變 —

「世事的起伏本來就是波浪式的,人們要是能夠趁著高潮一往直前,一定可以功成名就;要是不能把握時機,就要終生蹭蹬,一事無成。」——莎士比亞

何小鵬就是那個會把握時機的人,但要說他有何獨特之處,卻並非是UC時代那個最優秀的產品經理,而是在他不惑之年,義無反顧地完成了一次角色轉變:離開阿里,以一個投資人的身份加入到小鵬 汽車 ,並硬生生地把廣州一座不起眼的城中村變成了屬於他的「戰地」,還一步一步將它帶到了紐交所。

【這是何小鵬和他的上一個代表作 UC】

「造車很難!很重!」UC的成功,已然為何小鵬注入了企業家的「血液」。然而, 真正讓他被圈內熟識的,還是從造車開始

盡管早已不是容易激動的年紀,但 汽車 界這場隨之會來的大變局,還是激起了他內心漣漪。既然美國已經開始有變化了,中國應該也快了。

2014 年年中,何小鵬與他的「朋友圈」,及多家風投機構一起做了天使投資人,共同創辦了小鵬 汽車 。這些人里,多數是他做UC時的緊密合作人。 持股31.6%,何小鵬成了最大股東

「最初,是純投資者的心態」,這是何小鵬當時想法:只是覺得這個行業一定會有價值。

他的眼光確實獨到。同年,馬斯克宣布對外開放特斯拉的全部 228 項專利,這也就意味著會有更多公司加入到造車大潮。天時!地利!人和!還等什麼?2014-2017年期間,這成了小鵬 汽車 的起步階段,只不過那時的何小鵬還任職於阿里。

從創立UC到擔任阿里移動事業群總裁,再在阿里任職時期投資和創建小鵬 汽車 ,這期間,何小鵬實際上已實現了財務自由——2014年6月,UC以43.5億美金賣給了阿里巴巴。也就是說,在邁進 汽車 領域之前,何小鵬實際上已經是一個擁有了100億以上的年輕富豪,然而他在冒險與保守間選擇了再一次下注。

小鵬 汽車 ,這是他的第二次創業 。2017年8月,何小鵬從阿里巴巴退出,以董事長的身份正式加入小鵬 汽車 。

屬於何小鵬的下半場,正式開始……

「自創業伊始,我就一直期望實現更大的夢想。」這是何小鵬在談及創業感受時曾經說過的一句話。但是,造車畢竟與互聯網行業不同,不僅要吸引人才、引進技術,還需要有足夠的資金鏈,更需要鋪建上下游體系……這是一個無底洞。

做得好了,名利雙收;做得不好,血本無歸。盡管「凶險」,但依舊有著大批和小鵬 汽車 一樣的造車新勢力拔地而起,因為,趕上了好時代!

— 02 互聯網造車變一地雞毛

就在小鵬 汽車 創立的前一年(2013年9月),國家為開發潔凈能源 汽車 ,開始「輸血式」地扶持這個行業發展,一舉打開了新能源 汽車 的大門。財政部、 科技 部、工業和信息化部、發展改革委等四部委還聯合下發了《關於繼續開展新能源 汽車 推廣應用工作的通知》,並明確了財政補貼支持推廣應用新能源 汽車 的具體政策。而隨後,各地方政府的補貼政策也陸續跟進。也就是說, 買一輛新能源 汽車 ,消費者可以拿到兩份補貼

有補貼、政策扶持,毫無疑問地,中國新能源 汽車 的春天已然來臨。一時間,「智能 汽車 」這個概念開始大受資本追捧,第一代資本炒家開始瘋狂投機,甚至很多互聯網企業也看到了其中紅利,紛紛入局。小鵬 汽車 ,也就是頭幾家站在風口的企業而已。

補貼紅利時期,有人調侃說「只要PPT做得宏大,基本都會受到資本青睞。」2016-2018年期間,有數據明確顯示,15家新造車勢力其融資總額就能達到千億級人民幣,發展態勢很是兇猛。

那個時候,賈躍亭還是站在互聯網神壇上的一代風雲人物,當時他還躊躇滿志地說「造車是足夠偉大的一件事, 汽車 業務即使把我們拖垮了,我們也要做。」但結果,也是真的「垮」了。

【賈躍亭的第一輛造車夢 FF91】

那個期間, 小鵬 汽車 開始晉級 :從數千萬的天使輪邁進22+億人民幣的A輪融資、再從62億人民幣的B輪融資跨到13億美金的C輪融資,單就2018年一年時間,小鵬 汽車 就融資高達65億人民幣(除了62億元B輪融資,還有3億元的戰略融資)。這也成就了新造車勢力中,單年完成的最大單輪融資。

然而僅僅三年,這個行業卻開始緊急剎車。神話破滅,PPT造車淪為笑柄——2019年,隨著融資「窒息」、市場轉向、以及補貼政策斷崖式的下滑。 這一年,造車新勢力集體縮水、失聲

造車,真的沒想像中「光鮮」。不以長遠為規劃,終究一地雞毛。然而像蔚來、小鵬、威馬卻成了新勢力中第一關批量交付的優秀代表。但同時,真正的「廝殺」才正式開始!

— 03 有趣的投資者們 —

其實扒一扒小鵬 汽車 背後的「財團」,你會覺得這會是一個有趣的故事。

和何小鵬頗有淵源的阿里巴巴,從A+輪開始就與小鵬 汽車 結緣,隨後在B輪和C++輪的融資里,也相繼有阿里巴巴的影子。 阿里巴巴的投資一方面顯示了對互聯網造車的熱情,另一方面,也是為了在BAT領域里有所抗衡。

你看,蔚來 汽車 算是與騰訊有著深度綁定的新造車公司,雖然網路也有參與其中;而威馬 汽車 又是與網路走得最近的企業(發布量產車時陸奇也有出席),但威馬 汽車 的副董事長熊明華卻又擔任過騰訊的首席技術官,與騰訊也有淵源。是不是有點兒意思!

但是,阿里出手,是繼騰訊投資了蔚來、網路投資了威馬之後,又一個亟需在戰略上布局智能造車的企業。有人戲稱「小鵬 汽車 是阿里的嫡系部隊」,其實也不假,這裡面應該也包含著何小鵬與阿里本身的「情分」。

除此,何小鵬早年間建立的人脈網路,也開始逐漸發揮重要作用——在小鵬 汽車 的Pre-A輪融資中,投資方包括小米的雷軍、俞永福、李學凌、傅盛、騰訊前高管吳霄光、經緯創投張穎等,這一次的融資額是4200萬元;而在A+輪融資中,又出現了很多互聯網大咖的身影,這其中就包括58同城網創始人兼CEO姚勁波、大眾點評創始人張濤、獵聘網創始人兼CEO戴科彬等,他們以個人的身份參與了投資。

雪球不斷滾大,這造就了 小鵬 汽車 已累計完成10輪融資 ,共獲得兩百多億元資金的支持。

— 04 錢花去哪裡了 —

在何小鵬看來,獲得融資後,有三筆錢必須得花:

第一筆錢都花在這里了:Xpilot自動駕駛+XsmartOS車載系統+SEPA電氣化平台。與「蔚來看重服務、理想強調效率」不同的是,小鵬 汽車 更注重在技術和研發上的投入,尤其看重自動駕駛技術和智能操作系統領域的儲備。

為了搭建一套完整的自研自動駕駛團隊,小鵬 汽車 還在矽谷、聖地亞哥、北京、上海、廣州,建立了不同的智能研發團隊。IPO招股書顯示,2019年小鵬 汽車 收入為23.2億人民幣,其中研發投入就高達20.7億,占公司總收入的89.2%。而今年(截止6月),研發投入也已佔據公司總收入的62.9%。這都是一筆大的開銷。

除了造車本身的研發投入外,更重要的是需解決困擾造車新勢力的一大難題——生產資質。這也是何小鵬認為必須要花的第二筆錢。

說起這個「准生證」,還有點兒意思。這是國家對於各個行業都有相應的監管和准入門檻,也就是說,你想要建廠造車,首先就要報備發改委,得到乘用車項目建設核准,這樣才能合法建設一個整車生產工廠(小鵬肇慶工廠一、二期的總投資就達到了100億元)。但是,工廠建好了又並不意味著就可以造車了,還需要得到工信部核准,產品登上工信部新車目錄後才能合法的上市銷售。而我們常說的「准生證」基本就是以工信部生產資質為准。

當時小鵬的首款產品G3還是由鄭州海馬代工生產。為了獲得工廠「准生證」,小鵬 汽車 最快的辦法就是收購一家業績較差,甚至瀕臨破產,但擁有工信部生產資質的企業,這樣就可以利用他的生產資質讓旗下新車登上工信部新車目錄。所以,何小鵬想到了收購福迪。

按照往年記錄,為了這張「入場券」,那些造車新勢力可都是花了大價錢的——理想收購力帆 汽車 資質花了6.5億;威馬收購黃海 汽車 花了11.8億;愛馳入股江鈴控股50%花了17.47億;博郡和夏利合資的價格是20.34億。不過,小鵬收購福迪的成交價格卻是個謎: 外界流傳小鵬僅花費1600萬元就拿下福迪品牌及其生產資質 ,這相比此前各家的數億收購價, 顯然並不合理 ,沒有十幾億肯定說不過去。

收購完成後, 福迪資質也順利轉移到了小鵬肇慶工廠 ,而以福迪資質申報的小鵬P7也迅速出現在了第332期工信部新車目錄中。有了「造車資質」和工廠,這也就意味著有了成本管控和質量管控,而這也是除了技術和產品外的第二重要競爭要素。

第三筆錢則是建成規模化的超級充電站——除了自營充電體系,小鵬 汽車 也將引入第三方運營商。不過這需要有持續現金流的投入,相比起自動駕駛技術上的儲備、以及「造車資質」的購買,小鵬 汽車 在超級充電站布局目前還未形成規模化。超級充電站的投資,應該遠比我們想像中要大。 對於想要降低成本、保證交付、且有良好充電體驗的小鵬 汽車 來說,這錢都花得值!

— 05 腹背受敵 —

融資和造車的過程是順利的,但小鵬 汽車 也有日子不好過的時候。

2019年,小鵬 汽車 發布了2020款G3車型,說是改款,但卻是做了一次全面升級。這於小鵬而言,把改款車型做了大升級,這是好事啊;但於消費者而言,換來的卻是「老鵬友」的維權。

為何?您別好奇,聽我慢慢道來!

從時間線來看,G3車型是在2018年12月12日正式上市,並於2019年3月開始正式交付。但在4個月後(也就是2019年7月),全面升級的2020款小鵬G3開始上市。也就是說,你可能面臨著舊車還沒交付,但改款的G3就宣布上市了,而且新車的續航還更長。這對還未提車,或剛提車不久的「鵬友」來說,認為小鵬 汽車 隱瞞了即將發布新車的事實,事情開始發酵。

【當年車主維權的圖片】

隨即, 小鵬 汽車 提出了兩個解決方案進行二選一 。一是贈送小鵬商城10萬積分,價值1萬元,可用於車輛保養、超充充電、車輛維修、兌換精品和本人及直系親屬新車增購。二是G3 2019款三年6折保值置換回購,用於補差價換購小鵬 汽車 。而且對於已經訂購2019款G3但尚未提車的用戶,可以更換為520km的版本。

不過這個事件並未真正影響到G3銷量,從數據上看,它依舊是2019年國內銷量最高的三款電動SUV車型之一。但,小鵬 汽車 想要搶佔新能源車市場,除了G3,應該更會寄希望於今年上市的小鵬P7。而P7所面臨的,有一個繞不開的競爭對手:特斯拉。

小鵬 汽車 於特斯拉之間,就不光是競爭對手關系那麼簡單,這還涉及了特斯拉的一波起訴。

此前,特斯拉以Autopilot技術源代碼被竊為由,起訴自家離職員工(現小鵬 汽車 員工)曹光植,並要求小鵬 汽車 披露其自動駕駛源代碼,上交電腦硬碟圖像,讓員工接受面談訪問。

其中糾紛我們就不做過多猜測了,但資本市場真正關心的,還是 特斯拉的這波起訴,是否會對小鵬 汽車 上市後有影響

— 06 虧損和上市矛盾嗎 —

北京時間8月8日凌晨2點,小鵬 汽車 向美國證監會提交了IPO文件。繼蔚來、理想之後,小鵬成為了第三個赴美上市的新能源 汽車 。

小鵬IPO要點

1

財務方面:小鵬 汽車 2019年研發投入為20.7億,全年凈虧損36.9億。 2020年上半年,小鵬 汽車 營收為10.03億人民幣,毛利為-3611.6萬,毛利率為-3.6%同比大幅收窄,研發投入6.3億,上半年凈虧損7.95億。

2

股東方面:IPO前,小鵬 汽車 管理層持股達40.9%,其中何小鵬持股31.6%為最大股東,阿里持股14.4%為最大外部股東,其他主要股東還包括小米、GGV紀源資本、晨興資本。此外,小鵬 汽車 在近一月完成合計超9億美元投資,阿里巴巴、高瓴、紅杉、卡達投資局等均參與其中。

3

技術優勢: 當前小鵬擁有自研的自動駕駛軟體平台Xpilot,是國內領先的自動駕駛智能 汽車 公司。

4

車型:小鵬 汽車 目前有兩款車型在售,分別是SUV車型G3和轎車P7。截止2020年7月,小鵬 汽車 累計交付量達20707輛,總銷量在造車新勢力中排名領先。

根據小鵬 汽車 公布的數據,2020上半年,小鵬實現總營收10億元人民幣,同比下降18.6%;凈虧損為8.0億元人民幣,凈利虧損幅度同比收窄26.1%,凈虧損率從155.8%下降至79.4%;毛利為-3611.6萬人民幣,毛利虧損幅度同比收窄92.3%,毛利率從-38.2%提升至-3.6%。雖然還未轉正,但也有了很大幅度的提升。

不過 虧損並不會影響小鵬 汽車 的上市和估值 ,其主要原因就在於資本市場看好了其在產品研發上的投入(早期的特斯拉也是如此),小鵬 汽車 有著深度涉及智能化的產業基礎,這是他很重要的一個籌碼。加上,小鵬 汽車 還有G3和P7補充市場(目前估算,P7會有不錯的潛力)、以及自己的生產基地,未來產能應該還會持續爬坡(肇慶工廠目前產能是每年10萬輛),這是資本市場看好小鵬 汽車 的另一個砝碼。

而至於為何又要在美國上市,在我說完以下幾個原因後,相信你也會認同——

①美股執行的是注冊制,只需要達到監管部門設立的標准就能上市,會更加市場化。

②在美股佔一個坑位,對品牌的全球知名度和影響力都有巨大的幫助,尤其是對拓展企業海外融資渠道也會有幫助。

③對於還在不斷「燒錢」的新能源 汽車 ,企業上市也是投資者最佳的退出機制。

從長遠來看,小鵬 汽車 也可以通過上市來獲取品牌力和市場信任度,同時還能為自動駕駛系統研發「物色」更多資源,這個商業潛力不可估量。

— 07結語 —

6年磨煉聚起的光暈終在敲鍾那刻起被點燃,站在大鑼前面的何小鵬,可能會想起小鵬 汽車 的第一次下線、第一次交付,也可能會想起受過的挫折和躺過的「槍」。但也因此,才讓何小鵬打造了中國的「特斯拉」——小鵬P7。或許這個時刻,何小鵬又會重新意識到,夢想中的"小鵬王國"可能才剛開始。

站在新起點,小鵬 汽車 會被賦予更高的期望,如何提高品牌影響力、如何讓中國的造車新勢力在全球競爭中取得成功,這都將成為大家想要的答案。

但是,我願意相信,中國的 汽車 行業會更好。

小鵬 汽車 ,加油!

(文:太平洋 汽車 網 王曉莉)

⑵ 汽車編程基礎知識

給汽車編程最簡單的方法就是使用轉換和存儲程序晶元的方法。更換不同程序的晶元時,只需拆開ECU背板,拔掉原晶元,換上新的即可。由於一些舊的E-ROM晶元只能寫入程序一次,所以每次修改程序都需要用刻錄機將程序刻成空白晶元來代替原來的晶元。
現在的車載電腦都是使用可擦寫存儲器,所以可以修改原來ECU中存儲的程序。但是如果你是一個普通的電腦程序員,在汽車ECU裡面編輯程序還是不夠的,因為涉及到汽車的點火和噴油,各種感測器和執行器信號的輸入輸出,現在用的是CAN。所以要想編譯汽車的語言,就要學習計算機的編程語言。需要了解汽車發動機的機械性能(包括各種轉速下的點火時間和噴油時間等。),以及強大的汽車專業知識。現在,對區域網知識的要求增加了,所以在中國大陸只有一小部分人可以改變車載電腦中的程序。

⑶ 利用面向對象的方法設計一個汽車的類! 並利用該類創造一個汽車對象!

「所見即所得」的編程思想為原則,力圖實現編程工作的可視化,即隨時可以看到結果,程序與結果的調整同步。
可視化編程是與傳統的編程方式相比而言的,這里的「可視」,指的是無須編程,僅通過直觀的操作方式即可完成界面的設計工作,是目前最好的Windows應用程序開發工具。
可視化編程語言的特點主要表現在兩個方面:一是基於面向對象的思想,引入了控制項的概念和事件驅動;二是程序開發過程一般遵循以下步驟,即先進行界面的繪制工作,再基於事件編寫程序代碼,以響應滑鼠、鍵盤的各種動作。
可視化編程十問
1. 什麼是可視化程序設計?
可視化(Visual)程序設計是一種全新的程序設計方法,它主要是讓程序設計人員利用軟體本身所提供的各種控制項,像搭積木式地構造應用程序的各種界面。
2. 可視化程序設計有哪些優點?
可視化程序設計最大的優點是設計人員可以不用編寫或只需編寫很少的程序代碼,就能完成應用程序的設計,這樣就能極大地提高設計人員的工作效率。
3. 能夠進行可視化程序設計的語言有哪些?
能進行可視化程序設計的語言很多,比較常用的有微軟的Visual Basic、Visual C++、中文Visual Foxpro、Borland公司的Delphi等。
4. 可視化程序設計中有哪些基本概念?
主要的幾個基本概念有表單、組件、屬性、事件、方法等。
5. 什麼是表單(Form)?
表單是指進行程序設計時的窗口,我們主要是通過在表單中放置各種部件(如命令按鈕、復選框、單選框、滾動條等)來布置應用程序的運行界面。
6. 什麼是組件?
所謂組件,就是組成程序運行界面的各種部件,如:命令按鈕、復選框、單選框、滾動條等。
7. 什麼是屬性?
屬性就是組件的性質。它說明組件在程序運行的過程中是如何顯示的、組件的大小是多少、顯示在何處、是否可見、是否有效……
8. 屬性可以分成哪幾類?
屬性可分成三類,設計屬性:是在進行設計時就可發揮作用的屬性;運行屬性:這是在程序運行過程中才發揮作用的屬性;只讀屬性:是一種只能查看而不能改變的屬性。
9. 什麼是事件?
事件就是對一個組件的操作。如用滑鼠點擊一個命令按鈕,在這里,點擊滑鼠就稱為一個事件(Click事件)。
10. 什麼是方法?
方法就是某個事件發生後要執行的具體操作,類似以前的程序。例如當我們用滑鼠單擊「退出」命令按鈕時,程序就會通過執行一條命令而結束運行,命令的執行過程就叫方法。

面向對象程序設計 1.歷史回顧
1967年挪威計算中心的Kisten Nygaard和Ole Johan Dahl開發了Simula67語言,它提供了比子程序更高一級的抽象和封裝,引入了數據抽象和類的概念,它被認為是第一個面向對象語言。20世紀70年代初,Palo Alto研究中心的Alan Kay所在的研究小組開發出Smalltalk語言,之後又開發出Smalltalk-80,Smalltalk-80被認為是最純正的面向對象語言,它對後來出現的面向對象語言,如Object-C,C++,Self,Eiffl都產生了深遠的影響。隨著面向對象語言的出現,面向對象程序設計也就應運而生且得到迅速發展。之後,面向對象不斷向其他階段滲透,1980年Grady Booch提出了面向對象設計的概念,之後面向對象分析開始。1985年,第一個商用面向對象資料庫問世。1990年以來,面向對象分析、測試、度量和管理等研究都得到長足發展。
實際上,「對象」和「對象的屬性」這樣的概念可以追溯到20世紀50年代初,它們首先出現於關於人工智慧的早期著作中。但是出現了面向對象語言之後,面向對象思想才得到了迅速的發展。過去的幾十年中,程序設計語言對抽象機制的支持程度不斷提高:從機器語言到匯編語言,到高級語言,直到面向對象語言。匯編語言出現後,程序員就避免了直接使用0-1,而是利用符號來表示機器指令,從而更方便地編寫程序;當程序規模繼續增長的時候,出現了Fortran、C、Pascal等高級語言,這些高級語言使得編寫復雜的程序變得容易,程序員們可以更好地對付日益增加的復雜性。但是,如果軟體系統達到一定規模,即使應用結構化程序設計方法,局勢仍將變得不可控制。作為一種降低復雜性的工具,面向對象語言產生了,面向對象程序設計也隨之產生。
2.面向對象程序設計的基本概念
面向對象程序設計中的概念主要包括:對象、類、數據抽象、繼承、動態綁定、數據封裝、多態性、消息傳遞。通過這些概念面向對象的思想得到了具體的體現。
1)對象
對象是運行期的基本實體,它是一個封裝了數據和操作這些數據的代碼的邏輯實體。
2)類
類是具有相同類型的對象的抽象。一個對象所包含的所有數據和代碼可以通過類來構造。
3)封裝
封裝是將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。對象的某些數據和代碼可以是私有的,不能被外界訪問,以此實現對數據和代碼不同級別的訪問許可權。
4)繼承
繼承是讓某個類型的對象獲得另一個類型的對象的特徵。通過繼承可以實現代碼的重用:從已存在的類派生出的一個新類將自動具有原來那個類的特性,同時,它還可以擁有自己的新特性。
5)多態
多態是指不同事物具有不同表現形式的能力。多態機制使具有不同內部結構的對象可以共享相同的外部介面,通過這種方式減少代碼的復雜度。
6)動態綁定
綁定指的是將一個過程調用與相應代碼鏈接起來的行為。動態綁定是指與給定的過程調用相關聯的代碼只有在運行期才可知的一種綁定,它是多態實現的具體形式。
7)消息傳遞
對象之間需要相互溝通,溝通的途徑就是對象之間收發信息。消息內容包括接收消息的對象的標識,需要調用的函數的標識,以及必要的信息。消息傳遞的概念使得對現實世界的描述更容易。
3.面向對象語言
一個語言要稱為面向對象語言必須支持幾個主要面向對象的概念。根據支持程度的不同,通常所說的面向對象語言可以分成兩類:基於對象的語言,面向對象的語言。
基於對象的語言僅支持類和對象,而面向對象的語言支持的概念包括:類與對象、繼承、多態。舉例來說,Ada就是一個典型的基於對象的語言,因為它不支持繼承、多態,此外其他基於對象的語言還有Alphard、CLU、Euclid、Mola。面向對象的語言中一部分是新發明的語言,如Smalltalk、Java,這些語言本身往往吸取了其他語言的精華,而又盡量剔除他們的不足,因此面向對象的特徵特別明顯,充滿了蓬勃的生機;另外一些則是對現有的語言進行改造,增加面向對象的特徵演化而來的。如由Pascal發展而來的Object Pascal,由C發展而來的Objective-C,C++,由Ada發展而來的Ada 95等,這些語言保留著對原有語言的兼容,並不是純粹的面向對象語言,但由於其前身往往是有一定影響的語言,因此這些語言依然寶刀不老,在程序設計語言中佔有十分重要的地位。
4.面向對象程序設計的優點
面向對象出現以前,結構化程序設計是程序設計的主流,結構化程序設計又稱為面向過程的程序設計。在面向過程程序設計中,問題被看作一系列需要完成的任務,函數(在此泛指常式、函數、過程)用於完成這些任務,解決問題的焦點集中於函數。其中函數是面向過程的,即它關注如何根據規定的條件完成指定的任務。
在多函數程序中,許多重要的數據被放置在全局數據區,這樣它們可以被所有的函數訪問。每個函數都可以具有它們自己的局部數據。下圖顯示了一個面向過程程序中函數和數據的關系。
圖1 面向過程程序設計中函數和數據的關系示例
這種結構很容易造成全局數據在無意中被其他函數改動,因而程序的正確性不易保證。面向對象程序設計的出發點之一就是彌補面向過程程序設計中的一些缺點:對象是程序的基本元素,它將數據和操作緊密地連結在一起,並保護數據不會被外界的函數意外地改變。下圖顯示了一個面向對象程序中對象與函數和數據的關系。
圖2 面向對象程序設計中函數和數據的關系示例
比較面向對象程序設計和面向過程程序設計,還可以得到面向對象程序設計的其他優點:
1)數據抽象的概念可以在保持外部介面不變的情況下改變內部實現,從而減少甚至避免對外界的干擾;
2)通過繼承大幅減少冗餘的代碼,並可以方便地擴展現有代碼,提高編碼效率,也減低了出錯概率,降低軟體維護的難度;
3)結合面向對象分析、面向對象設計,允許將問題域中的對象直接映射到程序中,減少軟體開發過程中中間環節的轉換過程;
4)通過對對象的辨別、劃分可以將軟體系統分割為若干相對為獨立的部分,在一定程度上更便於控制軟體復雜度;
6)以對象為中心的設計可以幫助開發人員從靜態(屬性)和動態(方法)兩個方面把握問題,從而更好地實現系統;
7)通過對象的聚合、聯合可以在保證封裝與抽象的原則下實現對象在內在結構以及外在功能上的擴充,從而實現對象由低到高的升級。
面對對象的程序設計方法
在數據輸入模塊內部設計中,採用面向對象的設計方法。[6]面向對象的基本概念如下:
對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數到整數列龐大的資料庫、極其復雜的自動化工廠、太空梭都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規則、計劃或事件。對象由數據(描述事物的屬性)和作用於數據的操作(體現事物的行為)構成一獨立整體。從程序設計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內的操作通常稱為方法。
類:類是對象的模板。即類是對一組有相同數據和相同操作的對象的定義,一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結構。
消息:消息是對象之間進行通信的一種規格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。
面向對象主要特徵:
封裝性:封裝是一種信息隱蔽技術,它體現於類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的演算法)對用戶是隱蔽的。封裝的目的在於把對象的設計者和對象者的使用分開,使用者不必知曉行為實現的細節,只須用設計者提供的消息來訪問該對象。
繼承性:繼承性是子類自動共享父類之間數據和方法的機制。它由類的派生功能體現。一個類直接繼承其它類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象中數據、方法就會出現大量重復。繼承不僅支持系統的可重用性,而且還促進系統的可擴充性。
多態性:對象根據所接收的消息而做出動作。同一消息為不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。例如:Print消息被發送給一圖或表時調用的列印方法與將同樣的Print消息發送給一正文文件而調用的列印方法會完全不同。多態性的實現受到繼承性的支持,利用類繼承的層次關系,把具有通用功能的協議存放在類層次中盡可能高的地方,而將實現這一功能的不同方法置於較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在OOPL中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。
綜上可知,在面對對象方法中,對象和傳遞消息分別表現事物及事物間相互聯系的概念。類和繼承是是適應人們一般思維方式的描述範式。方法是允許作用於該類對象上的各種操作。這種對象、類、消息和方法的程序設計範式的基本點在於對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現分開,通過繼承能體現類與類之間的關系,以及由此帶來的動態聯編和實體的多態性,從而構成了面向對象的基本特徵。
面向對象設計是一種把面向對象的思想應用於軟體開發過程中,指導開發活動的系統方法,是建立在「對象」概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關系的類的屬性和操作進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟體系統。。按照Bjarne STroustRUP的說法,面向對象的編程範式:
l 決定你要的類;
2 給每個類提供完整的一組操作;
3 明確地使用繼承來表現共同點。
由這個定義,我們可以看出:面向對象設計就是「根據需求決定所需的類、類的操作以及類之間關聯的過程」。
面向對象設計方法的特點和面臨的問題
面向對象設計方法以對象為基礎,利用特定的軟體工具直接完成從對象客體的描述到軟體結構之間的轉換。這是面向對象設計方法最主要的特點和成就。面向對象設計方法的應用解決了傳統結構化開發方法中客觀世界描述工具與軟體結構的不一致性問題,縮短了開發周期,解決了從分析和設計到軟體模塊結構之間多次轉換映射的繁雜過程,是一種很有發展前途的系統開發方法。
但是同原型方法一樣, 面向對象設計方法需要一定的軟體基礎支持才可以應用,另外在大型的MIS開發中如果不經自頂向下的整體劃分,而是一開始就自底向上的採用面向對象設計方法開發系統,同樣也會造成系統結構不合理、各部分關系失調等問題。所以面向對象設計方法和結構化方法目前仍是兩種在系統開發領域相互依存的、不可替代的方法。

閱讀全文

與程序員拼裝汽車相關的資料

熱點內容
c代碼加密工具 瀏覽:355
使用泛型演算法的錯誤 瀏覽:737
單片機焊接要焊接多少個引腳 瀏覽:669
android圖片瀏覽器代碼 瀏覽:705
中國電信智慧維app如何使用 瀏覽:701
列印文件夾內文件如何統一設置 瀏覽:553
單片機連接8個按鍵 瀏覽:656
阿里雲伺服器網頁怎麼找到 瀏覽:958
數控車床如何進行自動編程 瀏覽:11
app網課視頻怎麼拷貝到電腦上 瀏覽:710
安卓國服光遇小王子季節什麼時候結束 瀏覽:537
恢復的音樂在哪個文件夾 瀏覽:595
qq傳輸文件夾壓縮包 瀏覽:911
sha1加密演算法java 瀏覽:233
單片機ds1302程序 瀏覽:738
杜比壓縮開還是關怎樣判斷 瀏覽:366
對象類型轉換java編譯和運行 瀏覽:284
行政命令是什麼 瀏覽:371
android調用系統郵件 瀏覽:33
測溫軟體app是如何實現的 瀏覽:586