Java程序設計ppt課件(完整版)_第1頁
Java程序設計ppt課件(完整版)_第2頁
Java程序設計ppt課件(完整版)_第3頁
Java程序設計ppt課件(完整版)_第4頁
Java程序設計ppt課件(完整版)_第5頁
已閱讀5頁,還剩248頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄第一章 Java與程序邏輯第二章 面向?qū)ο蟪绦蛟O計基礎第三章 面向?qū)ο蠡咎匦缘谒恼?常用對象使用第五章 異常處理第六章 I/O操作第七章 多線程編程第八章 Java的GUI可視界面編程目錄第一章 Java與程序邏輯第二章 面向?qū)ο蟪绦蛟O計基礎第三章 面向?qū)ο蠡咎匦缘谒恼?常用對象使用第五章 異常處理第六章 I/O操作第七章 多線程編程第八章 Java的GUI可視界面編程第一章 Java與程序邏輯21任務1.1 搭建Java開發(fā)環(huán)境任務1.2 體驗Java開發(fā)過程 任務1.3 Java語句3任務1.1 搭建Java開發(fā)環(huán)境4情境描述123情境分析解決方案知識總結(jié)1.1.1 情境描述Tom

2、承接了某企業(yè)的員工工資管理系統(tǒng),主要管理企業(yè)的A、B、C類員工的工資。由于Java語言及Java平臺的特性,客戶要求采用Java進行軟件開發(fā)。作為一個Java程序員,Tom需要在其計算機上搭建Java開發(fā)環(huán)境,他需要實現(xiàn)以下任務:1)安裝JRE、JVM、JDK。2)配置Java環(huán)境變量。3)使用Eclipse工具驗證Java開發(fā)環(huán)境。1.1.2 情境分析采用Java來實現(xiàn)企業(yè)的員工工資管理系統(tǒng)開發(fā),首先在計算機上安裝Java SE6.0版本(采取Windows開發(fā)Java,則需要下載Windows對應的版本,同時需要注意操作系統(tǒng)的位數(shù)),其下載地址為:/technetwork/java/jav

3、ase/downloads/index.html采取Eclipse IDE開發(fā)Java程序,則需要到/downloads/下載,為了后期Java EE開發(fā)方面,Tom選擇了“Eclipse IDE for Java EE Developers”32位機版本。1.1.3 解決方案 Tom首先將Java SE6.0的安裝包及Eclipse的下載包從不同的網(wǎng)站下載到本地計算機,在安裝的時候,他先將Java SE6.0安裝到D:Program FilesJava,之后手工配置了環(huán)境變量,利用事先準備好的java程序驗證了環(huán)境的正確性。為了簡化開發(fā),Tom將Eclipse下載包解壓放置到D:Eclips

4、e盤根目錄下,通過運行Eclipse IDE,執(zhí)行已準備好的Java程序,確定JDK及IDE環(huán)境的正確性。1.1.3 解決方案 方法一: JDK+控制臺模式搭建開發(fā)環(huán)境方法二:JDK+EclipseIDE搭建開發(fā)環(huán)境1.1.4 知識總結(jié)1.Java語言極其特點Java語言具有以下幾個特點:1) 結(jié)構(gòu)簡單,易于學習2)面向?qū)ο?)與平臺無關(guān)4)可靠性5)安全性6)多線程7)很好地支持網(wǎng)絡編程8)豐富的類庫1.1.4 知識總結(jié)2.Java的運行環(huán)境采用Java語言開發(fā)的應用軟件需要JVM的支持才能運行。Java的運行環(huán)境稱為JRE(Java Runtime Environment),它包括JVM以

5、及相應的API類庫。因此,所有需要運行Java應用軟件的計算機都必須安裝JRE。1.1.4 知識總結(jié)3.Java的開發(fā)環(huán)境對于開發(fā)人員來說,除了需要上述的運行環(huán)境以外,還需要開發(fā)環(huán)境的支持,Java的開發(fā)環(huán)境主要由以下兩部分組成。Java開發(fā)工具包(Java Development Kit,JDK):主要由Java編譯器、調(diào)試工具等組成,是Java開發(fā)必備的工具。集成開發(fā)環(huán)境(Integrated Development Environment,IDE):目前大多數(shù)軟件企業(yè)都是使用Eclipse進行開發(fā)。1.1.4 知識總結(jié)4. Eclipse介紹運行eclipse.exe文件或其他快捷方式,

6、將出現(xiàn)指定工作空間的窗口,進入Eclipse后,出現(xiàn)Eclipse的主界面。任務1.2 體驗Java程序開發(fā)過程4情境描述123情境分析解決方案知識總結(jié)1.2.1 情境描述工資管理系統(tǒng)的功能主要有:分類管理員工的基本信息,操作用戶管理、每月工資管理及工資的統(tǒng)計管理等。首先需要完成系統(tǒng)的主操作界面設計,為了完成系統(tǒng)主菜單設計,需要完成以下功能:1)在Eclipse中成功創(chuàng)建項目;2)利用Java輸出語句完成主菜單。1.2.2 情境分析利用Java實現(xiàn)系統(tǒng)主菜單,首先他需要設計好菜單的樣式,其次就是利用Java的輸出語句進行菜單的顯示輸出,在Java語言中,輸出到控制臺的語句為System.out

