




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE1《面向對象程序設計》實驗指導書目錄實驗一、Java編程環(huán)境與基本語法 1實驗二、類的定義與對象的創(chuàng)建 4實驗三、類的繼承與多態(tài) 9實驗四、圖形用戶界面開發(fā) 14實驗五、網絡通信編程 18實驗六、JDBC數據庫訪問與操作 21實驗一、Java編程環(huán)境與基本語法實驗類型:驗證性實驗學時:2一、實驗目的1.熟悉Java語言開發(fā)和運行環(huán)境,試寫最簡單的程序源文件,運行所寫的程序。2.掌握變量定義與數據類型。3.掌握條件與循環(huán)語句的使用。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理(一)、Java語言軟件開發(fā)工具包JDKJDK(JavaDevelopmentKit)是Java語言的軟件開發(fā)工具包。JDK是整個Java開發(fā)的核心,它包含了Java的運行環(huán)境(JVM+Java系統(tǒng)類庫)和Java程序開發(fā)類庫。(二)、Java開發(fā)工具Java作為一門主流面向對象的編程語言,相應的圖形化開發(fā)工具很多,比較著名的有IBM公司的Eclipse、Oracle公司的NetBeans和Borland公司的JBuilder等。IBM的Eclipse以其開源和擴展性使其得到了廣泛應用,Oracle公司的NetBeans是Java語言官方推出的一個免費、開源的集成開發(fā)環(huán)境。它可以運行在眾多常見的平臺上,包括Windows、Linux、Solaris和MacOS等。NetBeans基礎開發(fā)環(huán)境為開發(fā)者提供了所需要的所有工具,使得開發(fā)專業(yè)的跨平臺的桌面、企業(yè)、Web和移動應用十分簡便。(三)、Java基本語法任何程序設計語言,都是由基本語法和一系列開發(fā)庫組成的。Java語言也不例外,也是由Java基本語法和Java開發(fā)類庫(JFC)組成的。在Java的基本語法中主要包括了基本數據類型和控制語句這兩部分。四、實驗內容與步驟輸出10000以內的完全數。如果一個數恰好等于它的因子之和(去掉該數本身),則稱該數為“完全數”又稱完美數或完備數。第一個完全數是6,1+2+3=6。第二個完全數是28,1+2+4+7+14=28。第三個完全數是496,1+2+4+8+16+31+62+124+248=496。創(chuàng)建Java項目PerfactNumApp。定義用于存放某個數其所有因子的數字int[]factors。遍歷從2到10000之間的每個數。對于每個數首先取得其所有因子并存放到數組factors。判斷所有因子之和是否等于其本身,及該數是否為完全數。如果是則輸出該數和其所有因子。輸出后清空因子數組。繼續(xù)判斷下一個數直到10000為止。五、思考題1、如何在NetBeans中新建并運行Java項目?2、如何嵌套使用循環(huán)控制語句?3、如何清空數組中的數據?六、實驗報告輸出10000以內的完全數及其因子的實驗步驟。回答預習中的思考題。七、核心代碼/for(intnum=2;num<=10000;num++){for(inti=2;i<=Math.sqrt(num);i++){if(num%i==0){factors[count]=i;sum=sum+i;count++;factors[count]=num/i;sum=sum+num/i;count++;}}if(num==sum+1){System.out.println("perfactnum="+num);}}
實驗二、類的定義與對象的創(chuàng)建實驗類型:驗證性實驗學時:2一、實驗目的1.掌握類的聲明。2.掌握對象的創(chuàng)建。3.掌握方法的定義和調用。4.掌握構造函數的使用。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理1、類的概念把眾多的事物歸納、劃分成一些類是人類在認識客觀世界時經常采用的思維方法。分類的原則是抽象。類是具有相同屬性和服務的一組對象的集合,它為屬于該類的所有對象提供了統(tǒng)一的抽象描述,其內部包括屬性和服務兩個主要部分。在Java語言中,完成對功能操作封裝的單位稱為類。類是有共同特性(屬性)和操作(行為)定義的實體,類是用于組合各個對象所共有操作和屬性的一種機制。可以根據類具有的屬性和方法,賦予類不同的數值,來創(chuàng)建不同的對象實例。構造函數構造方法是類中一種特殊的方法,用來初始化該類的一個新的對象。Java中的每個類都有構造方法。如果沒有指定構造方法,則系統(tǒng)會調用默認的構造方法。默認的構造方法不帶有任何一個參數。構造方法具有和類名相同的名稱,而且不返回任何數據類型,在構造方法的實現中,也可以進行方法重載。四、實驗內容與步驟設計汽車類,使用汽車類可創(chuàng)建不同汽車對象并進行駕駛操作。創(chuàng)建Java項目CarApp。汽車類中定義汽車品牌、車牌號、顏色、檔位等屬性。實現汽車類中的構造函數,汽車駕駛以及換擋等方法。在主類中創(chuàng)建具體的汽車對象,并進行相應的操作。如創(chuàng)建車牌號為“666666”的藍色汽車,并進行駕駛和換擋的調用過程如下:CarMyCar=newCar("BMW",666666,"Blue");System.out.println(MyCar.getNum());System.out.println(MyCar.getColor());MyCar.drive("goahead");MyCar.drive("turnleft");MyCar.drive("goahead",2);MyCar.drive("goahead",5);MyCar.drive("brake",0);輸出結果如下圖所示:五、思考題1、封裝類的基本原理。2、方法的定義與重載的作用。六、實驗報告設計并實現汽車類的詳細步驟,與核心代碼?;卮痤A習思考題。七、核心代碼publicclassCar{privatefinalStringbrand;privateintnum;privateStringcolor;privateintspeedLevel=0;publicCar(){brand="";num=0;color="";}publicCar(Stringbrand){this.brand=brand;}publicCar(Stringbrand,intnum,Stringcolor){this.brand=brand;this.num=num;this.color=color;}/***@returnthebrand*/publicStringgetBrand(){returnbrand;}/***@returnthenum*/publicintgetNum(){returnnum;}/***@paramnumthenumtoset*/publicvoidsetNum(intnum){this.num=num;}/***@returnthecolor*/publicStringgetColor(){returncolor;}/***@paramcolorthecolortoset*/publicvoidsetColor(Stringcolor){this.color=color;}publicvoiddrive(Stringdirection){if(startEngine()){System.out.println("自動擋汽車:"+direction);}}publicvoiddrive(Stringdirection,intspeedLevel){if(startEngine()){if(this.speedLevel>speedLevel){System.out.println("手動擋汽車:減速"+direction+""+speedLevel+"檔");}if(this.speedLevel<=speedLevel){System.out.println("手動擋汽車:加速"+direction+""+speedLevel+"檔");}this.speedLevel=speedLevel;}}privatebooleanstartEngine(){System.out.print("引擎工作");System.out.print("齒輪轉動");System.out.println("輪胎轉動");returntrue;}}
實驗三、類的繼承與多態(tài)實驗類型:驗證性實驗學時:2一、實驗目的1.掌握方法的繼承,重載與覆蓋。2.掌握抽象類的定義與繼承。3.理解多態(tài)的概念,掌握接口的實現方法。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理類的繼承性繼承是一種由已有的類創(chuàng)建新類的機制。利用繼承,可以先創(chuàng)建一個共有屬性的一般類,根據該一般類再創(chuàng)建具有特殊屬性的新類,新類繼承一般類的屬性和行為,并根據需要增加自己的新的屬性和行為。由繼承而得到的類稱為子類,被繼承的類稱為父類(超類)。Java不支持多重繼承(子類只能有一個父類)。2、多態(tài)性多態(tài)性就是指父類的某個方法被其子類重寫時,可以各自產生自己的功能行為。當一個類有很多子類時,并且這些子類都重寫了父類中的某個方法。那么當子類創(chuàng)建的對象的引用放到一個父類的對象中時,就得到了該對象的一個上轉型對象,那么這個上轉的對象在調用這個方法時就可能具有多種形態(tài)。四、實驗內容與步驟使用面向對象的多態(tài)性模仿會員卡消費系統(tǒng),設計會員卡類,可派生不同的會員卡類型,當使用不同的會員卡消費時其折扣不同。如一般會員卡消費打9折;VIP會員卡打7折;超級VIP卡打5折。其具體的實現效果如下圖所示:輸入應消費的金額,選擇相應的會員卡,會顯示實際的應付金額和消費狀態(tài)信息。實驗步驟:1、設計會員卡類,包含卡類型和卡內金額兩個屬性。2、由會員卡類進一步派生出不同類型的會員卡,如:一般會員卡消費打9折;VIP會員卡打7折;超級VIP卡打5折。3、對不同會員卡類進行具體實現。4、設計并實現刷卡機類,主要用于人機交互和顯示消費狀態(tài)信息。5、創(chuàng)建不同類型會員卡的具體對象,并進行相應調用顯示消費狀態(tài)信息。其程序實現后的項目結構如下圖所示:五、思考題1、會員卡類中定義了哪些方法,都有什么意義?2、如何調用不同類型會員卡類中所重寫的方法?六、實驗報告1、實現不同會員卡消費的具體步驟。2、回答預習思考題。七、核心代碼//會員卡類publicabstractclassCard{Stringtype;floatamount;publicCard(){}publicCard(Stringtype){this.type=type;}publicCard(Stringtype,intamount){this.type=type;this.amount=amount;}/***@returnthetype*/publicStringgetType(){returntype;}publicbooleancomsume(floattotalPrice){if(this.amount>=this.shouldPay(totalPrice)){this.amount=this.amount-this.shouldPay(totalPrice);returntrue;}else{returnfalse;}}publicabstractfloatshouldPay(floattotalPrice);/***@returntheamount*/publicfloatgetAmount(){returnamount;}/***@paramamounttheamounttoset*/publicvoidsetAmount(floatamount){this.amount=amount;}}//刷卡機類publicclassPOS{publicstaticbooleanslide(Cardcard,floattotalPrice){returnsume(totalPrice);}}
實驗四、圖形用戶界面開發(fā)實驗類型:綜合性實驗學時:4一、實驗目的1.掌握組件與布局管理器構建圖形用戶界面。2.能夠為組件添加相應事件處理器實現人機交互。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理通過圖形用戶界面(GraphicalUserInterface,GUI),用戶和程序之間可以方便友好地進行交互。JavaSwing框架Swing框架是JDK中輕量級的圖形用戶界面開發(fā)庫,設計目標是幫助用于編寫在所有平臺上都能良好表現的GUI程序。其類層次結構如下圖所示:事件與事件處理事件,就是發(fā)生在用戶界面上的用戶交互行為而產生的一種效果,如鼠標的各種動作、鍵盤的操作以及發(fā)生在組件上的各種動作,因此事件一般也分為三種類型:鍵盤事件、鼠標事件以及組件的動作事件。事件處理模型將事件源(產生事件的組件)和對事件作出的具體處理(利用一種稱為監(jiān)聽器[listener]的實體來對事件進行具體的處理)分開。組件(事件源)都不處理自己的事件,而是將事件處理委托給外部的處理實體(監(jiān)聽器),這種事件處理模型稱為事件的授權處理模型。不同的事件,可以交由不同類型的監(jiān)聽器去處理。四、實驗內容與步驟開發(fā)圖形界面計算器應用程序。計算器應用程序界面的設計與實現,界面實現效果如下圖所示:實現界面上各個按鈕點擊事件的監(jiān)聽與響應計算器基本功能的業(yè)務邏輯設計與實現各個功能的測試與完善五、思考題1、不同數據類型之間是如何轉換的。如何實現計算數據的錄入。六、實驗報告1、圖形界面計算器應用程序的設計與實現步驟。2、實驗的體會與意見等。七、核心代碼doubled_num1,d_num2,d_result;d_num1=Double.parseDouble(str_num2);d_num2=Double.parseDouble(str_num1);//switch語句判斷運算類型switch(ch_sign){case'+':d_result=d_num1+d_num2;this.jTextField1.setText(String.valueOf(d_result));break;case'-':d_result=d_num1-d_num2;this.jTextField1.setText(String.valueOf(d_result));break;case'*':d_result=d_num1*d_num2;this.jTextField1.setText(String.valueOf(d_result));break;case'/':d_result=d_num1/d_num2;this.jTextField1.setText(String.valueOf(d_result));break;default:this.jTextField1.setText("inputerror");}
實驗五、網絡通信編程實驗類型:驗證性實驗學時:4一、實驗目的1.理解傳輸層網絡通信協(xié)議的基本原理。2.掌握網絡通信的實現過程。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理說明傳輸層通常以TCP和UDP協(xié)議來控制端點到端點的通信。用于通信的端點是由Socket來定義的,Socket是由IP地址和端口號組成的。Java提供的面向傳輸層的類主要有Sockets和Datagram。Sockets使用的是TCP協(xié)議,這是傳統(tǒng)網絡程序最常用的方式,可以為兩個不同的程序通過網絡的通信信道進行通信。Datagram則使用UDP協(xié)議,是另一種網絡傳輸方式,它把數據的目的地紀錄在數據包中,然后直接放在網絡上。四、實驗內容與步驟使用TCP或UDP協(xié)議編寫網絡即時通信軟件,能夠實現網絡內的單一通信和多人通信。設計網絡即時通信程序的軟件界面,如下圖所示:網絡通信類的設計與封裝實現單播通信實現多播通信測試運行五、思考題網絡通信的數據如何封裝。2、多播通信如何實現。六、實驗報告1、網絡即時通信軟件的設計與實現步驟。2、實驗的體會與意見等。七、核心代碼//發(fā)送數據byte[]data=this.jTextField1.getText().getBytes();try{DatagramPacketpacket=newDatagramPacket(data,data.length,groupAddress,4455);socket.send(packet);//接收數據while(true){try{byte[]data=newbyte[1024];DatagramPacketpacket=newDatagramPacket(data,data.length);socket.receive(packet);Stringtext=newString(data).trim();jTextArea1.append(text+"\r\n");jTextArea1.setCaretPosition(jTextArea1.getText().length());}catch(IOExceptione){}}
實驗六、JDBC數據庫訪問與操作實驗類型:綜合性實驗學時:2一、實驗目的1.了解JDBC的概念和工作原理。2.掌握使用JDBC實現簡單的數據庫管理。3.掌握常用的JDBCAPI。二、實驗設備Windows計算機、JDK開發(fā)包、NetBeans軟件開發(fā)工具。三、實驗原理說明JDBC(JavaDataBaseConnection)是Java數據庫連接API。JDBCAPI包含在兩個包里:第一個包是java.sql,它包含了JDBCAPI的核心Java數據對象,這包括為DBMS(數據庫管理系統(tǒng))連接和存儲在DBMS里的數據進行交互而提供的Java數據對象;另外一個包含JDBCAPI的包是javax.sql,它擴展了java.sql,是J2EE/JavaEE的一部分。除其他高級JDBC特性外,javax.sql還包含了那些與Java命名與目錄接口(JNDI)進行交互的Java數據對象,以及管理連接池的Java數據對象。借助于JDBCAPI能夠與一個數據庫建立連接,基于該連接向數據庫發(fā)送SQL語句,并獲取數據庫處理后返回的結果。四、實驗內容與步驟使用JDBCAPI對MySQL數據庫進行訪問控制操作。1.JDBC數據庫驅動器的加載:java.sql.DriverManager。2.數據庫連接:java.sql.Connection。3.傳送執(zhí)行SQL語句:java.sql.Statement。4.獲取數據集:java.sql.ResultSet。五、思考題1、如何與數據建立連接。2、如何獲取數據庫返回的查詢結果。六、實驗報告1、對MySQL數據庫的訪問操作實現步驟。2、實驗的體會與意見等。七、核心代碼//發(fā)送數據Stringdriver="com.mysql.jdbc.Driver";StringURL="jdbc:mysql://localhost:3306/Students";Connectioncon=null;ResultSetrs=null;Statementst=null;PreparedStatementpst=null;//CachedRowSetImplcrs=null;//Stringsql="select*fromStudents_Informationwhereidlike'2010112%'orderbyid";Stringsql="select*fromStudents_Informationorderbyid";try{//顯示加載驅動程序Class.forName(driver);}catch(java.lang.ClassNotFoundExceptione){System.out.println("Can'tloadDriver");}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年青海貨運從業(yè)資格證考試試卷題庫
- 小學英語命題試卷創(chuàng)意
- 小學英語試卷模式
- 健身館員工合同范本
- 減水劑供貨合同范本
- FOB買賣合同范本
- 美容師初級習題庫及答案
- 工業(yè)鍋爐司爐??荚囶}與答案
- 個人年度簡短的工作總結
- 中級電工模擬習題含參考答案
- 仁愛版八年級英語上復習課Unit 2 Keep Healthy Topic1 2教學課件
- 系統(tǒng)運維投標文件含運維方案
- 《鹿角和鹿腿》 完整版課件
- 心理健康教育課《在變化中成長》課件
- JJF 1341-2012 鋼筋銹蝕測量儀校準規(guī)范-(高清現行)
- 人教版數學五年級下冊 全冊各單元教材解析
- 給水排水管道工程質量通病以及防治
- 偏癱臨床路徑流程
- 計算機視覺全套課件
- GB-T 9251-2022 氣瓶水壓試驗方法(高清版)
- 基于單片機的電子廣告牌設計畢業(yè)設計論文
評論
0/150
提交評論