1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母
2、版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,
3、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,目录,第一章 Java与程序逻辑,第二章 面向对象程序设计基础,第三章 面向对象基本特性,第四章
4、 常用对象使用,第五章 异常处理,第六章 I/O操作,第七章 多线程编程,第八章 Java的GUI可视界面编程,目录,第一章 Java与程序逻辑,第二章 面向对象程序设计基础,第三章 面向对象基本特性,第四章 常用对象使用,第五章 异常处理,第六章 I/O操作,第七章 多线程编程,第八章 Java的GUI可视界面编程,第一章 Java与程序逻辑,2,1,任务1.1 搭建Java开发环境,任务1.2 体验Java开发过程,任务1.3 Java语句,3,任务1.1,搭建Java开发环境,4,情境描述,1,2,3,情境分析,解决方案,知识总结,1.1.1 情境描述,Tom承接了某企业的员工工资管理系
5、统,主要管理企业的A、B、C类员工的工资。由于Java语言及Java平台的特性,客户要求采用Java进行软件开发。作为一个Java程序员,Tom需要在其计算机上搭建Java开发环境,他需要实现以下任务:,1)安装JRE、JVM、JDK。,2)配置Java环境变量。,3)使用Eclipse工具验证Java开发环境。,1.1.2 情境分析,采用Java来实现企业的员工工资管理系统开发,首先在计算机上安装Java SE6.0版本(采取Windows开发Java,则需要下载Windows对应的版本,同时需要注意操作系统的位数),其下载地址为:,IDE开发Java程序,则需要到,www.eclipse.
6、org/downloads/,下载,为了后期Java EE开发方面,Tom选择了“Eclipse IDE for Java EE Developers”32位机版本。,1.1.3 解决方案,Tom首先将Java SE6.0的安装包及Eclipse的下载包从不同的网站下载到本地计算机,在安装的时候,他先将Java SE6.0安装到D:Program FilesJava,之后手工配置了环境变量,利用事先准备好的java程序验证了环境的正确性。为了简化开发,Tom将Eclipse下载包解压放置到D:Eclipse盘根目录下,通过运行Eclipse IDE,执行已准备好的Java程序,确定JDK及ID
7、E环境的正确性。,1.1.3 解决方案,方法一:JDK+控制台模式搭建开发环境,方法二:JDK+EclipseIDE搭建开发环境,1.1.4 知识总结,1.Java语言极其特点,Java语言具有以下几个特点:,1)结构简单,易于学习,2)面向对象,3)与平台无关,4)可靠性,5)安全性,6)多线程,7)很好地支持网络编程,8)丰富的类库,1.1.4 知识总结,2.Java的运行环境,采用Java语言开发的应用软件需要JVM的支持才能运行。Java的运行环境称为JRE(Java Runtime Environment),它包括JVM以及相应的API类库。因此,所有需要运行Java应用软件的计算机
8、都必须安装JRE。,1.1.4 知识总结,3.Java的开发环境,对于开发人员来说,除了需要上述的运行环境以外,还需要开发环境的支持,Java的开发环境主要由以下两部分组成。,Java开发工具包(Java Development Kit,JDK):主要由Java编译器、调试工具等组成,是Java开发必备的工具。,集成开发环境(Integrated Development Environment,IDE):目前大多数软件企业都是使用Eclipse进行开发。,1.1.4 知识总结,4.Eclipse介绍,运行eclipse.exe文件或其他快捷方式,将出现指定工作空间的窗口,进入Eclipse后,
9、出现Eclipse的主界面。,任务1.2 体验Java程序开发过程,4,情境描述,1,2,3,情境分析,解决方案,知识总结,1.2.1 情境描述,工资管理系统的功能主要有:分类管理员工的基本信息,操作用户管理、每月工资管理及工资的统计管理等。首先需要完成系统的主操作界面设计,为了完成系统主菜单设计,需要完成以下功能:,1)在Eclipse中成功创建项目;,2)利用Java输出语句完成主菜单。,1.2.2 情境分析,利用Java实现系统主菜单,首先他需要设计好菜单的样式,其次就是利用Java的输出语句进行菜单的显示输出,在Java语言中,输出到控制台的语句为System.out.print或者S
10、ystem.out.println。,1.2.3 解决方案,1、打开Eclipse。,2、添加一个包,名为com.esms。,3、新建类,命名为“Menus”,4、在Menus中添加主函数。,5、在主函数中添加主菜单实现代码,主要通过System.out.println()及System.out.println()实现。,1.2.3 解决方案,package,com.esms;,/*,*菜单操作类,主要实现主菜单定义,*,author,李法平,*,*/,public,class,Menus,/*,*主函数,程序的入口,*,param,args,*/,public,static,void,mai
11、n(String args),System.,out,.println(,“*欢迎使用工资管理系统*,);,System.,out,.println(,*1:员工管理 *,);,System.,out,.println(,*2:用户管理 *,);,System.,out,.println(,*3:工资管理 *,);,System.,out,.println(,*4:工资查询与统计 *,);,System.,out,.println(,*5:退出系统 *,);,System.,out,.println(,*,);,1.2.3 解决方案,运行结果。,1.2.4 知识总结,1.关键字,类型,关键字,
12、数据类型关键字,int double long byte short float char boolean,循环关键字,for continue do,while,条件关键字,if,else switch,case,异常关键字,throw throws try catch finally assert,类定义关键字,class extends implements interface,修饰符和访问关键字,public private protected abstract static final transient native,其他关键字,new void false true null r
13、eturn this super import package break default synchronized instanceof volatile strictfp enum,1.2.4 知识总结,2.Java标识符,标识符的命名规则如下:,只能使用字母、数字、下划线和美元符。,只能以字母、下划线和美元符开头,不能用数字开头。,严格区分大小写,没有长度限制。,不能使用Java关键字。,1.2.4 知识总结,3.分隔符,空格:包括空格、换行、制表符等。,句点(.):半角的英文句点,用于方法或变量的引用。,分号(:):表示一条语句的结束,一般一条语句占一行,但是一行写不下一条语句时,允许
14、一条语句占用多行。,逗号(,):分隔变量声明中的多个标识符。,圆括号:一般用在表达式、方法的参数和控制语句的条件表达式中。注意圆括号可以嵌套,但需要严格配对使用。,方括号():用于声明数组,引用数组的元素值。,花括号():用于定义一个语句块,一个语句块是零条或多条语句,以“”开始,以“”结束。,1.2.4 知识总结,4.Java注释,多行注释(/*/):注释以“/*”开始,以“/*”结束,可以注释多行也可以注释单行,一般位于要解释的类或方法的前面。符号“/*”和“/*”成对出现,不可以套用。,单行注释(/):注解内容从“/”开始,并在每行末尾结束,一般位于要解释语句的结尾处。,文档注解语句(/
15、/):注解从“/*”开始,到“*/”结束,一般位于类或方法的最前面。,1.2.4 知识总结,5.Java程序结构,其基本结构是:,一个完整的Java源文件的结构定义如下:,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(”);,/
16、输出,1.2.4 知识总结,6.Java数据类型,(1)基本数据类型,整数类型:byte,short,int,long。,浮点类型:float,double。,字符类型:char。,布尔类型:boolean。,(2)引用数据类型,类类型:class,String,Double等。,接口类型:Interface,数组类型:基本数据类型数组,对象型数组。,1.2.4 知识总结,7.常量和变量,(1)常量:有字面常量和符号常量两种。符号常量用关键字final来实现,其语法格式为:,final 数据类型 符号常量名=常量值;,(2)变量:是Java程序中的基本存储单元。声明变量的一般格式如下:,变量修
17、饰符 数据类型 变量名=初始值;,1.2.4 知识总结,8.运算符和表达式,运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。,表达式用来某个求值规则,可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。其类型由运算符的类型决定,有算术运算、关系运算、逻辑运算、赋值运算等。,任务1.3 Java语句,4,情境描述,1,2,3,情境分析,解决方案,知识总结,5,应用实践,1.3.1 情境描述,Tom完成了系统的主菜单,需要实现系统的子菜单和通过在主菜单上不同的输入值连接到具体的子菜单中。如通过在键盘上输入1能够进入到员工信息子菜单中,同时,当他退
18、出子菜单时,系统将返回到主菜单。为了实现以上功能,他需要完成以下任务:,1)认识Java语言的输入;,2)利用分支语句进行选择进入不同的子菜单;,3)利用循环语句实现菜单的循环操作。,1.3.2 情境分析,为了实现菜单选择功能,首先需要掌握Java从键盘输入数据的操作,例如Scanner对象及System.in对象;其次需要掌握分支语句的使用,例如if语句或者switch语句。,当主菜单与子菜单的连接成功之后,若要保证菜单的重复使用,则需要在主菜单及子菜单中添加循环控制语句来实现,Java语言中的循环有while循环,do while循环,for循环等。,1.3.3 解决方案,1、打开Ecli
19、pse。,2、添加一个包,名为com.esms,并复制Menus类到包中。,3、打开Menus类,重构main方法,得到mainMenu方法,代码如下:,public,static,void,main(String args),mainMenu();,/*,*系统主菜单,*/,public,static,void,mainMenu(),System.,out,.println(,*欢迎使用工资管理系统*,);,System.,out,.println(,*1:员工管理 *,);,System.,out,.println(,*2:用户管理 *,);,System.,out,.println(,*
20、3:工资管理 *,);,System.,out,.println(,*4:工资查询与统计 *,);,System.,out,.println(,*5:退出系统 *,);,System.,out,.println(,*,);,1.3.3 解决方案,4、利用Scanner类实现键盘输入,Scanner类在java.util中,因此在类定义前写上import java.util.*;或import java.util.Scanner;,5、,利用分支语句控制选择操作,通过if语句进行输入项的判定操作,进而执行不同的操作。,6、针对mainMenu菜单,在现有代码的基础上,添加循环控制语句,实现主菜单
21、的重复选择功能。,代码如下:,1.3.3 解决方案,public,static,void,main(String args),mainMenu();,/*,*系统主菜单,*/,public,static,void,mainMenu(),while,(,true,),Scanner in=,new,Scanner(System.,in,);,/,创建键盘输入对象,System.,out,.print(请选择操作项:);,int,ctrl=in.nextInt();,if,(ctrl=1)/进入员工管理界面,employeeMenu();/调用员工管理菜单,else,if,(ctrl=2)/执行用
22、户管理选项,/Add Code to Here,else,if,(ctrl=3)/执行工作管理,/Add Code to Here,else,if,(ctrl=4)/执行工资统计,/Add Code to Here,else,if,(ctrl=5)/退出系统操作,return,;,1.3.3 解决方案,7、,定义员工管理菜单,public,static,void,employeeMenu(),int,ctrl=0;,do,Scanner in=,new,Scanner(System.,in,);,System.,out,.println(,*迎使用工资管理系统-员工管理*,);,System.
23、out,.println(,*1:员工信息添加 *,);,System.,out,.println(,*2:员工信息编辑 *,);,System.,out,.println(,“*3:员工信息删除 *,);,System.,out,.println(,“*4:员工信息查询 *,);,System.,out,.println(,*5:退出系统 *,);,System.,out,.println(,*,);,System.,out,.print(,请选择操作项:,);,ctrl=in.nextInt();,switch,(ctrl),case,1:,/调用员工信息添加功能,break,;,cas
24、e,2:,/调用员工信息编辑功能,break,;,case,3:,/调用员工信息删除功能,break,;,case,4:,/调用员工信息查询功能,break,;,case,5:,break,;,/退出分支语句,while,(ctrl!=5);,1.3.4 知识总结,1.Java语句概述,(1)方法调用语句。,(2)表达式语句。,(3)复合语句。,(4)控制语句。,Java程序通过控制语句来执行程序流,完成一定的任务。Java中的控制语句有以下几类:,分支语句:if,switch。,循环语句:while,dowhile,for。,跳转语句:break,continue,return。,异常处理语
25、句:trycatchfinally,throw。,1.3.4 知识总结,2.分支语句,(1)if语句,if语句是使用最为普遍的条件语句,每一种编程语言都有一种或多种形式的该类语句,在编程中总是避免不了要用到它。,if语句的一般形式:,if(条件表达式),语句块1,else,语句块2,1.3.4 知识总结,2.分支语句,(2)switch语句,当分支情况很多时,虽然if语句的多层嵌套可以实现,但会使程序变得冗长且不直观。针对这种情况,用 switch语句来处理多分支的选择问题。其语法格式为:,switch(表达式),case 常量表达式1:语句块1,break;,case 常量表达式2:语句块2
26、break;,default:语句块n,1.3.4 知识总结,3.循环语句,循环语句的作用是反复执行一段代码,直到循环的条件不满足时为止。循环语句的四要素为:初始化、循环变量控制、循环的条件和循环体。其中初始化是进行循环前的准备工作,如对循环变量进行初始化等;循环的条件是指维持循环应满足的条件,循环的条件不满足时,结束整个循环;循环变量控制,也称为循环变量的迭代,是指改变循环变量的值,使其向循环的结束条件(即当循环的条件不满足时的条件)的方向变化;循环体是反复要执行的代码段。,1.3.4 知识总结,3.循环语句,(1)while 循环,while循环语句的通用格式如下:,初始化,while(
27、条件表达式),循环体,1.3.4 知识总结,3.循环语句,(2)do-while 循环,do-while循环语句的通用格式如下:,初始化,do,循环体,while(条件表达式);,1.3.4 知识总结,3.循环语句,(3)for 循环,for循环是使用最广泛的一种循环,并且灵活多变。其格式如下:,for(初始化;条件判断式;更新值),循环体,1.3.4 知识总结,4.跳转语句,(1)continue语句,跳出当次循环,继续下次循环。从调用处跳至循环的开始处,结束本次循环,继续执行下一次循环,本次循环continue语句之后的语句将不再执行。,(2)break语句,退出当前所在循环。从调用处跳至
28、循环的结束处,立即终止当前循环的执行。,(3)return语句,return语句用来使程序流程从方法调用中返回,根据方法的返回值要求,return可以有返回值,也可以没有返回值。如果方法没有返回值,则return语句中的表达式可以省略。,1.3.5 应用实践,自己动手编写一个“九九乘法表”的程序。运行结果如图。,目录,第一章 Java与程序逻辑,第二章 面向对象程序设计基础,第三章 面向对象基本特性,第四章 常用对象使用,第五章 异常处理,第六章 I/O操作,第七章 多线程编程,第八章 Java的GUI可视界面编程,第二章 面向对象程序设计基础,2,1,任务2.1 创建类和对象,任务2.2 理
29、解类的方法,任务2.1,创建类和对象,4,情境描述,1,2,3,情境分析,解决方案,知识总结,5,应用实践,2.1.1 情境描述,Tom在进一步认识了Java之后,发现了Java语言编程的优势,认识了一个新的名词面向对象。针对A类员工信息,他开始按照面向对象进行程序设计,为此,他需要完成以下任务:,1,)认识和理解面向对象的基本概念;,2,)创建类与对象;,3,)创建类成员变量;,4,)调用类成员。,2.1.2 情境分析,面向对象程序设计采用模拟现实社会理解事物的思考思维,有利于提高程序员的编程效率。,就情景描述中的A类员工信息,对于员工编号、姓名、性别等这些数据都是员工固有的属性;同时除了认
30、识A类员工的属性以外,还需要考虑A类员工能够做什么事情,比如他能够晋升职称,随着时间的推移工龄能够增长等,这就是A类员工具备的行为。,2.1.3 解决方案,1、打开,Eclipse,开发环境,,载入任务,1.3,的项目。,2、新建类:“,EmployeeA,”。,3、添加,A,类员工类字段。,4、在,EmployeeA,类中添加,main,方法。,5、在,EmployeeA,类中添加,display,方法。,6、在,main,函数中创建对象。,7、访问,EmployeeA,的成员,。,2.1.3 解决方案,package,com.esms;,public,class,EmployeeA,Str
31、ing,employeeNo,;,/工号,String,employeeName,;,/姓名,String,employeeGender,;,/性别,String,employeeDepartment,;,/所属部门,String,employeePos,;,/职务,String,employeeTitlePos,;,/职称,String,employeeWorkYears,;,/工龄,public,void,display(),System.,out,.println(,员工编号:,+,this,.,employeeNo,);,System.,out,.println(,员工姓名:,+,th
32、is,.,employeeName,);,System.,out,.println(,员工性别:,+,this,.,employeeGender,);,System.,out,.println(,员工所在部门:,+,this,.,employeeDepartment,);,System.,out,.println(,员工职务:,+,this,.,employeePos,);,System.,out,.println(,员工职称:,+,this,.,employeeTitlePos,);,System.,out,.println(,员工工龄:,+,this,.,employeeWorkYears
33、);,public,static,void,main(String args),EmployeeA objTom=,new,EmployeeA();,/为Tom的主要属性赋值,objTom.,employeeNo,=,00101,;,objTom.,employeeName,=,汤姆,;,objTom.,employeeGender,=,男,;,objTom.,employeeDepartment,=,技术一部,;,objTom.,employeePos,=,程序员,;,objTom.,employeeTitlePos,=,助理工程师,;,objTom.,employeeWorkYears,
34、1;,/利用,objTom.display();,2.1.4 知识总结,1.面向对象术语,面向对象的程序设计是目前占主导地位的编程模式,它的核心概念是类和对象。,(1)对象,对象可以是有生命的个体,也可以是无生命的个体,还可以是一个抽象的概念。对对象进行分析和抽象,可以发现它有两个特征,即属性和行为。,在面向对象程序设计中,对象的概念来自于对现实世界的抽象。因此,程序员眼里的对象具有属性(也称为成员变量)和行为(也称为成员方法)。,2.1.4 知识总结,1.面向对象术语,面向对象的程序设计是目前占主导地位的编程模式,它的核心概念是类和对象。,(2)类,类的概念,现实世界中有许多相同种类的对象
35、可以将这些相同的对象归并为一个“类”。“类”的定义是具有相同属性和行为的对象的集合。,类的实例化,从类的定义可知,类是同类对象的集合,因此类和对象的关系是整体和个体的关系。从对象进行抽象,得到类的概念;从类进行实例化,得到对象。因此。对象也称为类的实例,从类导出实例的过程称为类的实例化。,2.1.4 知识总结,2.面向对象的基本特性,(,1,)封装(,Encapsulation,):封装是将对象的属性和行为封装在一起成为一个整体类。,(,2,)多态(,Ploymorphism,):多态是指程序的多种表现形式。同一个类中,同名但参数不同的多个方法(方法重载)是多态的一种表现形式;另一种表现形式
36、是子类对父类方法的覆盖或者子类对抽象父类中的抽象方法的具体实现。,(,3,)继承(,Inheritance,):继承是指一个类拥有另一个类的所有变量和方法。被继承的类称为父类,继承了父类的所有数据和操作的类称为子类。,2.1.4 知识总结,3.类,类由成员变量和成员方法组成。类的成员变量可以是基本类型的数据或数组,也可以是一个类的实例。,(,1,)类的定义,声明类的完整格式如下:,类修饰符,class,类名,extends,基类,implements,接口列表,成员变量声明,构造方法定义,成员方法定义,2.1.4 知识总结,3.类,类由成员变量和成员方法组成。类的成员变量可以是基本类型的数据或
37、数组,也可以是一个类的实例。,(,2,)成员变量,成员变量的声明,声明成员变量的语法格式如下:,变量修饰符,数据类型,变量名,=,初始值,;,成员变量的引用,引用同一个类中的成员变量,可以直接通过变量名引用。如果存在同名的局部变量、方法参数变量或异常处理参数变量,则需要在成员变量前加上关键字,this,,例如:,this.age=age;,如果是引用另一个类中的成员变量,需通过类或对象来引用。,2.1.4 知识总结,4.对象,(1)声明对象:当声明一个类时,就是定义了一个新的引用数据类型,可以用这个数据类型来声明这种类型的变量,即对象。,变量修饰符 类名 对象名;,(,2,)创建对象:声明过的
38、对象还不能被引用,必须使用,new,关键字创建这个对象。创建对象的格式如下:,对象名,=new,类名,(,参数列表,);,2.1.4 知识总结,4.对象,(3)使用对象:声明和创建了一个对象以后,就能像使用变量那样使用它。使用的方式是通过读取它的属性、设置它的属性或者是调用它的方法来实现的。,引用对象的属性,需要使用点分隔符。,对象名,.,成员变量名,调用对象的方法,仍需使用点分隔符。当没有参数时,圆括号也不能省略。,对象名.方法名(参数列表),2.1.5 应用实践,Tom成功定义了A类员工类及其A类员工的对象创建。现在,他需要将A类员工的对象创建及添加操作连接到菜单中。同理,定义B类和C类员
39、工并成功创建对象且连接到菜单中进行操作。,任务2.2 理解,类的方法,4,情境描述,1,2,3,情境分析,解决方案,知识总结,5,应用实践,2.2.1 情境描述,A类员工的工资组成中,有一部分工资与该员工的工龄有密切的联系,故对于A类员工的工龄计算显得相当重要,他们的工龄随着时间的推移将发生改变。在对A类员工进行抽象定义时,最好能够就A类员工的入职日期。通过入职日期和当前日期的差值得出该员工的工龄,为了计算得出该员工的工龄,Tom需要完成以下任务:,1,)在类中定义方法,2,)能够正确调用方法,2.2.2 情境分析,Tom首先需要在Task2_1_Extends的基础上对A类员工定义类进行部分
40、属性修改,同时需要掌握类方法成员的定义,在计算工龄方法中需要掌握Java的日期类型及其操作。最后需要在主函数中调用该方法验证该类员工的正确性。,2.2.3 解决方案,1、打开,Eclipse,开发环境,,载入任务,2.1,的应用实践项目。,2、打开类:“,EmployeeA,”,修改类中的工龄成员变量,将其修改为入职日期。,3、添加工龄计算方法,getWorkYears(),,,java.util.Date,类在以前版本中本身提供了,getYear,方法,但目前,JDK,已经废弃,需要通过,Calendar,对象对,Date,对象进行封装,再通过,Calendar,的,get,方法获取到年份,
41、从而得到工龄。,4、修改,display,方法中的调用工龄的计算。,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
42、 employeeGender;/性别,String employeeDepartment;/所属部门,String employeePos;/职务,String employeeTitlePos;/职称,/int employeeWorkYears;/工龄,Date employeeEntryDate;,public int getWorkYears(),int workYears=0;/定义局部变量,表示工龄,Calendar cldNow=Calendar.getInstance();/创建日历对象,cldNow.setTime(new Date();/设置日历对象的日期为当前日期,Ca
43、lendar cldEntryDate=Calendar.getInstance();/创建日期日期,cldEntryDate.setTime(this.employeeEntryDate);/设置当前日期为员工入职日期,workYears=cldNow.get(Calendar.YEAR)-cldEntryDate.get(Calendar.YEAR);/,return workYears;,public,static,void,employeeMenu(),try,System.,out,.print(,请输入员工入职日期,格式yyyy-MM-dd:,);,SimpleDateFormat
44、 fmt=,new,SimpleDateFormat(,yyyy-MM-dd,);,/利用SimpleDateFormat的parse方法进行输入字符转换为日期,objTom.,employeeEntryDate,=fmt.parse(in.next();,catch,(Exception e),System.out.println(,输入的日期格式不对,),2.2.4 知识总结,1.成员方法,(,1,)方法定义,方法的定义包含两部分:方法的声明和方法体。一个完整的方法定义格式如下:,public|protected|private|staticfinal|abstract,返回类型 方法名,
45、参数列表,)/,方法声明,/,方法体,局部变量声明,所有合法的,Java,语句,2.2.4 知识总结,1.成员方法,(,2,)使用方法,声明方法后,必须调用方法才能执行其中的代码,实现其功能。同使用成员变量的方法一样,通过运算符“,.,”来调用对象的方法。,例如,调用前面定义的类,Person,中的成员方法:,Person dis=new Person();,dis.display();,2.2.4 知识总结,2.构造方法,一种特殊的方法,专门用来创建对象,并完成对象的初始化工作。构造方法有以下特点:,构造方法的方法名与类名相同;,构造方法没有返回值,在方法声明部分不能写返回类型,也不能写
46、void,;,构造方法只能由,new,运算符调用,用户不能直接调用构造方法;,每个类中至少有一个构造方法;,定义类时如未定义构造方法,运行时系统会为该类自动定义默认的构造方法,称为默认构造方法。默认构造方法没有任何参数,并且方法体为空,它不做任何事情。,2.2.4 知识总结,3.static关键字,(,1,)静态变量:静态变量不仅可以通过某个对象访问,也可以直接通过类名访问。而实例变量只能通过对象访问,不能使用类名访问。,(,2,)静态方法:声明为静态方法的方法需要在其返回类型前加上关键字,static,。,(,3,)main方法:,main(),方法必须是静态方法,这样才能通过类名来引用它
47、启动程序的运行,而不需要实例化,main(),方法所在的类。,2.2.4 知识总结,4.日期类库,Java,类库包括官方的,Java API,类库和第三方类库。,Java,提供了多种日期类,包括,Date,、,Time,、,Timestamp,、,Calendar,和,GregorianCalendar,等以及与日期有关的,DateFormat,、,SimpleDateFormat,和,TimeZone,类。,(,1,),Date,类,(,2,),Calendar,类,(,3,),SimpleDateFormat,类,2.2.5 应用实践,声明一个矩形类,定义成员变量和方法,并创建一个矩形对
48、象,通过设置长和宽,输出其周长和面积。,目录,第一章 Java与程序逻辑,第二章 面向对象程序设计基础,第三章 面向对象基本特性,第四章 常用对象使用,第五章 异常处理,第六章 I/O操作,第七章 多线程编程,第八章 Java的GUI可视界面编程,第三章 面向对象基本特性,2,1,任务3.1 保护个人数据,任务3.2 类的继承性,任务,3.3,接口,3,4,5,任务,3.4,静态多态性,任务,3.5,动态动态性,任务3.1 保护个人数据,4,情境描述,1,2,3,问题分析,解决方案,知识总结,5,应用实践,3.1.1 情境描述,Tom设计的A类员工类,外部可以直接访问它的成员变量,在现实社会中
49、一个对象的某些属性外界是不可以得知的,因此需要针对个人的数据成员进行隐藏保护。为了保护A类员工的个人数据,他需要完成以下任务:,1,)识别访问区分符,2,)识别,getter,和,setter,3.1.2 问题分析,针对数据成员进行封装是面向对象的基本特性,java提供public,protected,private及包封装四种,封装可以针对数据成员,也可以针对类。同时java也提供getter和setter方法对成员变量进行读写封装,进一步提高数据成员封装性。,3.1.3 解决方案,1、打开,Eclipse,开发环境。,2、打开类:“,EmployeeA,”。针对当前,EmployeeA,
50、的成员变量进行访问区分符限定,一般情况下,针对成员变量的封装采取,private,封装,针对成员方法的封装,采取,public,封装。,3、对,EmployeeA,类的数据成员进行,getter,和,setter,方法封装。,4、修改员工入职日期的,setter,方法。,5、修改,Menus,类中的,employeeMenu,方法,通过,setter,方法设置成员变量的值。,6、完成封装及其访问。,3.1.3 解决方案,public,class EmployeeA,private,String employeeNo;,/工号,private,String employeeName;,/姓名,p
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818