7、.print或者System.out.println。1.2.3 解決方案1、打開Eclipse。2、添加一個包,名為com.esms。3、新建類,命名為“Menus”4、在Menus中添加主函數(shù)。5、在主函數(shù)中添加主菜單實現(xiàn)代碼,主要通過System.out.println()及System.out.println()實現(xiàn)。1.2.3 解決方案package com.esms;/* * 菜單操作類,主要實現(xiàn)主菜單定義 * author 李法平 * */public class Menus /* * 主函數(shù),程序的入口 * param args */public static void mai

8、n(String args) System.out.println(“*歡迎使用工資管理系統(tǒng)*); System.out.println(* 1:員工管理 *); System.out.println(* 2:用戶管理 *); System.out.println(* 3:工資管理 *); System.out.println(* 4:工資查詢與統(tǒng)計 *); System.out.println(* 5:退出系統(tǒng) *); System.out.println(*);1.2.3 解決方案運行結(jié)果。1.2.4 知識總結(jié)1.關(guān)鍵字類型關(guān)鍵字數(shù)據(jù)類型關(guān)鍵字int double long byte sh

9、ort float char boolean循環(huán)關(guān)鍵字for continue dowhile條件關(guān)鍵字ifelse switchcase異常關(guān)鍵字throw throws try catch finally assert類定義關(guān)鍵字class extends implements interface修飾符和訪問關(guān)鍵字public private protected abstract static final transient native其他關(guān)鍵字new void false true null return this super import package break default

10、synchronized instanceof volatile strictfp enum1.2.4 知識總結(jié)2.Java標識符標識符的命名規(guī)則如下:只能使用字母、數(shù)字、下劃線和美元符。只能以字母、下劃線和美元符開頭,不能用數(shù)字開頭。嚴格區(qū)分大小寫,沒有長度限制。不能使用Java關(guān)鍵字。1.2.4 知識總結(jié)3.分隔符空格:包括空格、換行、制表符等。句點(.):半角的英文句點,用于方法或變量的引用。分號(:):表示一條語句的結(jié)束,一般一條語句占一行,但是一行寫不下一條語句時,允許一條語句占用多行。逗號(,):分隔變量聲明中的多個標識符。圓括號:一般用在表達式、方法的參數(shù)和控制語句的條件表達式中

11、。注意圓括號可以嵌套,但需要嚴格配對使用。方括號():用于聲明數(shù)組,引用數(shù)組的元素值?;ɡㄌ枺ǎ河糜诙x一個語句塊,一個語句塊是零條或多條語句,以“”開始,以“”結(jié)束。1.2.4 知識總結(jié)4.Java注釋多行注釋(/*/):注釋以“/*”開始,以“/*”結(jié)束,可以注釋多行也可以注釋單行,一般位于要解釋的類或方法的前面。符號“/*”和“/*”成對出現(xiàn),不可以套用。單行注釋(/):注解內(nèi)容從“/”開始,并在每行末尾結(jié)束,一般位于要解釋語句的結(jié)尾處。文檔注解語句(/*/):注解從“/*”開始,到“*/”結(jié)束,一般位于類或方法的最前面。1.2.4 知識總結(jié)5.Java程序結(jié)構(gòu)其基本結(jié)構(gòu)是:一個完整的

12、Java源文件的結(jié)構(gòu)定義如下:package語句:指定文件中的類所在的包,0個或1個。import語句:引入其他包中的類,0個或多個。public class:屬性為public的類定義,0個或1個。interface或class:接口或類定義,0個或多個。注釋:0個或多個。public class 類名public static void main(String args) /main方法System.out.println(”); /輸出1.2.4 知識總結(jié)6.Java數(shù)據(jù)類型(1)基本數(shù)據(jù)類型整數(shù)類型:byte,short,int,long。浮點類型:float,double。字符類型:

13、char。布爾類型:boolean。(2)引用數(shù)據(jù)類型類類型:class,String,Double等。接口類型:Interface數(shù)組類型:基本數(shù)據(jù)類型數(shù)組,對象型數(shù)組。1.2.4 知識總結(jié)7.常量和變量(1)常量:有字面常量和符號常量兩種。符號常量用關(guān)鍵字final來實現(xiàn),其語法格式為:final 數(shù)據(jù)類型 符號常量名=常量值;(2)變量:是Java程序中的基本存儲單元。聲明變量的一般格式如下:變量修飾符 數(shù)據(jù)類型 變量名=初始值;1.2.4 知識總結(jié)8.運算符和表達式運算是對數(shù)據(jù)進行加工的過程,描述各種不同運算的符號稱為運算符,而參與運算的數(shù)據(jù)稱為操作數(shù)。表達式用來某個求值規(guī)則,可用來執(zhí)

