《Java語言編程基礎(chǔ)立體化實(shí)用教程》課件1.5 學(xué)生成績刪除功能_第1頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》課件1.5 學(xué)生成績刪除功能_第2頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》課件1.5 學(xué)生成績刪除功能_第3頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》課件1.5 學(xué)生成績刪除功能_第4頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》課件1.5 學(xué)生成績刪除功能_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

任務(wù)五

學(xué)生成績刪除功能一、任務(wù)描述

持續(xù)對任務(wù)四中的SMS類進(jìn)行改進(jìn),增加delete()方法。首先查詢Student數(shù)組s中是否有數(shù)據(jù),如果沒有,則提示輸入,否則提示輸入要?jiǎng)h除學(xué)生學(xué)號,輸入學(xué)生學(xué)號后,打印學(xué)生相關(guān)信息,請用戶確認(rèn)是否要?jiǎng)h除該學(xué)生信息,輸入為“Y”或“y”則刪除,刪除后提示刪除成功,如輸入“N”或“n”則返回主菜單。任務(wù)五

學(xué)生成績刪除功能二、任務(wù)分析

操作步驟如下:步驟一:分析SMS的各成員方法;步驟二:為SMS類增加delete()方法。任務(wù)五

學(xué)生成績刪除功能三、任務(wù)實(shí)施

