《面向?qū)ο蟪绦蛟O(shè)計(jì)課程介紹》由會(huì)員分享,可在線閱讀,更多相關(guān)《面向?qū)ο蟪绦蛟O(shè)計(jì)課程介紹(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),2014-09-14,,?#?,面向?qū)ο蟪绦蛟O(shè)計(jì),,課程介紹,計(jì)算中心 張巖峰,(),,程序設(shè)計(jì)語(yǔ)言的發(fā)展,機(jī)器語(yǔ)言,由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言。,,程序設(shè)計(jì)語(yǔ)言的發(fā)展,機(jī)器語(yǔ)言,由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言。,匯編語(yǔ)言,將機(jī)器指令映射為一些可以被人讀懂的助記符,如,ADD,、,SUB,。,程序設(shè)計(jì)語(yǔ)言的發(fā)展,機(jī)器語(yǔ)言,由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言。,匯編語(yǔ)言,將機(jī)器指令映射為一些可以被人讀懂的助記符,如,ADD,、,SUB,。,高級(jí)語(yǔ)言,屏蔽了機(jī)器的細(xì)節(jié)
2、,采用具有一定含義的數(shù)據(jù)命名和容易理解的執(zhí)行語(yǔ)句,。,程序設(shè)計(jì)語(yǔ)言的發(fā)展,機(jī)器語(yǔ)言,由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言。,匯編語(yǔ)言,將機(jī)器指令映射為一些可以被人讀懂的助記符,如,ADD,、,SUB,。,高級(jí)語(yǔ)言,屏蔽了機(jī)器的細(xì)節(jié),采用具有一定含義的數(shù)據(jù)命名和容易理解的執(zhí)行語(yǔ)句。,面向?qū)ο蟮恼Z(yǔ)言,將客觀事物看作一個(gè)具有屬性和行為的對(duì)象,通過抽象同一類對(duì)象的共同屬性和行為,形成類。,面向?qū)ο蟮姆椒?結(jié)構(gòu)化程序設(shè)計(jì)方法,設(shè)計(jì)的基本原則是自上而下、逐步求精。 按照程序所需實(shí)現(xiàn)的功能,將其劃分為若干個(gè)關(guān)系簡(jiǎn)單、相對(duì)獨(dú)立的模塊;,每一個(gè)模塊內(nèi)部都是由三種基本的程序結(jié)構(gòu),——,順序結(jié)構(gòu)、選擇結(jié)構(gòu)
3、和循環(huán)結(jié)構(gòu)組成。,優(yōu)點(diǎn),分解程序設(shè)計(jì)的復(fù)雜性,缺點(diǎn),命名難以控制,程序不便于開發(fā)、維護(hù),程序難以擴(kuò)展,面向?qū)ο蟮姆椒?面向?qū)ο蠓椒?將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體,——,對(duì)象,。,同類對(duì)象的共性形成,類,,類通過統(tǒng)一的外部接口與外界發(fā)生關(guān)系,.,對(duì)象與對(duì)象之間通過,消息,進(jìn)行通信。,五子棋程序,面向過程,main{,while(true){,,黑棋下子;,,繪制畫面;,,白棋下子;,,繪制畫面;,if(,勝負(fù)已分,){,,輸出結(jié)果;,},},},面向?qū)ο?main{,,選手,A = new,選手;,,選手,B = new,選手;,,棋盤界面,= new,棋盤
4、;,,五子棋規(guī)則,= new,規(guī)則;,,while(true){,,選手,A.,下子;,,棋盤界面,.,繪制;,,選手,B.,下子;,,棋盤界面,.,繪制;,if(,五子棋規(guī)則,.,判斷勝負(fù),){,,輸出結(jié)果;,},},},class,選手,{,,選手名字,;,,下子,(){…},},,class,棋盤,{,,棋盤規(guī)格,;,,繪制,(){…},},,class,規(guī)則,{,,規(guī)則名字,;,判斷勝負(fù),(){…},},,,,,,,思考,面向過程和面向?qū)ο蟪绦虻膬?yōu)缺點(diǎn)?,五子棋程序,面向過程,main{,while(true){,,黑棋下子;,,繪制畫面;,,白棋下子;,,繪制畫面;,if(,勝負(fù)已分
5、,){,,輸出結(jié)果;,},},},面向?qū)ο?main{,,選手,A = new,選手;,,選手,B = new,選手;,,棋盤界面,= new,棋盤;,,五子棋規(guī)則,= new,規(guī)則;,,while(true){,,選手,A.,下子;,,棋盤界面,.,繪制;,,選手,B.,下子;,,棋盤界面,.,繪制;,if(,五子棋規(guī)則,.,判斷勝負(fù),){,,輸出結(jié)果;,},},},class,選手,{,,選手名字,;,,下子,(){…},},,class,棋盤,{,,棋盤規(guī)格,;,,繪制,(){…},},,class,規(guī)則,{,,規(guī)則名字,;,判斷勝負(fù),(){…},},,,class,新選手,extend
6、s,選手,{,,選手,IQ;,,選手頭像,;,,選手裝備,;,},五子棋程序,面向過程,main{,while(true){,,黑棋下子;,,繪制畫面;,,白棋下子;,,繪制畫面;,if(,勝負(fù)已分,){,,輸出結(jié)果;,},},},面向?qū)ο?main{,,選手,A = new,選手;,,選手,B = new,選手;,,棋盤界面,= new,棋盤;,,五子棋規(guī)則,= new,規(guī)則;,,while(true){,,選手,A.,下子;,,棋盤界面,.,繪制;,,選手,B.,下子;,,棋盤界面,.,繪制;,if(,五子棋規(guī)則,.,判斷勝負(fù),){,,輸出結(jié)果;,},},},class,選手,{,,選手名
7、字,;,,下子,(){…},},,class,棋盤,{,,棋盤規(guī)格,;,,繪制,(){…},},,class,規(guī)則,{,,規(guī)則名字,;,判斷勝負(fù),(){…},},,,class,新選手,extends,選手,{,,選手,IQ;,,選手頭像,;,,選手裝備,;,},class,象棋選手,extends,新選手,{,,下子,();,,悔棋,();,,特殊技能之連走兩步,();,},class,棋盤,{,,棋盤規(guī)格,;,,繪制,(){…},},class,選手,{,,選手名字,;,,下子,(){…},},class,規(guī)則,{,,規(guī)則名字,;,判斷勝負(fù),(){…},},,,,面向?qū)ο蟮姆椒?使,程序員
8、更好的,理解和管理龐大而復(fù)雜的程序,,它在結(jié)構(gòu)化程序設(shè)計(jì)的基礎(chǔ)上完成進(jìn)一步的抽象。這種在設(shè)計(jì)方法上更高層次的抽象正是為了適應(yīng)目前軟件開發(fā)的特點(diǎn)。,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法絕非是要摒棄現(xiàn)有的結(jié)構(gòu)化程序設(shè)計(jì)方法,相反,它是在充分吸收結(jié)構(gòu)化程序設(shè)計(jì)優(yōu)點(diǎn)的基礎(chǔ)上,引進(jìn)了一些新的、強(qiáng)有力的概念。,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法把,可重復(fù)使用,性視為軟件開發(fā)的中心問題,,通過裝配可重用的部件來生產(chǎn)軟件,,而不是像目前編程所用的那樣,通過調(diào)用函數(shù)庫(kù)中的函數(shù)來實(shí)現(xiàn)。事實(shí)上,在對(duì)象內(nèi)部的實(shí)現(xiàn)上,我們也常常調(diào)用函數(shù)庫(kù)中的很多有用的函數(shù),然而從程序的總體結(jié)構(gòu)上說,它是由一系列對(duì)象構(gòu)成的,對(duì)象之間能夠以某種方式進(jìn)行通信和協(xié)作,
9、從而實(shí)現(xiàn)程序的具體功能。,,面向?qū)ο笤O(shè)計(jì)的特征,利用對(duì)象進(jìn)行抽象,基于對(duì)象和對(duì)象間的相互作用,面向?qū)ο蠹夹g(shù)對(duì)真實(shí)世界進(jìn)行抽象。,對(duì)象具有生命周期,每一個(gè)對(duì)象都是獨(dú)一無二的,都有創(chuàng)建、生存、銷毀的過程。,對(duì)象通過消息進(jìn)行通信,對(duì)象可以與其他對(duì)象相互操作。,面向?qū)ο笤O(shè)計(jì)的特征,封裝良好的類,對(duì)外部隱藏所有實(shí)現(xiàn)的細(xì)節(jié),便于修改和替換,對(duì)象所屬的類具有層次結(jié)構(gòu),關(guān)聯(lián),聚合或組合,繼承,多態(tài)性,多態(tài)性是面向?qū)ο笙到y(tǒng)最終表現(xiàn)出來的基本特征,即同樣的語(yǔ)句產(chǎn)生不同的行為。,面向?qū)ο蟮恼Z(yǔ)言,Smalltalk,這是第一種成功的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,也是,Java,的基礎(chǔ)語(yǔ)言。,C++,C++,是,C,的超集,設(shè)
10、計(jì)于,80,年代,增加了面相對(duì)象的概念。,優(yōu)點(diǎn):數(shù)據(jù)抽象和封裝,豐富的內(nèi)置函數(shù)庫(kù);,缺點(diǎn):除包含,C,語(yǔ)言的缺點(diǎn)外,程序過于復(fù)雜而容易出錯(cuò);,Java,90,年代開始廣泛使用的網(wǎng)絡(luò)編程語(yǔ)言;,Smalltalk,的思想,,C++,語(yǔ)法的簡(jiǎn)化。,編程語(yǔ)言使用率排行榜,JAVA,語(yǔ)言與其它語(yǔ)言的關(guān)系,相比較于,C++,高可移植性,Windows,、,MacOS,、,UNIX,等平臺(tái),豐富的支持類庫(kù),易擴(kuò)展,Web,編程、企業(yè)計(jì)算、嵌入計(jì)算,自動(dòng)內(nèi)存管理,調(diào)試更簡(jiǎn)單,,與其它語(yǔ)言互為補(bǔ)充,C,語(yǔ)言(底層,速度快),Python,、,Ruby,、,Perl,、,PHP,(腳本語(yǔ)言,簡(jiǎn)單),MatLab
11、,、,R,(數(shù)據(jù)分析語(yǔ)言,數(shù)學(xué)分析計(jì)算功能強(qiáng)大),SQL,(數(shù)據(jù)庫(kù)管理語(yǔ)言,數(shù)據(jù)管理的增刪改查),,,教學(xué)內(nèi)容,Java,語(yǔ)言基礎(chǔ),數(shù)組與方法,類和對(duì)象,文件操作,圖像界面,swt,多線程編程,/,網(wǎng)絡(luò)編程,連接數(shù)據(jù)庫(kù),Hadoop MapReduce,分布式編程(,optional,),課程表,理論課,時(shí)間:,1-19,周,,周一,1-2,節(jié),地點(diǎn):采礦館,203,,實(shí)驗(yàn)課,時(shí)間:,4-19,周,,周一,5-6,節(jié),地點(diǎn):計(jì)算中心微機(jī)?室,教學(xué)模式,理論講授(,20%,),實(shí)例演示(,20%,),討論思考(,10%+?%,),上機(jī)實(shí)踐(,50%+?%,),,考核方法,,平時(shí)成績(jī),20%,三次
12、作業(yè),30%,課程設(shè)計(jì)(考試),50%,,強(qiáng)調(diào)問題,曠課、遲到、早退,不及時(shí)交作業(yè),上課違紀(jì),3,次,作業(yè)抄襲、課程設(shè)計(jì)抄襲,,上課可以帶筆記本電腦,參考書推薦,MOOC,MOOC,(,Massive Open Online Course,),學(xué)堂在線,,慕課中國(guó),,遼寧省資源共享課,,翁愷,用,Java,學(xué)編程,問題?,為什么學(xué)“編程”?,程序員是個(gè)什么樣子的工作?,“編程”有多難?,怎樣能把編程能力提高?,經(jīng)驗(yàn)與建議,編程不同于理論學(xué)習(xí),要培養(yǎng)動(dòng)手能力,Just do it!,Just google it!,讀別人寫的優(yōu)秀的代碼,在已有代碼之上修改,不要浪費(fèi)時(shí)間在看書上,把書當(dāng)成工具書,帶著目的的去讀書,,練習(xí),,