14、行運算、操作字符或測試數(shù)據(jù),每個表達式都產(chǎn)生唯一的值。其類型由運算符的類型決定,有算術(shù)運算、關(guān)系運算、邏輯運算、賦值運算等。任務1.3 Java語句4情境描述123情境分析解決方案知識總結(jié)5應用實踐1.3.1 情境描述Tom完成了系統(tǒng)的主菜單,需要實現(xiàn)系統(tǒng)的子菜單和通過在主菜單上不同的輸入值連接到具體的子菜單中。如通過在鍵盤上輸入1能夠進入到員工信息子菜單中,同時,當他退出子菜單時,系統(tǒng)將返回到主菜單。為了實現(xiàn)以上功能,他需要完成以下任務:1)認識Java語言的輸入;2)利用分支語句進行選擇進入不同的子菜單;3)利用循環(huán)語句實現(xiàn)菜單的循環(huán)操作。1.3.2 情境分析為了實現(xiàn)菜單選擇功能,首先需要

15、掌握Java從鍵盤輸入數(shù)據(jù)的操作,例如Scanner對象及System.in對象;其次需要掌握分支語句的使用,例如if語句或者switch語句。當主菜單與子菜單的連接成功之后, 若要保證菜單的重復使用,則需要在主菜單及子菜單中添加循環(huán)控制語句來實現(xiàn),Java語言中的循環(huán)有while循環(huán),do while循環(huán),for循環(huán)等。1.3.3 解決方案1、打開Eclipse。2、添加一個包,名為com.esms,并復制Menus類到包中。3、打開Menus類,重構(gòu)main方法,得到mainMenu方法,代碼如下:public static void main(String args) mainMenu(

16、);/* * 系統(tǒng)主菜單 */public static void mainMenu() System.out.println(*歡迎使用工資管理系統(tǒng)*);System.out.println(* 1:員工管理 *);System.out.println(* 2:用戶管理 *);System.out.println(* 3:工資管理 *);System.out.println(* 4:工資查詢與統(tǒng)計 *);System.out.println(* 5:退出系統(tǒng) *);System.out.println(*);1.3.3 解決方案4、利用Scanner類實現(xiàn)鍵盤輸入,Scanner類在java

17、.util中,因此在類定義前寫上import java.util.*;或import java.util.Scanner;5、利用分支語句控制選擇操作,通過if語句進行輸入項的判定操作,進而執(zhí)行不同的操作。6、針對mainMenu菜單,在現(xiàn)有代碼的基礎上,添加循環(huán)控制語句,實現(xiàn)主菜單的重復選擇功能。代碼如下:1.3.3 解決方案public static void main(String args) mainMenu(); /* * 系統(tǒng)主菜單 */public static void mainMenu() while (true) Scanner in=new Scanner(System.

18、in); /創(chuàng)建鍵盤輸入對象System.out.print(請選擇操作項:);int ctrl=in.nextInt();if(ctrl=1) /進入員工管理界面 employeeMenu();/調(diào)用員工管理菜單 else if(ctrl=2)/執(zhí)行用戶管理選項/Add Code to Hereelse if(ctrl=3)/執(zhí)行工作管理/Add Code to Hereelse if(ctrl=4)/執(zhí)行工資統(tǒng)計/Add Code to Hereelse if(ctrl=5)/退出系統(tǒng)操作return; 1.3.3 解決方案7、定義員工管理菜單public static void empl

19、oyeeMenu() int ctrl=0;doScanner in=new Scanner(System.in);System.out.println(*迎使用工資管理系統(tǒng)-員工管理*);System.out.println(* 1:員工信息添加 *);System.out.println(* 2:員工信息編輯 *);System.out.println(“* 3:員工信息刪除 *);System.out.println(“* 4:員工信息查詢 *);System.out.println(* 5:退出系統(tǒng) *);System.out.println(*);System.out.print(請

20、選擇操作項:);ctrl=in.nextInt();switch(ctrl)case 1:/調(diào)用員工信息添加功能break;case 2:/調(diào)用員工信息編輯功能break;case 3:/調(diào)用員工信息刪除功能break;case 4:/調(diào)用員工信息查詢功能break;case 5:break;/退出分支語句while (ctrl!=5);1.3.4 知識總結(jié)1.Java語句概述(1)方法調(diào)用語句。(2)表達式語句。(3)復合語句。(4)控制語句。Java程序通過控制語句來執(zhí)行程序流,完成一定的任務。Java中的控制語句有以下幾類:分支語句:if,switch。循環(huán)語句:while,dowhil

21、e,for。跳轉(zhuǎn)語句:break,continue,return。異常處理語句:trycatchfinally,throw。1.3.4 知識總結(jié)2.分支語句(1)if語句if語句是使用最為普遍的條件語句,每一種編程語言都有一種或多種形式的該類語句,在編程中總是避免不了要用到它。if語句的一般形式:if(條件表達式)語句塊1else 語句塊21.3.4 知識總結(jié)2.分支語句(2)switch語句當分支情況很多時,雖然if語句的多層嵌套可以實現(xiàn),但會使程序變得冗長且不直觀。針對這種情況,用 switch語句來處理多分支的選擇問題。其語法格式為:switch(表達式) case 常量表達式1: 語句

