《Java程序设计任务驱动式教程06章.ppt》由会员分享,可在线阅读,更多相关《Java程序设计任务驱动式教程06章.ppt(23页珍藏版)》请在三一办公上搜索。
1、,Java程序设计任务驱动式教程,主编:孙修东、王永红高职高专规划示范教材,北京航空航天大学出版社,2,目录,任务一 搭建环境(构建Java集成开发环境),任务二 Java欢迎你(开发简单Java应用程序,任务三 小试牛刀(学习Java语言基础),任务四 挑战选择(使用分支控制流程),任务五 游戏人生(使用循环控制流程),任务六 回归自然(创建、使用类和对象),任务七 3G时代的消息传递(定义和使用类方法),任务八 保护你的隐私(封装的使用),任务九 子承父业(继承和多态的使用),任务十 上帝万能之手(接口的使用),3,任务十一 用数组存储信息(使用数组),任务十二 使用字符串进行交流(使用字
2、符串),任务十三 防患于未然(捕获并处理异常),任务十四 主动出击(抛出异常),任务十五 认识Java Applet(Applet入门),任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像),任务十七 进入Windows世界(设计图形用户界面),任务十八 布局规划(使用布局管理器),任务十九 事件委托处理(如何处理事件),任务二十 选择之道(使用选择控件和选择事件),目录,4,任务二十一 简明清晰的菜单(使用菜单和其他常用事件),任务二十二 访问数据(使用JDBC连接数据库),任务二十三 访问数据升级(数据库编程),任务二十四 文件管理(目录与文件管理),任务二十五 顺序进出
3、之道(文件的顺序访问),任务二十六 随机进出之道(文件的随机访问),任务二十七 JAVA的分身术(创建和启动线程),任务二十八 线程的生命周期与优先级(线程的状态与调度),任务二十九 基于连接的通信(Java中的套接字Socket),任务三十 基于无连接的通信(Java中的数据报编程),目录,5,任务六 回归自然(创建、使用类和对象),2,1,知识目标,能力目标,类与对象概念与特征、属性和方法;类与对象的关系;定义类的语法。创建类的对象;使用对象的步骤。,掌握类和对象的特征;会创建和使用类和对象。,6,内容提要,4,跟我做:学生类描述,1,2,3,5,实现方案,代码分析,必备知识,动手做一做,
4、7,6.1 跟我做:学生类描述,任务情景学生信息管理系统用于对学生信息进行管理。常常涉及到学生、教师或班主任、系部等对象。学生的信息包括学号、姓名、出生年月、家庭住址、联系电话。请对学生进行类描述,并用Java代码实现。运行结果假设有一个同学,学号=1,姓名=“辛海阳”,出生年月=1994-10-18,家庭住址=“中国江苏省泰州市”,联系电话=“0523-81234567”时,程序运行的结果如图6-1。,第1章目录,8,问题分析Java程序设计采用的是面向对象程序设计(OOP,Objected-Oriented Programming)的方法。OOP是目前软件开发的主流方法。解决问题过程中,需
5、要采用面向对象的分析方法和面向对象的设计方法。类的描述是使用OOP解决问题的基础。类包含属性和行为。属性指学生的学号、姓名、出生年月、家庭住址、联系电话。行为指学生上课、做作业、课后活动、休息。如图6-2。本任务只要求对属性进行描述。,第1章目录,6.2 实现方案,9,解决步骤1.打开Eclipse,在study项目中创建包com.task06,再确定类名Student,得到类的框架。2.然后,在public class Student 下面一行输入类的属性描述:long identity;/学号String name;/姓名Date birthday;/出生年月String address;
6、/家庭住址String tel;/联系电话此时,会发现,在Date birthday;一行的左侧,出现了一个红色的符号。我们在package com.task06;的下面一行输入:import;红色的符号将会自动消失。3.最后,将/TODO Auto-generated method stub替换成:Student student=new Student();/创建类的对象/详细实现代码参见6.34.运行程序。,第1章目录,6.2 实现方案,10,程序代码package com.task06;/创建包com.task06import;/导入程序中用到的系统类import;import;impo
7、rt;/*Student.java*学生信息管理系统中类描述*/public class Student/属性long identity;/学号String name;/姓名Date birthday;/出生年月String address;/家庭住址String tel;/联系电话/*param args*/public static void main(String args)/入口方法Student student=new Student();/创建类的对象student.identity=1L;/给属性赋值student.name=辛海阳;/属性也称为成员变量/String转Date
8、DateFormat dateFormat=new SimpleDateFormat(yyyy-MM-dd);/给日期型成员变量赋值 try/try/catch异常处理语句块 student.birthday=dateFormat.parse(1994-10-18);catch(ParseException e)e.printStackTrace();student.address=中国江苏省泰州市;student.tel=0523-81234567;(学号:+student.identity);(姓名:+student.name);(出生年月:+dateFormat.format(stude
9、nt.birthday);/Date转String(家庭住址:+student.address);(联系电话:+student.tel);,第1章目录,6.3 代码分析,11,6.3 代码分析,应用扩展对类Student的测试是在类的内部main()方法中进行的。更多的情况下,新建一个StudentTest测试类,对类Student进行测试。每个类单独为一个源代码文件。上面的代码改写如下:package com.task06;/创建包com.task06import;/*Student.java*学生信息管理系统中类描述*/public class Student/自定义类Studentlon
10、g identity;/学号String name;/姓名Date birthday;/出生年月String address;/家庭住址String tel;/联系电话package com.task06;import;/导入程序中用到的系统类import;import;/*StudentTest.java*Student类的测试类*/public class StudentTest/定义测试类/*param args*/public static void main(String args)/入口方法Student student=new Student();/定义类Student的对象st
11、udent.identity=1L;student.name=辛海阳;/String转Date DateFormat dateFormat=new SimpleDateFormat(yyyy-MM-dd);try/try/catch异常处理语句块 student.birthday=dateFormat.parse(1994-10-18);catch(ParseException e)e.printStackTrace();student.address=中国江苏省泰州市;student.tel=0523-81234567;(学号:+student.identity);(姓名:+student.
12、name);(出生年月:+dateFormat.format(student.birthday);/Date转String(家庭住址:+student.address);(联系电话:+student.tel);,第1章目录,12,6.4 必备知识,6.4.1 类与对象概念与特征Java语言编写的程序是由类构成的,要开发优秀的软件,必须具有正确的面向对象的思想。因此,正式使用Java语言进行程序设计之前,必须先将自己的思想转入一个面向对象的世界。只有做好这个准备工作,才能体会到Java的易学易用。1.对象客观世界是由事物构成的,客观世界中的每一个事物就是一个对象。例如,任务中的辛海阳同学就是一个
13、对象,学号=1,姓名=“辛海阳”,出生年月=1994-10-18,家庭住址=“中国江苏省泰州市”,联系电话=“0523-81234567”。具有上课、做作业、课后活动、休息等行为。还有,日常生活中我们阅读的每一本书,如钢铁是怎样炼成的,乘坐过的每一辆车,如2路公共汽车,都是一个对象。,第1章目录,13,6.4 必备知识,2.类类是从日常生活中抽象出来的具有共同特征的实体。辛海阳同学是一个对象,喜羊羊同学也是一个对象,他们都有学号、姓名、出生年月、家庭住址、联系电话,具有上课、做作业、课后活动、休息等行为。从对象的共同特征抽象形成学生,此时,学生就是一个类。任务中Student就是抽象形成的一个
14、类。类可以分为系统类和用户自定义类。系统类存放在Java类库中,用户自定义类是程序员自己定义的类。例如,Student类中用到的Date类、DateFormat类、ParseException类、System类是系统类,不需要定义,直接使用。Student类是用户自定义类,定义后方可使用。类将现实世界中的概念模拟到计算机程序中。类具有封装性、继承性和多态性。,第1章目录,14,6.4.2 属性和方法类包括属性和方法两部分。属性是用于描述对象静态特征的数据项,这种静态特征指对象的结构特征。例如,任务中辛海阳同学的学号、姓名、出生年月、家庭住址、联系电话等数据项,称为辛海阳对象的属性。对象的属性表
15、示对象的状态。有时候,属性在程序设计中也称为成员变量。方法是用于描述对象动态特征的行为,例如,辛海阳对象具有上课、做作业、课后活动、休息等行为。行为表示对象的操作,或具有的功能,因此,对象的行为也称为方法。所以,也可以说,属性和方法是描述对象的两个要素。6.4.3 类与对象的关系类是对对象的抽象描述,是创建对象的模板。对象是类的实例。对象与类的关系就像基本变量与基本数据类型的关系一样。换句话说,可以将类看成数据类型,对象看成这种类型的变量。注意:类是抽象的概念,是一种类型,比如说:“学生”、“公共汽车”、“书”。对象是一个能够看得到、摸得着的具体实体,比如:“辛海阳同学”、“2路公共汽车”、“
16、达芬奇密码”。,第1章目录,6.4 必备知识,15,6.4.4 定义类的语法Java 是面向对象的语言,所有Java程序都以类class为组织单元。一个程序中至少有一个类文件。关键字class定义自定义类的数据类型。1.定义类的格式类的修饰符 class 类名/定义属性部分 属性类型 属性名;/定义方法部分 方法;,6.4 必备知识,例如,Student类的定义格式如下:public class Student/定义属性部分 long identity;/学号String name;/姓名/定义方法部分 public void listen();/方法体,16,2.定义类的步骤定义类分为三个步
17、骤:定义类名、编写类的属性和编写类的方法。定义类名类名是一个名词,采用大小写字母混合的方式,每个单词的首字母大写。类名尽量使用完整单词,避免自己定义缩写。选择的类名应简洁,准确描述定义的类。如学生类的类名为Student。类名不能使用Java关键字;首字符可以是“_”或“$”,但建议不要这样;不能含空格或“.”号。编写类的属性 属性部分的定义与基本数据类型的变量定义相同,第一个单词的首字母小写,其后的单词首字母大写。Student类的部分属性如下:long identity;/学号String name;/姓名编写类的方法方法名是一个动词+名词或代词,采用大小写混合的方式,第一个单词的首字母小
18、写,其后单词的首字母大写。public void listen();/方法体,6.4 必备知识,17,改错:对照上面所讲的步骤,如下的类定义有哪些不对的地方?public class.Book String Book Name;String AuthorName;int page num;boolean isAvailable public void introduce self()System.out.println(BookName);提示:有6个错误。,6.4 必备知识,18,3.类的修饰符通过前面的学习,有的同学已经注意到,在类的定义中,出现了public关键字,在Java中,我们把类
19、似于public的关键字称为修饰符。类的修饰符有public、abstract、final。public称为访问修饰符,声明的类为公共类,可以被任何类引用。如果一个Java源文件中有多个类的定义,必须有一个而且只能有一个类用public修饰,Java源文件名与public类名相同。如果一个类没有用public修饰,则默认为friendly,表示该类只能被同一个包中的类引用。关于包的概念在下一个任务中讲解。abstract表示声明的类为抽象类,不能实例化为对象,同时也说明类中含有抽象方法。参见任务九。final表示声明的类为最终类,不允许有子类,通常是完成一个标准功能。参见任务九。在类的定义中,
20、修饰符public使用较多,要理解掌握。,6.4 必备知识,19,6.4.5 创建一个类的对象有了类之后,接下来就是使用new创建类的一个对象。例如,Student类定义后,用下面的方法创建student对象。Student student=new Student();6.4.6 使用对象使用对象时,常常通过“.”进行操作。1.对属性操作访问对象的属性,采用格式:对象名.属性例如,给类的属性赋值:student.name=辛海阳;,给student对象的属性name赋值,值为辛海阳。获取类的属性值:System.out.println(student.name);,获取到student对象的属
21、性name值,然后在控制台输出。2.使用方法 调用类的方法:对象名.方法名()。例如,student.listen();,调用了student对象的方法。,6.4 必备知识,20,改错:下列类定义有哪些不对的地方?public class 提示:有5个错误。,6.4 必备知识,21,6.4.7 编写一个银行卡类银行卡是日常生活重要组成部分。每张银行卡信息包含账号、持卡人姓名、身份证号码、地址、存款余额。本任务只要求编写一个方法 showCardInfo(),完成存款、取款、查询。当存款操作后,显示原有余额、本次存款数额及最终存款余额;当取款操作时,显示原有余额、今日取款数额及最终存款余额。,6
22、.4 必备知识,图6-3 银行卡类测试运行结果,22,代码如下:package com.task06;public class AccountCard String account;String name;String passportCode;String address;double balance;public void showCardInfo(double cash)/定义AccountCard类的一个行为(或方法)/存款System.out.println(=存款=);System.out.println(您的卡号:+account);System.out.println(您的姓名
23、:+name);System.out.println(原有余额:+balance);System.out.println(现存入:+cash);balance=balance+cash;System.out.println(最终存款余额:+balance);/查询System.out.println(=查询=);System.out.println(您的余额是:+balance);/取款System.out.println(=取款=);System.out.println(您的卡号:+account);System.out.println(您的姓名:+name);System.out.prin
24、tln(原有余额:+balance);System.out.println(现取出:+cash);if(balance-cash)0)balance=balance-cash;System.out.println(最终存款余额:+balance);elseSystem.out.println(取出数额太大!请重新输入。);package com.task06;public class AccountCardTest/定义测试类/*param args*/public static void main(String args)/入口方法AccountCard wang=new AccountCa
25、rd();wang.account=1111111111;wang.name=王朝;wang.address=持卡人地址;wang.balance=1000.8;wang.showCardInfo(1000.5);,6.4 必备知识,23,6.5 动手做一做,一、实训目的掌握类的定义;掌握创建类的对象;掌握使用对象的步骤。二、实训内容1.编写一个音乐类,属性包括音乐名称、音乐类型,其方法实现音乐信息的显示。并编写测试类。2.编写一个手机类,属性包括手机品牌、手机型号,其方法实现手机信息的显示。并编写测试类。三、简要提示参考图6-2 学生信息类图的样式,画出音乐类、手机类的类图。然后,回忆一下类的编写三个步骤:定义类名;编写类的属性;编写类的方法。类名、属性名、方法名命名按照相应的要求。类的框架结构不能写错。四、程序代码参见本教材教学资源。,