任務(wù)概覽:publicclassStudent{}publicclassSMS{menu();//主菜單add();//添加學(xué)生信息select();//顯示本次錄入學(xué)生信息modify();//修改學(xué)生信息delete();//刪除學(xué)生信息writeFile();//將確認(rèn)無誤的學(xué)生信息寫入txt文件judge();//判斷本次是否錄入了學(xué)生信息main();}步驟一:分析SMS的各成員方法;

根據(jù)任務(wù)概覽,分析SMS類中各方法及功能。任務(wù)五

學(xué)生成績刪除功能三、任務(wù)實(shí)施publicvoiddelete()throwsIOException{ this.judge(); intj=0,t=0,k=0; Stringsno; charch; Stringstr; System.out.println("請輸入要?jiǎng)h除的學(xué)號:"); sno=In.next(); for(j=0;j<n;j++){ if((s[j].getSno()).equals(sno)){ k=1; t=j; } } if(k==0){ System.out.println("對不起!你要?jiǎng)h除的學(xué)號不存在!"); System.out.println("系統(tǒng)將返回主菜單!"); this.menu(); } if(k==1){ System.out.println("你要?jiǎng)h除的學(xué)生信息如下:");//打印要?jiǎng)h除的學(xué)生信息 System.out.println("學(xué)號\t姓名\t班級\tSQL\tJava\tweb\tgym");

步驟二:為SMS類增加delete()方法。任務(wù)五

學(xué)生成績刪除功能三、任務(wù)實(shí)施System.out.println(s[t].getSno()+""+s[t].getName()+""+s[t].getClassname()+"\t"+s[t].getSql()+"\t"+s[t].getJava()+"\t"+s[t].getWebdesign()+"\t"+s[t].getGym());System.out.println(); System.out.println("你確定要?jiǎng)h除(Y/N):"); str=In.next(); ch=str.charAt(0); while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n'){ System.out.println("輸入無效,請重新輸入:"); str=In.next(); ch=str.charAt(0); } if(ch=='N'||ch=='n'){ System.out.println(); System.out.println("系統(tǒng)返回主菜單!"); this.menu(); } if(ch=='Y'||ch=='y'){ for(j=t;j<n-1;j++){ s[j]=s[j+1]; System.out.println(s[j].getSno()); } n--; System.out.println("學(xué)生成績成功刪除!"); System.out.println("系統(tǒng)返回主菜單!"); this.menu(); } } }任務(wù)五

學(xué)生成績刪除功能四、相關(guān)知識5.4.1類和成員的修飾符1.訪問修飾符:public、protected、default、privatepublic:公共的,可用于修飾類、成員變量和成員方法。權(quán)限:訪問不受限制,本包和其它包均可訪問。protected:受保護(hù)的,可用于修飾成員變量和成員方法。權(quán)限:同包或其它包中的繼承類可訪問。default:缺省,可用于修飾類、成員變量和成員方法。權(quán)限:同包中的類訪問。private:私有,可用于修飾成員變量和成員方法。修飾符private用于修飾成員變量和成員方法,用于提高代碼的安全性,被修飾的內(nèi)容只限于本類中訪問,若類外引用該成員變量和成員方法需要借助一些方法來實(shí)現(xiàn):getXXX():獲取屬性值。setXXX():為屬性賦值。

任務(wù)五

學(xué)生成績刪除功能四、相關(guān)知識5.4.1類和成員的修飾符Java語言中有各種不同作用的修飾符,修飾符在不同的包中的訪問權(quán)限是不一樣的,詳見表5-1。

表5-1Java修飾符訪問權(quán)限序號關(guān)鍵字類變量方法接口說明1default√√√√可被同一package中的類存取。2public√√√√可被別的package中的類存取。3final√√√

不能有子類,方法不能被重寫,變量為常量。4abstract√

√√類必須被擴(kuò)展,方法必須被覆蓋。5private

√√

方法、變量只能在此類中被訪問。6protected

√√

方法或變量能被同一package中的類訪問,以及被其他package中該類的子類訪問。7static

√√

定義成員變量及類方法。8synchronized

在某一時(shí)刻,只有一個(gè)被該修飾符修飾的方法在執(zhí)行。任務(wù)五

學(xué)生成績刪除功能四、相關(guān)知識classDefaltClass{intx;inty;DefaltClass(intx,inty){System.out.println("缺省類的構(gòu)造方法!");this.x=x;this.y=y;}intadd(){returnthis.x+this.y;}}publicclassExp51{publicstaticvoidmain(Stringargs[]){DefaltClasso1=newDefaltClass(3,5);System.out.println("o1.x="+o1.x);System.out.println("o1.y="+o1.y);System.out.println("x+y="+o1.add());}}

缺省類的構(gòu)造方法!o1.x=3o1.y=5x+y=8運(yùn)行結(jié)果:【例5.1】default的使用任務(wù)五

學(xué)生成績刪除功能四、相關(guān)知識

classDefaltClass{ privateintx; privateinty; DefaltClass(intx,inty){ System.out.println("缺省類的構(gòu)造方法!"); this.x=x; this.y=y; }}classExp52{ publicstaticvoidmain(Stringargs[]){ DefaltClasso1=newDefaltClass(3,5); o1.x=5; System.out.println("o1.x="+o1.x); System.out.println("o1.y="+o1.y); }}

【例5.2】找出下面程序中的錯(cuò)誤任務(wù)五

學(xué)生成績刪除功能五、任務(wù)訓(xùn)練

1.編寫一個(gè)學(xué)生類,描述學(xué)生的學(xué)號、姓名、成績。學(xué)號用整型,成績用浮點(diǎn)型,姓名用String類型,編寫一個(gè)測試類,用對象數(shù)組定義5個(gè)對象,輸入和輸出學(xué)生信息(要求:把兩個(gè)類放在不同的包中)。

【注意】對象數(shù)組中的對象需要分別進(jìn)行實(shí)例化。參考代碼:packageaa;publicclassStudent{publicintsno;publicStringname;publicfloatscore; publicStudent(intsno,Stringname,floatscore){ super(); this.sno=sno; =name; this.score=score; }}packagecc;importaa.Student;publicclassTest{publicstaticvoidmain(String[]args){Studentstu[]=newStudent[5];stu[0]=newStudent(1001,"LiuLei",98);stu[1]=newStudent(1002,"ZhangYan",95);stu[2]=newStudent(1003,"WangKai",74);stu[3]=newStudent(1004,"MaYun",88);stu[4]=newStudent(1005,"LiXiao",76);for(inti=0;i<stu.length;i++){ System.out.println("學(xué)號:"+stu[i].sno+"姓名:"+stu[i].name+"成績:"+stu[i].score); }}}運(yùn)行結(jié)果:學(xué)號:1001姓名:LiuLei成績:98.0學(xué)號:1002姓名:ZhangYan成績:95.0學(xué)號:1003姓名:WangKai成績:74.0學(xué)號:1004姓名:MaYun成績:88.0學(xué)號:1005姓名:LiXiao成績:76.0任務(wù)五

學(xué)生成績刪除功能五、任務(wù)訓(xùn)練

2.在上題的基礎(chǔ)上,把屬性設(shè)置為private,利用set***()和get***()方法設(shè)置屬性值和獲取屬性值,并把該對象的信息輸出。

【注意】此例中另外定義了Test類作為主類,并將主方法放在Test類中。)參考代碼:

packageaa;publicclassStudent{privateintsno;privateStringname;privatefloatscore; publicintgetSno(){ returnsno; } publicvoidsetSno(intsno){ this.sno=sno; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicfloatgetScore(){ returnscore; } publicvoidsetScore(floatscore){ this.score=score; }}任務(wù)五

學(xué)生成績刪除功能五、任務(wù)訓(xùn)練

packagecc;importaa.Student;publicclassTest{publicstaticvoidmain(String[]args){Studentstu[]=newStudent[5];for(inti=0;i<stu.length;i++){ stu[i]=newStudent(); }stu[0].setSno(1001);stu[0].setName("LiuLei");stu[0].setScore(98);stu[1].setSno(1002);stu[1].setName("ZhangYan");stu[1].setScore(98);stu[2].setSno(1003);stu[2].setName("WangKai");stu[2].setScore(98);stu[3].setSno(1004);stu[3].setName("MaYun");stu[3].setScore(98);stu[4].setSno(1005);stu[4].setName("LiXiao");stu[4].setScore(98);for(inti=0;i<stu.length;i++){ System.out.println("學(xué)號:"+stu[i].getSno()+"姓名:"+stu[i].getName()+"成績:"+stu[i].getScore()); }}}運(yùn)行結(jié)果:學(xué)號:1001姓名:LiuLei成績:98.0學(xué)號:1002姓名:ZhangYan成績:98.0學(xué)號:1003姓名:WangKai成績:98.0學(xué)號:1004姓名:MaYun成績:98.0學(xué)號:1005姓名:LiXiao成績:98.0任務(wù)五

學(xué)生成績刪除功能六、拓展提高Java中的非訪問修飾符(存在修飾符):abstract、static、final。其中static稱為靜態(tài)修飾符,可用來修飾屬性、方法和代碼塊。1.靜態(tài)屬性被static修飾的屬性稱為靜態(tài)屬性,它被所有對象共享,也稱為類變量。它在類被載入時(shí)創(chuàng)建,類存在,類變量就存在。對于類的任何一個(gè)具體對象,靜態(tài)屬性是一個(gè)公共的存儲單元,被所有對象共同使用。訪問靜態(tài)屬性有兩種方式:(1)直接訪問:類名.屬性(2)實(shí)例化后訪問:對象名.屬性5.6.1

、static關(guān)鍵字任務(wù)五

學(xué)生成績刪除功能六、拓展提高classStudent{ staticStringschool;}publicclassExp53{ publicstaticvoidmain(String[]args){ Students1=newStudent();//創(chuàng)建第1個(gè)學(xué)生對象 Students2=newStudent();//創(chuàng)建第2個(gè)學(xué)生對象 Student.school="山東理工職業(yè)學(xué)院"; System.out.println("我的母校是"+s1.school);//輸出第1名同學(xué)的母校 System.out.println("我的母校是"+s2.school);//輸出第2名同學(xué)的母校 }}1、static關(guān)鍵字運(yùn)行結(jié)果:

我的母校是山東理工職業(yè)學(xué)院

我的母校是山東理工職業(yè)學(xué)院【例5.3】靜態(tài)屬性任務(wù)五

學(xué)生成績刪除功能六、拓展提高

被static修飾的方法稱為靜態(tài)方法,靜態(tài)方法可以直接通過類名調(diào)用,任何實(shí)例對象也都可以調(diào)用。訪問靜態(tài)方法有兩種方式:

(1)直接訪問:類名.方法

(2)實(shí)例化后訪問:對象名.方法【注意】

(1)靜態(tài)方法中只能直接訪問靜態(tài)成員,不能直接訪問非靜態(tài)成員。

(2)靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過實(shí)例化對象來訪問非靜態(tài)方法。

(3)靜態(tài)方法中不能以任何方式引用this或super。2.靜態(tài)方法任務(wù)五

學(xué)生成績刪除功能六、拓展提高classStudent{ publicstaticvoidstudy(){ System.out.println("學(xué)習(xí)中..."); }}publicclassExp54{ publicstaticvoidmain(String[]args){ //用“類名.方法名”調(diào)用靜態(tài)方法 Student.study(); Studentstu=newStudent();//創(chuàng)建學(xué)生對象 //用“實(shí)例名.方法名”調(diào)用靜態(tài)方法 stu.study(); }}2.靜態(tài)方法運(yùn)行結(jié)果:

學(xué)習(xí)中...

學(xué)習(xí)中...任務(wù)五

學(xué)生成績刪除功能六、拓展提高

靜態(tài)代碼塊是在類中被static修飾的,不包含在任何方法體中的代碼塊。當(dāng)類被加載時(shí),靜態(tài)代碼塊會被執(zhí)行,且只執(zhí)行一次,如果有多個(gè)代碼塊,會按照它們在類中出現(xiàn)的先后順序依次執(zhí)行。靜態(tài)代碼塊的格式:static{//程序代碼塊}3.靜態(tài)代碼塊任務(wù)五

學(xué)生成績刪除功能六、拓展提高final:無法改變的,可修飾變量、方法和類。5.6.2final關(guān)鍵字用final修飾的屬性和局部變量是常量,只能賦值一次。1.final修飾變量publicclassExp55{ publicstaticvoidmain(String[]args){ finalintscore=52;//第一次可以賦值 m=61;//再次賦值會報(bào)錯(cuò) }}運(yùn)行結(jié)果:程序存在錯(cuò)誤,final修飾的變量是常量,只能賦值一次?!纠?.5】任務(wù)五

學(xué)生成績刪除功能六、拓展提高final:無法改變的,可修飾變量、方法和類。5.6.2final關(guān)鍵字1.final修飾變量publicclassExp56{finalintnum;//final修飾的成員變量,必須在聲明的同時(shí)進(jìn)行賦值,否則編譯錯(cuò)誤 publicstaticvoidmain(String[]args){ finalintscore;//final修飾的局部變量,可以先聲明,后賦值 score=61; }}運(yùn)行結(jié)果:final修飾的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論