22、塊1 break; case 常量表達式2:語句塊2 break; default:語句塊n 1.3.4 知識總結(jié)3.循環(huán)語句循環(huán)語句的作用是反復執(zhí)行一段代碼,直到循環(huán)的條件不滿足時為止。循環(huán)語句的四要素為:初始化、循環(huán)變量控制、循環(huán)的條件和循環(huán)體。其中初始化是進行循環(huán)前的準備工作,如對循環(huán)變量進行初始化等;循環(huán)的條件是指維持循環(huán)應滿足的條件,循環(huán)的條件不滿足時,結(jié)束整個循環(huán);循環(huán)變量控制,也稱為循環(huán)變量的迭代,是指改變循環(huán)變量的值,使其向循環(huán)的結(jié)束條件(即當循環(huán)的條件不滿足時的條件)的方向變化;循環(huán)體是反復要執(zhí)行的代碼段。1.3.4 知識總結(jié)3.循環(huán)語句(1)while 循環(huán)while循環(huán)語

23、句的通用格式如下:初始化while(條件表達式)循環(huán)體1.3.4 知識總結(jié)3.循環(huán)語句(2)do-while 循環(huán)do-while循環(huán)語句的通用格式如下: 初始化do 循環(huán)體while(條件表達式);1.3.4 知識總結(jié)3.循環(huán)語句(3)for 循環(huán)for循環(huán)是使用最廣泛的一種循環(huán),并且靈活多變。其格式如下:for(初始化;條件判斷式;更新值) 循環(huán)體1.3.4 知識總結(jié)4.跳轉(zhuǎn)語句(1)continue語句跳出當次循環(huán),繼續(xù)下次循環(huán)。從調(diào)用處跳至循環(huán)的開始處,結(jié)束本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán),本次循環(huán)continue語句之后的語句將不再執(zhí)行。(2)break語句退出當前所在循環(huán)。從調(diào)用處跳至

24、循環(huán)的結(jié)束處,立即終止當前循環(huán)的執(zhí)行。(3)return語句return語句用來使程序流程從方法調(diào)用中返回,根據(jù)方法的返回值要求,return可以有返回值,也可以沒有返回值。如果方法沒有返回值,則return語句中的表達式可以省略。1.3.5 應用實踐自己動手編寫一個“九九乘法表”的程序。運行結(jié)果如圖。目錄第一章 Java與程序邏輯第二章 面向?qū)ο蟪绦蛟O計基礎第三章 面向?qū)ο蠡咎匦缘谒恼?常用對象使用第五章 異常處理第六章 I/O操作第七章 多線程編程第八章 Java的GUI可視界面編程第二章 面向?qū)ο蟪绦蛟O計基礎21任務2.1 創(chuàng)建類和對象任務2.2 理解類的方法任務2.1 創(chuàng)建類和對象4

25、情境描述123情境分析解決方案知識總結(jié)5應用實踐2.1.1 情境描述Tom在進一步認識了Java之后,發(fā)現(xiàn)了Java語言編程的優(yōu)勢,認識了一個新的名詞面向?qū)ο?。針對A類員工信息,他開始按照面向?qū)ο筮M行程序設計,為此,他需要完成以下任務:1)認識和理解面向?qū)ο蟮幕靖拍睿?)創(chuàng)建類與對象;3)創(chuàng)建類成員變量;4)調(diào)用類成員。2.1.2 情境分析面向?qū)ο蟪绦蛟O計采用模擬現(xiàn)實社會理解事物的思考思維,有利于提高程序員的編程效率。就情景描述中的A類員工信息,對于員工編號、姓名、性別等這些數(shù)據(jù)都是員工固有的屬性;同時除了認識A類員工的屬性以外,還需要考慮A類員工能夠做什么事情,比如他能夠晉升職稱,隨著時間

26、的推移工齡能夠增長等,這就是A類員工具備的行為。2.1.3 解決方案 1、打開Eclipse開發(fā)環(huán)境,載入任務1.3 的項目。2、新建類: “EmployeeA”。3、添加A類員工類字段。4、在EmployeeA類中添加main方法。5、在EmployeeA類中添加display方法。6、在main函數(shù)中創(chuàng)建對象。7、訪問EmployeeA的成員。2.1.3 解決方案 package com.esms;public class EmployeeA String employeeNo;/工號String employeeName;/姓名String employeeGender;/性別Strin

27、g employeeDepartment;/所屬部門String employeePos;/職務String employeeTitlePos;/職稱String employeeWorkYears;/工齡public void display()System.out.println(員工編號:+this.employeeNo);System.out.println(員工姓名:+this.employeeName);System.out.println(員工性別:+this.employeeGender);System.out.println(員工所在部門:+this.employeeDepa

28、rtment);System.out.println(員工職務:+this.employeePos);System.out.println(員工職稱:+this. employeeTitlePos);System.out.println(員工工齡:+this.employeeWorkYears);public static void main(String args) EmployeeA objTom=new EmployeeA();/為Tom的主要屬性賦值objTom.employeeNo=00101; objTom.employeeName=湯姆;objTom.employeeGender

29、=男;objTom.employeeDepartment=技術(shù)一部;objTom.employeePos=程序員;objTom.employeeTitlePos =助理工程師;objTom.employeeWorkYears=1;/利用objTom.display();2.1.4 知識總結(jié)1.面向?qū)ο笮g(shù)語面向?qū)ο蟮某绦蛟O計是目前占主導地位的編程模式,它的核心概念是類和對象。 (1)對象對象可以是有生命的個體,也可以是無生命的個體,還可以是一個抽象的概念。對對象進行分析和抽象,可以發(fā)現(xiàn)它有兩個特征,即屬性和行為。在面向?qū)ο蟪绦蛟O計中,對象的概念來自于對現(xiàn)實世界的抽象。因此,程序員眼里的對象具有屬

30、性(也稱為成員變量)和行為(也稱為成員方法)。2.1.4 知識總結(jié)1.面向?qū)ο笮g(shù)語面向?qū)ο蟮某绦蛟O計是目前占主導地位的編程模式,它的核心概念是類和對象。 (2)類類的概念現(xiàn)實世界中有許多相同種類的對象,可以將這些相同的對象歸并為一個“類”?!邦悺钡亩x是具有相同屬性和行為的對象的集合。類的實例化從類的定義可知,類是同類對象的集合,因此類和對象的關(guān)系是整體和個體的關(guān)系。從對象進行抽象,得到類的概念;從類進行實例化,得到對象。因此。對象也稱為類的實例,從類導出實例的過程稱為類的實例化。2.1.4 知識總結(jié)2.面向?qū)ο蟮幕咎匦裕?)封裝(Encapsulation):封裝是將對象的屬性和行為封裝在

31、一起成為一個整體類。(2)多態(tài)(Ploymorphism):多態(tài)是指程序的多種表現(xiàn)形式。同一個類中,同名但參數(shù)不同的多個方法(方法重載)是多態(tài)的一種表現(xiàn)形式;另一種表現(xiàn)形式是子類對父類方法的覆蓋或者子類對抽象父類中的抽象方法的具體實現(xiàn)。(3)繼承(Inheritance):繼承是指一個類擁有另一個類的所有變量和方法。被繼承的類稱為父類,繼承了父類的所有數(shù)據(jù)和操作的類稱為子類。2.1.4 知識總結(jié)3.類類由成員變量和成員方法組成。類的成員變量可以是基本類型的數(shù)據(jù)或數(shù)組,也可以是一個類的實例。(1)類的定義聲明類的完整格式如下:類修飾符class 類名 extends基類 implements接口

32、列表 成員變量聲明構(gòu)造方法定義成員方法定義2.1.4 知識總結(jié)3.類類由成員變量和成員方法組成。類的成員變量可以是基本類型的數(shù)據(jù)或數(shù)組,也可以是一個類的實例。(2)成員變量成員變量的聲明聲明成員變量的語法格式如下:變量修飾符 數(shù)據(jù)類型 變量名=初始值;成員變量的引用引用同一個類中的成員變量,可以直接通過變量名引用。如果存在同名的局部變量、方法參數(shù)變量或異常處理參數(shù)變量,則需要在成員變量前加上關(guān)鍵字this,例如:this. age=age;如果是引用另一個類中的成員變量,需通過類或?qū)ο髞硪谩?.1.4 知識總結(jié)4.對象(1)聲明對象:當聲明一個類時,就是定義了一個新的引用數(shù)據(jù)類型,可以用這個

33、數(shù)據(jù)類型來聲明這種類型的變量,即對象。變量修飾符 類名 對象名;(2)創(chuàng)建對象:聲明過的對象還不能被引用,必須使用new關(guān)鍵字創(chuàng)建這個對象。創(chuàng)建對象的格式如下:對象名=new 類名(參數(shù)列表);2.1.4 知識總結(jié)4.對象(3)使用對象:聲明和創(chuàng)建了一個對象以后,就能像使用變量那樣使用它。使用的方式是通過讀取它的屬性、設置它的屬性或者是調(diào)用它的方法來實現(xiàn)的。引用對象的屬性,需要使用點分隔符。對象名.成員變量名調(diào)用對象的方法,仍需使用點分隔符。當沒有參數(shù)時,圓括號也不能省略。對象名.方法名(參數(shù)列表)2.1.5 應用實踐Tom成功定義了A類員工類及其A類員工的對象創(chuàng)建?,F(xiàn)在,他需要將A類員工的對

34、象創(chuàng)建及添加操作連接到菜單中。同理,定義B類和C類員工并成功創(chuàng)建對象且連接到菜單中進行操作。任務2.2 理解類的方法4情境描述123情境分析解決方案知識總結(jié)5應用實踐2.2.1 情境描述A類員工的工資組成中,有一部分工資與該員工的工齡有密切的聯(lián)系,故對于A類員工的工齡計算顯得相當重要,他們的工齡隨著時間的推移將發(fā)生改變。在對A類員工進行抽象定義時,最好能夠就A類員工的入職日期。通過入職日期和當前日期的差值得出該員工的工齡,為了計算得出該員工的工齡,Tom需要完成以下任務:1)在類中定義方法2)能夠正確調(diào)用方法2.2.2 情境分析Tom首先需要在Task2_1_Extends的基礎上對A類員工定

35、義類進行部分屬性修改,同時需要掌握類方法成員的定義,在計算工齡方法中需要掌握Java的日期類型及其操作。最后需要在主函數(shù)中調(diào)用該方法驗證該類員工的正確性。2.2.3 解決方案 1、打開Eclipse開發(fā)環(huán)境,載入任務2.1的應用實踐項目。2、打開類: “EmployeeA”,修改類中的工齡成員變量,將其修改為入職日期。3、添加工齡計算方法getWorkYears(),java.util.Date類在以前版本中本身提供了getYear方法,但目前JDK已經(jīng)廢棄,需要通過Calendar對象對Date對象進行封裝,再通過Calendar的get方法獲取到年份,從而得到工齡。4、修改display方

36、法中的調(diào)用工齡的計算。5、修改Menus類中的employeeMenu方法,便于接收用戶輸入的日期。2.2.3 解決方案 package com.esms;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Calendar;public class EmployeeA String employeeNo;/ 工號String employeeName;/ 姓名String employeeGender;/ 性別String employ

37、eeDepartment;/ 所屬部門String employeePos;/ 職務String employeeTitlePos;/ 職稱/ int employeeWorkYears;/工齡Date employeeEntryDate;public int getWorkYears() int workYears = 0;/ 定義局部變量,表示工齡 Calendar cldNow = Calendar.getInstance(); / 創(chuàng)建日歷對象 cldNow.setTime(new Date();/ 設置日歷對象的日期為當前日期 Calendar cldEntryDate = Cale

38、ndar.getInstance(); / 創(chuàng)建日期日期 cldEntryDate.setTime(this.employeeEntryDate);/ 設置當前日期為員工入職日期 workYears = cldNow.get(Calendar.YEAR) - cldEntryDate.get(Calendar.YEAR);/ return workYears;public static void employeeMenu() try System.out.print(請輸入員工入職日期,格式y(tǒng)yyy-MM-dd:);SimpleDateFormat fmt = new SimpleDateFo

39、rmat(yyyy-MM-dd);/利用SimpleDateFormat的parse方法進行輸入字符轉(zhuǎn)換為日期objTom.employeeEntryDate = fmt.parse(in.next(); catch (Exception e) System.out.println(輸入的日期格式不對) 2.2.4 知識總結(jié)1.成員方法(1)方法定義方法的定義包含兩部分:方法的聲明和方法體。一個完整的方法定義格式如下:public|protected|private|staticfinal|abstract返回類型 方法名(參數(shù)列表) /方法聲明 /方法體 局部變量聲明 所有合法的Java語句

40、2.2.4 知識總結(jié)1.成員方法(2)使用方法聲明方法后,必須調(diào)用方法才能執(zhí)行其中的代碼,實現(xiàn)其功能。同使用成員變量的方法一樣,通過運算符“.”來調(diào)用對象的方法。例如,調(diào)用前面定義的類Person中的成員方法:Person dis=new Person();dis.display();2.2.4 知識總結(jié)2.構(gòu)造方法一種特殊的方法,專門用來創(chuàng)建對象,并完成對象的初始化工作。構(gòu)造方法有以下特點:構(gòu)造方法的方法名與類名相同;構(gòu)造方法沒有返回值,在方法聲明部分不能寫返回類型,也不能寫void;構(gòu)造方法只能由new運算符調(diào)用,用戶不能直接調(diào)用構(gòu)造方法;每個類中至少有一個構(gòu)造方法;定義類時如未定義構(gòu)造方

41、法,運行時系統(tǒng)會為該類自動定義默認的構(gòu)造方法,稱為默認構(gòu)造方法。默認構(gòu)造方法沒有任何參數(shù),并且方法體為空,它不做任何事情。2.2.4 知識總結(jié)3. static關(guān)鍵字(1)靜態(tài)變量:靜態(tài)變量不僅可以通過某個對象訪問,也可以直接通過類名訪問。而實例變量只能通過對象訪問,不能使用類名訪問。(2)靜態(tài)方法:聲明為靜態(tài)方法的方法需要在其返回類型前加上關(guān)鍵字static。(3)main方法:main()方法必須是靜態(tài)方法,這樣才能通過類名來引用它,啟動程序的運行,而不需要實例化main()方法所在的類。2.2.4 知識總結(jié)4.日期類庫Java類庫包括官方的Java API類庫和第三方類庫。Java提供了

42、多種日期類,包括Date、Time、Timestamp、Calendar和GregorianCalendar等以及與日期有關(guān)的DateFormat、SimpleDateFormat和TimeZone類。(1)Date類(2)Calendar類(3)SimpleDateFormat類2.2.5 應用實踐聲明一個矩形類,定義成員變量和方法,并創(chuàng)建一個矩形對象,通過設置長和寬,輸出其周長和面積。目錄第一章 Java與程序邏輯第二章 面向?qū)ο蟪绦蛟O計基礎第三章 面向?qū)ο蠡咎匦缘谒恼?常用對象使用第五章 異常處理第六章 I/O操作第七章 多線程編程第八章 Java的GUI可視界面編程第三章 面向?qū)ο蠡?/p>

43、本特性21任務3.1 保護個人數(shù)據(jù)任務3.2 類的繼承性任務3.3 接口345任務3.4 靜態(tài)多態(tài)性任務3.5 動態(tài)動態(tài)性任務3.1 保護個人數(shù)據(jù)4情境描述123問題分析解決方案知識總結(jié)5應用實踐3.1.1 情境描述Tom設計的A類員工類,外部可以直接訪問它的成員變量,在現(xiàn)實社會中,一個對象的某些屬性外界是不可以得知的,因此需要針對個人的數(shù)據(jù)成員進行隱藏保護。為了保護A類員工的個人數(shù)據(jù),他需要完成以下任務:1)識別訪問區(qū)分符2)識別getter和setter3.1.2 問題分析針對數(shù)據(jù)成員進行封裝是面向?qū)ο蟮幕咎匦裕琷ava提供public,protected,private及包封裝四種,封

44、裝可以針對數(shù)據(jù)成員,也可以針對類。同時java也提供getter和setter方法對成員變量進行讀寫封裝,進一步提高數(shù)據(jù)成員封裝性。3.1.3 解決方案 1、打開Eclipse開發(fā)環(huán)境。2、打開類: “EmployeeA”。針對當前EmployeeA的成員變量進行訪問區(qū)分符限定,一般情況下,針對成員變量的封裝采取private封裝,針對成員方法的封裝,采取public封裝。3、對EmployeeA類的數(shù)據(jù)成員進行g(shù)etter和setter方法封裝。4、修改員工入職日期的setter方法。5、修改Menus類中的employeeMenu方法,通過setter方法設置成員變量的值。6、完成封裝及其

45、訪問。3.1.3 解決方案 public class EmployeeA private String employeeNo;/ 工號private String employeeName;/ 姓名private String employeeGender;/ 性別private String employeeDepartment;/ 所屬部門private String employeePos;/ 職務private String employeeTitlePos;/ 職稱private Date employeeEntryDate;public String getEmployeeNo()

46、;public void setEmployeeNo(String employeeNo);public String getEmployeeName();public void setEmployeeName(String employeeName);public String getEmployeeGender();public void setEmployeeGender(String employeeGender);public String getEmployeeDepartment();public void setEmployeeDepartment(String employe

47、eDepartment);public String getEmployeePos();public void setEmployeePos(String employeePos);public String getEmployeeTitlePos();public void setEmployeeTitlePos(String employeeTitlePos);public Date getEmployeeEntryDate();public void setEmployeeEntryDate(Date employeeEntryDate);public int getWorkYears(

48、);public void display();3.1.3 解決方案 /* * 員工信息操作菜單 */public static void employeeMenu() /略 /以下是方法中case 1的部分修改結(jié)果EmployeeA objTom = new EmployeeA();System.out.print(請輸入員工號:);objTom.setEmployeeNo(in.next();System.out.print(請輸入員工姓名:);objTom.setEmployeeName(in.next();System.out.print(請輸入員性別:);objTom.setEmpl

49、oyeeGender(in.next();System.out.print(請輸入所屬部門:);objTom.setEmployeeDepartment(in.next();System.out.print(請輸入員工職務:);objTom.setEmployeePos(in.next();System.out.print(請輸入員工職稱:);objTom.setEmployeeTitlePos(in.next();System.out.print(請輸入員工入職日期,格式y(tǒng)yyy-MM-dd:);objTom.setEmployeeEntryDate(in.next();3.1.4 知識總結(jié)

50、1.封裝封裝是將對象的狀態(tài)和行為捆綁在一起的機制,通過對對象的封裝,數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其構(gòu)成一個不可分割的獨立實體,數(shù)據(jù)被保護在對象的內(nèi)部,盡可能地隱藏內(nèi)部的細節(jié),只保留一些對外接口使之與外部發(fā)生聯(lián)系。封裝實際上就是對于訪問權(quán)限的控制操作。3.1.4 知識總結(jié)2.訪問權(quán)限控制 作用范圍訪問權(quán)限 同一個類中同一個包中不同包中的子類不同包中的非子類private包訪問控制protectedpublic注:表中“”表示可以訪問,“”表示不可以訪問3.1.4 知識總結(jié)2.訪問權(quán)限控制(1)private:類中限定為private的成員變量和成員方法只能被這個類本身的方法訪問,它不能在類

51、外通過名字來訪問。(2)包訪問控制:如果在成員變量和成員方法前不加任何訪問權(quán)限修飾符,則默認為包訪問控制。這樣同一包內(nèi)的其他所有類都能訪問該成員,但對包外的所有類就不能訪問。(3)protected:類中限定為protected的成員可以被這個類本身、它的子類(包括同一包中的和不同包中的子類)以及同一包中所有其他的類訪問。(4)public:類中聲明為public的成員可以被所有的類訪問。3.1.4 知識總結(jié)3. setter和getter方法Java提供訪問器方法,即getter和setter方法,通過訪問器方法,其他對象可以讀取和設置private成員變量的值。(1)getter方法:讀取

52、對象的屬性值,只是簡單的返回。語法格式為:public attributeType getAttributeName();(2)setter方法:設置對象的屬性值,可以增加一些檢查的措施。語法格式為:public void setAttributeName(attributeType parameterName);3.1.5 應用實踐1.利用setter和getter方法,修改應用實踐3.2.5,聲明一個矩形類,定義成員變量和方法,并創(chuàng)建一個矩形對象,通過設置長和寬,輸出其周長和面積。對于其中長和寬設置值驗證機制,只能為正數(shù)。2.擴展:針對B類員工及C類員工進行封裝及其封裝訪問。任務3.2 類

53、的繼承性4情境描述123問題分析解決方案知識總結(jié)5應用實踐3.2.1 情境描述代碼復用是面向?qū)ο蟮闹匾匦灾?,Tom所定義的EmployeeA,EmployeeB及EmployeeC三個類均存在相同的成員變量及成員方法,當前的類定義方式違背了復用的原則,為了提高代碼的復用,Tom需要完成以下任務:1)理解繼承性2)定義基類3)從基類派生子類4)定義抽象方法3.2.2 問題分析Java語句是純面向?qū)ο笳Z言,因此實現(xiàn)代碼復用的方法就是繼承,將當前的A、B、C三類員工的功能屬性和共同行為抽象定義為基類Employee類,由Employee類派生出子類EmployeeA、EmployeeB、Empl

54、oyeeC。就A、B、C三類員工同樣存在相同的行為,例如Display方法,他們的方法名稱相同,但是實現(xiàn)過程不一樣,在解決Display行為統(tǒng)一時,可以采取在基類Employee中聲明display方法,在子類中重新定義。3.2.3 解決方案 1、打開Eclipse開發(fā)環(huán)境,載入任務3.1的應用實踐項目。2、打開EmployeeA類,通過菜單操作,添加EmployeeB和EmployeeC,選擇需要提取到基類的成員變量及成員方法。3、重構(gòu)后形成Employee類及其字段EmployeeA、EmployeeB、EmployeeC。4、修改Employee類為抽象類,再添加抽象方法display。

55、public abstract class Employee public abstract void display();/聲明統(tǒng)一的抽象方法3.2.3 解決方案 (1)Employee類/Employee.javapublic class Employee protected String employeeNo;protected String employeeName;protected String employeeGender;protected String employeeDepartment;protected String employeePos;public String

56、getEmployeeNo();public void setEmployeeNo(String employeeNo);public String getEmployeeName() ;public void setEmployeeName(String employeeName) ;public String getEmployeeGender() ;public void setEmployeeGender(String employeeGender) ;public String getEmployeeDepartment();public void setEmployeeDepart

57、ment(String employeeDepartment);public String getEmployeePos() ;public void setEmployeePos(String employeePos);3.2.3 解決方案 (2)EmployeeA子類/EmployeeA.javapublic class EmployeeA extends Employee private String employeeTitlePos;private Date employeeEntryDate;public String getEmployeeTitlePos();public voi

58、d setEmployeeTitlePos(String employeeTitlePos) ;public Date getEmployeeEntryDate() ;public void setEmployeeEntryDate(String employeeEntryDate) ;public int getWorkYears();public void display();3.2.3 解決方案 (3)EmployeeB子類(4)EmployeeC子類/EmployeeB.javapublic class EmployeeB extends Employee private String

59、 employeeTitlePos;/職稱private int employeeWorkTimes;/月工作時間public String getEmployeeTitlePos();public void setEmployeeTitlePos(String employeeTitlePos) ;public int getEmployeeWorkTimes();public void setEmployeeWorkTimes(int employeeWorkTimes);public void display() ;/EmployeeC.javapublic class Employee

60、C extends Employee private int employeeWorkTimes;/月工作時間public int getEmployeeWorkTimes();public void setEmployeeWorkTimes(int employeeWorkTimes);public void display() ;3.2.4 知識總結(jié)1.繼承的概念繼承性是面向?qū)ο蟪绦蛟O計的一個重要特征。通過繼承,子類可以繼承基類的屬性和方法,還可以加以擴展,或者修改原有的方法,從而提高程序的擴展性和靈活性。其中,被繼承的類稱為基類、超類或父類(super class);繼承的類稱為繼承類或

溫馨提示

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

評論

0/150

提交評論