收藏 分销(赏)

Java程序设计基础Java小管家系统构建教材全套课件教学教程整本书电子教案.ppt

上传人:w****g 文档编号:8801132 上传时间:2025-03-02 格式:PPT 页数:321 大小:9MB 下载积分:20 金币
下载 相关 举报
Java程序设计基础Java小管家系统构建教材全套课件教学教程整本书电子教案.ppt_第1页
第1页 / 共321页
Java程序设计基础Java小管家系统构建教材全套课件教学教程整本书电子教案.ppt_第2页
第2页 / 共321页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,小管家教你学,Java,第一次课,课程学习目标,输入输出技术,集合技术,数据库访问技术,XML,解析技术,异常处理技术,面向对象程序设计思想,Java,语法基础,GUI,技术,学习方法,相关知识学习,项目实现,任务实现,第一次课要求,兴趣培养,学习能力的广泛定义,心态决定得失,克服浮躁,/*,故事,1,:一个英语系毕业生和贝尔实验室,*,/,内容:,1990,年,几乎是身无分文的王强来到美国,只有,文科教育背景,的他,3,年,竟拿下了计算机硕士学,位,并且成功进入了著名的,贝尔实验室,工作。只接受过文科教育的他要申请计算机硕士课程,这,似乎是一种天方夜谭。“我的对面坐着矜持的洋人教授,那位即将决定我命运的矮胖的计算机系主,任。从那副雅致的老花镜片中,我读出了他多少有些无可奈何的耐心。我知道,他是想让礼貌来,宽慰我驱车,200,英里后疯狂高涨的幻想和在他看来完全没有根基的狂妄。这是一次后来连我自己,都感到惊讶的自我推销。,“,他:我看了你的简历。你是否在简历中忘掉写进什么了?,“,我:(我知道,我的北大英语系,4,年的文科成绩单吓了他老人家一跳),不,,这是认真准备好的。,“,他:可是,请原谅,从你的学历背景中,我完全看不出来你大学的专业和你将试图申请的本系计算机硕士课程,有何联系(他的目光开始咄咄逼人)。,“,我:(胸有成竹,微笑)先生,我今天赶来正是希望当着您的面,清晰地阐述我的所学与我希望踏入的计算机,领域有着怎样的联系。,“,他:(期待的神色)请讲。,“,我:,第一,计算机的运行靠的是计算机程式(,program,),而程式必是以一种程式语言来编写的。我迄今,的工作是语言研究和运用。就语言这一层面而言,汉语、英语以至任何其他的编程语言,我不认为它们有什么本,质上的差别,。对我来说,学习与掌握一门编程语言不过是像学会一门方言一样易如反掌。在我现有的对于语言,本质的深刻认识的基础上,编程语言的掌握和运用根本不会成为什么难题。第二,计算机科学的骨髓是逻辑。我,迄今撰写文学评论方面的各种文章便是逻辑的反复与熟练的运用。对逻辑本质的极高的领悟将把我放置在超出您,许多初涉计算机科学领域的学生们的前面。其三,任何伟大的科学发现都是与 大师们超常的想像力甚至审美能力,分不开的。一个好的程式不仅可以无误地运行,它还应具有可读的逻辑的美学清晰性。我文学方面的素养正可以,充任这一角色,“,他:(摘下眼镜,大笑)精彩!王先生。在我看来,这几点就蛮可以生发成一篇有趣的论文。祝贺你,你被录,取了!”,两年后,王强拿到了计算机硕士学位。,考核方式,项目:,40%,期末考试:,20%,平时表现:,40%,(作业和课堂表现),依照不同情况加分、扣分(对总评分直接有效),前言:,Java,技术的应用领域,课题一 爪哇桌面小管家项目分析,任务,1,爪哇桌面小管家项目分析,项目引入,Java,小管家,为办公室一族解决如下问题,便笺纸漫天飞,寻找客户的联系电话困难,避免成为“月光族”,项目分析:模块划分,通讯录管理,备忘录管理,支出管理,项目分析:模块划分,项目分析:技术选择,选择,java,技术实现该项目的需求,简单:,Java,语法风格简单,没有让人头痛的指针操作,面向对象:,Java,是完全面向对象的语言,分布式:,Java,提供了包容广泛的类库,,Java,应用程序可以像访问本地文件系统那样访问网络资源,健壮:,Java,在编译和运行程序时都要对可能出现的问题进行检查,安全:,Java,语言本身经过两次编译,最终检验和执行字节码,具有更高的安全性,体系结构中立:只要安装了虚拟机,,Java,程序可以在任意的处理器上运行,解释执行:,Java,源程序首先会经过编译器编译成为字节码,多线程:,Java,类库提供,Thread,类,支持多线程的实现,动态:,Java,自身的设计使它适合于一个不断发展的环境,项目分析:简单项目的开发步骤,用户需要做什么?达到什么目的和效果,对于简单的项目,最快确立用户需求的模型就是界面草图,根据用户对模型的评价修改并最终确定最终的系统模型,项目分析:绘制界面草图,备忘录管理,项目分析:绘制界面草图,支出管理,课堂练习,1,绘制通讯录管理界面草图,草图绘制的依据,能够满足用户的所有需求,简单、明确,用户友好,添加、修改、删除、查询通讯录信息,(这些信息包括:姓名、手机、家庭电话、办公电话、,QQ,号码、,EMAIL,邮件地址、其他),项目分析:根据界面草图分析业务流程,备忘录管理,数据查询需求,数据提交需求,项目分析:根据界面草图分析业务流程,备忘录管理,项目分析:根据界面草图分析业务流程,支出管理,数据查询需求,数据查询需求,数据提交需求,项目分析:根据界面草图分析业务流程,支出管理,课堂练习,2,根据你绘制的通讯录管理界面草图分析通讯录的业务操作流程,你的界面设计如何实现通讯录的各种数据显示和处理需求的?,综合绘制一个业务流程图,项目分析:业务对象分析,备忘录模块,在处理业务的过程中需要用到哪些数据?,项目分析:业务对象分析,支出管理模块,课堂练习,3,根据通讯录的业务操作流程分析通讯录模块需要操作的数据对象有哪些?,在你为通讯录设计的业务流程中需要处理哪些数据项目,这些数据有什么特点,有什么关系?,综合绘制通讯录的数据对象结构图,作业,教材思考与练习,日记管理,课题二 了解,Java,语言,任务,2,编写第一个,Java,程序,任务引入,Helloworld,第一次亲密接触,java,在控制台上打印,“,hello world!,”,知识准备:认识,JAVA,开发环境,Java,开发工具包,JDK,1.,提供,Java,程序开发的工具包,2.Java,的编译工具;,3.,提供,Java,程序的运行环境,如虚拟机。,1.0,版本,1.2,版本,1.6,及更高版本,知识准备:认识,JAVA,开发环境,虚拟机,JVM,加载文件,管理内存,执行垃圾收集,知识准备:认识,JAVA,程序执行过程,两次解释的奥秘,安全、跨平台,运行速度相对慢,知识准备:,Java,程序的开发环境,根据具体的项目规模和要求选择开发环境:,1.,文本编辑器:,EditPlus,之类。体积小,需要安装,JDK,,并需要手工编译,java,程序,2.,小型,JAVA,程序编写器:,Jcreater,之类。体积小于,10M,代码编写有提示功能,代码关键字有颜色区别,特别适用初学者,3.,集成开发环境:,Elipse,,,Jbuilder,之类。体积相对比较庞大,该有的都有了,开发环境比较友好。,任务分析:,Java,小程序的基本格式,任务分析:,Java,小程序的基本格式,代码演示:,import,java.lang,.*;,public class,HelloWorld,public static void,main(String,args,),System.out.println(“hello,world!”);,任务实施,建立文件夹,建立,java,文件,编写代码,编译代码,执行代码,调试代码,成功,失败,可能出现的问题:,1,、,cannot resolve symbol,(书写错误),2,、,class,HelloWord,is public,should be declared in,(文件名和类名不匹配),3,、,;expected,(语句缺少分号结束),总结提问,1.java,源文件的后缀是什么?,2.java,字节码文件的后缀是什么?,3.java,字节码文件是什么时候生成的?,4.JCreater,执行的是哪一个文件?,作业,教材中的课后思考与练习:操作题和改错题,课题三 面向对象程序设计思想,任务,3,为小管家设计类,任务引入,为小管家设计出与业务相关的各种对象模型,类,知识准备:认识类和对象,两个相关问题:,1.,给你影响最深刻的一位老师姓什么?是一个什么样的人?,2.,你认为老师是什么?,知识准备:认识类和对象,回答两个相关问题:,对象是具有一定的属性和行为的实体,类是具有相同属性和行为的对象的抽象模型,知识准备:认识类和对象,类和对象的关系:,知识准备:,认识面向对象程序设计思想,用面向对象程序设计方法来描述一个简单的发工资的,过程,:,课堂练习,1,:,描述学生入学如何报到,提示:,涉及到那些人和学校的部门,这些人或者是部门的责任是什么,需要给这些人和部门提供哪些数据,任务分析,备忘录模块操作分析,任务实施:,设计小管家需要的类,备忘录操作类模型,任务分析,通讯录模块操作分析,任务实施:,设计小管家需要的类,备忘录操作的数据模型,任务实施:,设计小管家需要的类,备忘录的操作类模型,课堂练习,2,:,分析支出模块需要的类模型,提示,根据支出模块要处理数据可以得到数据模型类,根据支出模块要完成的操作可以得到支出操作类的内容,知识拓展:创建类,class,类名,类型 变量,1;,类型 变量,N;,类型 方法,1(parameter-list),/,方法体,类型 方法,N(parameter,-list),/,方法体,成员变量(对象属性),成员方法,(对象行为或操作),知识拓展:类的三大特征,封装,继承,多态,你好吗?,我很好,!,黑箱,!,温度,=X,压力,=Y,温度,=A,压力,=B,石墨,金刚石,以多种形态存在的能力称为,多态,总结提问,1.你认为面向对象程序设计思想的本质是什么?,2.类和对象是什么关系?请举一个身边的例子来说明它们的关系。,3.类的三个特征是什么?,作业,教材中的课后思考与练习:分析题,课题三 面向对象程序设计思想,任务,4,实现小管家中类的属性,任务引入,为小管家的两个数据模型类(联系人类和支出数据类)实现属性的定义,知识准备:认识变量,变量的本质,内存,数据,访问,具有,名称,数据类型,容器,存放特定,的,的,知识准备:理解变量的数据类型,变量的数据类型,类型,缺省值,长度,范围,byte,0,8,位,-128 127,short,0,16,位,-32,768 32,767,int,0,32,位,-2,147,483,648 2,147,483,647,long,0,64,位,-9,223,372,036,854,775,808 9,223,372,036,854,775,807,float,0.0,32,位,3.4E-0383.4E+038,double,0.0,64,位,1.7E-3081.7E+308,char,u0000,16,位,u0000 ,uFFFF,boolean,false,1,位,false,、,true,分类,转义字符,含义,特殊字符,如果要在字符串中使用单引号,必须使用转义字符,否则会出错,”,表示一个双引号,必须这样用,表示一个反斜杠,必须这样用,控制字符(非打印字符),r,回车,n,换行,f,走纸换页,t,横向跳格,b,退格,八进制转义序列,ddd,ddd,代表一个,8,进制编码,每一个编码代表一个字符,Unicode,转义字符,uxxxx,xxxx,表示一个,16,进制编码,每一个编码代表一个字符,特殊字符的表达,知识准备:掌握变量的命名规则,第一,不能使用,Java,语法中已经被使用的关键字。,第二,可以以字母、下划线、,$,开始,其余字符可以是字母、数字、,$,和下划线。,变量只能包含两个特殊字符,即下划线,(_),和美元符号,($),变量中绝不能包含空格,1.,变量的名称尽量能够代表所存储数据的实际意义,让人能够“望文生义”,2.,变量名、包名、方法名一般是小写字母开头,类名一般是大写字母开头,知识准备:学会定义变量,语法,数据类型 变量名;,数据类型 变量名,=,初值;,举例,int,x;,int,y=10;,知识准备:理解变量作用域,演示,:,教材案例,task4FieldsDemo.java,变量的有效区域是包含变量定义的最近的一对大括号,变量的使用也是就近原则,课堂练习,1,:,完成教材代码,4-1,的代码调试任务,字符串可以使用,String,类中定义的方法吗?,String,类提供了哪些常用方法?,字符串对象如何使用这些方法?,知识准备:理解字符串变量用法,创建字符串:,String name=,“,magy,”;,String,msg,=new String(,“,Error,);,字符串的本质就是一个,String,类对象,思考,任务分析,回顾支出数据类和联系人类的结构,任务实施:,实现类的属性定义,实现支出数据类和联系人类的属性定义,完成教材代码,4-2,和,4-3,的代码设计与调试,知识拓展:理解,包,从形式上看就是文件夹,在,Java,中,包主要有以下用途:,包允许将类组合成较小的单元,有助于避免命名冲突,包允许在更广的范围内保护类、数据和方法,包可以是类、接口和子包的集合,知识拓展:使用包,创建包,package mypackage;,导入包,import mypackage;,包名,内容,java.lang,包含,java,语言的核心类,如字符串类,String,、提供常用数据运算方法的,Math,类、各种数据类型封装类如,Integer,Double,Float,等、,System,类、,Thread,类等,java.awt,包含构成抽象窗口工具集的多个类,这些类用来构建和管理用户图形界面,java.sql,包含数据库操作的常用类,包含处理网络通讯的各种类,java.io,包含处理输入和输出的各种类,例如读写文件需要的类,java.util,包含各种实用工具类,如日期类、格式控制类、随机数类等,常用资源包,作业,教材中的课后思考与练习,课题三 面向对象程序设计思想,任务,5,实现小管家中类的方法,任务引入,为小管家的业务操作类实现方法的定义,知识准备:认识方法,方法的本质,如果变量是一个具有特定名称,用来存储数据的区域,方法就是具有特定名称,用来存储操作过程的区域,知识准备:使用方法,class Test,public,int,add(int,a,int,b),int,result=,a+b,;,return result;,public static void,main(String,args,),Test,atest,=new Test();,int,x=10,y=20;,int,r=,atest.add(x,y,);,System.out.println(x+y,+=+r);,定义一个方法,创建一个,Test,类型的对象,调用,add,方法,知识准备:,静态方法和非静态方法,对比,静态,非静态,public static void add(),public void add(),申明的形式上,对象名,.add(),类名,.add(),调用的形式上,不可以使用,this,引用,可以使用,this,This,引用的使用权,方法里面不可以调用,同一个类里面的非静态的成员,可以调用静态,的成员方法,兄弟方法之间的关系,所以,一般提供公共服务的方法,与具体对象无关的方法一般被定义,成静态的,同样一般公共的数据被定义成静态的变量例如,参加比赛,的选手的数量是与选手信息无关的公共信息,可以被定义为静态变量,,而选手的姓名是与具体的选手对象相关的信息,应该被定义为非静态,的普通变量,打印参赛选手的数量应该是一个静态的行为,而打印选,手的成绩就是非静态的行为,课堂训练:,学会定义非静态的方法和属性,完成教材代码,5-2,的代码调试,知识准备:理解方法的重载,以下哪一种对方法的处理更加友好?,在一个类的内部,多个方法具有相同的方法名,不同的参数列表的现象叫做方法的重载。,对两个整数做加法运算使用方法,intadd(1,2),对两个浮点数做加法运算使用方法,floatadd(1.1,2.1),对两个整数做加法运算使用方法,add(1,2),对两个浮点数做加法运算使用方法,add(1.1,2.1),课堂训练:,学会使用方法的重载,完成教材代码,5-3,的调试任务,知识准备:理解构造方法,本质是一个方法,创建一个新对象时调用的方法,如果类中没有定义构造方法,系统会默认创建一个无参数的构造方法,要定义构造方法,应该遵循如下规则,(,1,)方法名与类名相同,(,2,)没有返回类型,Class Boy,int,age;,public,Boy()age,=0;,public,Boy(int,age)this.age,=age;,课堂训练:,学会定义构造方法,完成教材代码,5-4,的调试任务,知识准备:理解,get/set访问器,一种更加安全的属性访问方式,利用方法来控制属性的值,(,1,),get,方法用来访问私有属性值,(,2,),set,方法用来修改私有属性值,private,int,age;,public void,setAge(int,age)this.age,=age;,public,int,getAge()return,this.age,;,课堂训练:,学会使用,get/set,方法,完成教材代码,5-5,的调试任务,任务分析,回顾小管家有哪些业务操作类,类名,工作模块,功能,AddressBookBean,通讯录管理,是,“,联系人,”,的数据模型,用来在通讯录管理中存储联系人的信息,AccountBean,支出管理,是,“,每日支出信息,”,的数据模型用来在支出管理中存储每日支出信息,Notices,备忘录管理,是备忘录模块的业务操作类,用来处理所有备忘录管理的业务需求,AddressBooks,通讯录管理,是通讯录模块的业务操作类,用来处理所有通讯录管理的业务需求,Accounts,支出管理,是支出模块的业务操作类,用来处理所有支出管理的业务需求,为这两个类添加构造方法和属性操作方法,为这两个类添加构造方法和属性操作方法,为这三个类添加业务操作方法,任务分析,备忘信息操作类的方法分析,任务分析,通讯录操作类的方法分析,任务分析,支出操作类的方法分析,任务实施:,实现类的方法定义,完成教材代码,5-6,到,5-10,的代码设计与调,试,知识拓展:权限修饰符,类的成员的访问权限控制,1.,变量,a,和方法,funcA,没有使用任何权限修饰符,将会采用默认权限,2.,变量,b,和方法,funcB,是私有权限,3.,变量,c,和方法,funcC,是受保护权限,4.,变量,d,和方法,funcD,是公共权限,funcD,方法中可以访问变量,a,、,b,、,c,、,d,2.,在,Demo2,类的,funcA2,方法中可以使用,new Demo1().a,这种方式访问,Demo1,中,public,成员,a,3.Demo3,的,funcA3,方法可以借助,new Demo1().d,访问,Demo1,中的,public,成员,d,4.Demo1,的子类可以继承该类中的公共和,protected,的成员,知识拓展:权限修饰符,类的权限控制:,公共类和默认权限类。如下:,public class xxx/xxx,就是公共类,class,yyy,/,yyy,就是默认权限类,如果,Demo3,想要访问,Demo1,,,Demo1,必须是公共的,如果,Demo2,想要访问,Demo1,,,Demo1,可以不是公共的,知识拓展:权限修饰符,内部类:可以访问外部类的任何成员,package task5;,public class A,private void test1()System.out.println(test1);,private class B,void test2(),test1();,public static void,main(String,args,),new,A().new,B().test2();,作业,教材中的课后思考与练习,课题四,Java,基础语法,任务,6,每日支出的简单统计任务,任务引入,小管家需要统计某月支出数据:,1,获得某年某月单项支出的总额:衣、食、住、行、,交际、爱好、其他等项目的支出总额。,2,计算出所有这些开支的总支出额。,3,计算每一单项开支占总支出额的百分比。,4,当绘制饼图的时候,我们需要了解:如果用一个,360,度圆周表示所有开支的比重,那么每一项开,支在一个,360,度的圆周中跨度是多少?,衣,食,住,行,交际,爱好,其他,需要运算,知识准备:了解基本运算符,赋值运算符,int,a=20000;,int,p,q,r,s,;,p=q=r=s=a;,知识准备:了解基本运算符,算术运算符号,运算符,含义,示例,求值,+,加,c=a+b,-,减,c=a-b,*,乘,c=a*b,/,除,c=a/b,%,取模,c=a%b,+,递增,a+,-,递减,b-,+=,相加并赋值,c +=a,c=c+a,-=,相乘并赋值,c *=a,c=c*a,/=,相除并赋值,c /=a,c=c/a,%=,取模并赋值,c%=a,c=c%a,-,取负数,c=-a,知识准备:了解基本运算符,比较运算符号,运算符,含义,示例,=,等于,a=b,!=,不等于,a!=b,大于,ab,小于,a=,大于或等于,a=b,=,小于或等于,a,右移,b=a 2,右移,左边空出的位以,0,填充,b=a 2,左移,b=a 1,知识准备:了解基本运算符,三元运算符,true,false,条件,?,表达式,1 :,表达式,2,class,TernaryOp,public static void,main(String,args),int,salary,daysPresent,=30;,salary=,daysPresent,=20?2000:3000;,System.out.println,(,您本月薪资为,$,+salary);,课堂讨论,分析如下代码,1import,java.util.Date,;,2class Demo,3,4 public static void,main(String,args,),5 ,6 String,yearStr,=”;/,7,int,year;,8 Date today=new Date();,year=(,yearStr,=”)?(today.getYear()+1900),:,Integer.parseInt(yearStr,);,10,System.out.println,(,年份是,+year);,11 ,12,把一句改为,String,yearStr,=”1999”,知识补充:数据类型封装类,整数的转换类:,Integer,返回值,方法描述,int,intValue,(),得到对应的整数数值,long,longValue,(),得到对应的长整数数值,int,parseInt(String,s),(静态方法),将字符串,s,转换为整数数值,short,shortValue,(),得到对应的短整数数值,知识补充:数据类型封装类,整数的转换类:,Double,返回值,方法描述,double,doubleValue,(),得到对应的整数浮点数值,Double,valueOf(String,s)(,静态方法),将字符串,s,转换为浮点数值,double,parseDouble(String,s),(静态方法),将字符串,s,转换为浮点数值,知识补充:数据类型封装类,整数的转换类:,Float,返回值,方法描述,float,floatValue,(),得到对应的整数浮点数值,float,parseFloat(String,s),(静态方法),将字符串,s,转换为浮点数值,Float,valueOf(String,s),(静态方法),将字符串,s,转换为浮点数的对象,知识补充:数据类型封装类,整数的转换类:,Charactor,返回值,方法描述,char,charValue,(),得到对应的字符值,boolean,isDigit(char,ch,)(,静态方法)判断字符,ch,是否是数字,boolean,isLetter(char,ch,)(,静态方法)判断字符,ch,是否是字母,boolean,isLowerCase(char,ch,),(,静态方法)判断字符,ch,是否是小写,boolean,isUpperCase(char,ch,),(,静态方法)判断字符,ch,是否是大写,boolean,isWhitespace(char,ch,),(,静态方法)判断字符,ch,是否是空格,boolean,toLowerCase(char,ch,),(,静态方法),将字,符,ch,转换为小写,boolean,toUpperCase(char,ch,),(,静态方法),将字,符,ch,转换为大写,知识补充:数据类型封装类,整数的转换类:,Boolean,返回值,方法描述,boolean,booleanValue,(),得到对应的布尔数值,Boolean,valueOf(String,s),(,静态方法)将字符串,s,转换为布尔类型的对象,将,“6.9f”,转换成为单精度浮点数,;,将,“2.13”,转换为双精度浮点数,;,将,“100”,转换为整数,;,得到字符串,“hello”,中的,e;,课堂讨论,回答如下问题,任务分析,假设衣、食、住、行、交际、爱好、其他等项目的支出总额并分别存储在变量:,clothes,food,house,walk,friends,hobbys,other,中,两个算法问题,如何计算各项支出占总支出的百分比,如何计算每一项支出总额在饼图中的跨度,任务实施:,实现类的方法定义,完成教材代码,6-4,的代码设计与调试,知识拓展:数值格式控制方法,需要使用的资源:,java.text.DecimalFormat,import,java.text.DecimalFormat;/本类中要使用的资源类,public class,DataFormatDemo,public static void,main(String,args,),DecimalFormat,fm=new DecimalFormat(0.0);,float dot=0.23568f;,String per=,fm.format(dot,*100)+%;,System.out.println(per,);,该类的用法,作业,教材中的课后思考与练习,课题四,Java,基础语法,任务,7,使用数组完成支出统计任务,任务引入,对于衣、食、住、行、交际、爱好、其他等项目,要完成相同的操作:,1,计算每一单项开支占总支出额的百分比。,2,计算每一项开支在一个,360,度的圆周中跨度是多少?,衣,食,住,行,交际,爱好,其他,需要重复计算,知识准备:了解数组,数组和变量一样是容器,变量存放单个数据,数组存放多个数据,10,a,int,a=10;,一个萝卜一个坑,变量,数组,1,b,int,b=1,2,3,4;,一块田里种多个萝卜,2,3,4,知识准备:使用数组,数组的申明和实例化,通用的一维数组的声明格式是:,type,var,-name;,举例:,int,array_int,;,String,str,;,利用,new,来为数组型变量分配内存空间,array_int,=new int10;,str,=new String10;,两步可以合并,如:,int,String,str,=new String10;,申明只是表达该数组,的合法地位和身份,,内存中并没有真正分,配空间用来做数据的,存储,对数组进行,new,的操作,之后,该数组才真正,的存在了,也就是,内存中分配了指定大小,的空间用于数据存储,知识准备:使用数组,数组中成员的访问:使用下标,1,b,int,b=1,2,3,4;,2,3,4,b0,b1,b2,b3,int,C=new int3;,C0=1;,C1=2;,C2=3;,System.out.println(C0);,System.out.println(C1);,System.out.println(C2);,知识补充:数组也可以存储对象,数组可以存储对象,例如有一个学生类,Student,如果我们需要定义一个数组存储,2,个学生,需要这样做:,Student class1=new Student2;,class10=new Student();,class11=new Student();,普通数据类型的成员,是不需要这个步骤的,为什么?,课堂练习,完成教材代码,7-1,练习中的发现:数组的重复操作,循环结构,知识准备:,循环语句的基本结构,for,循环,for(,变量初始化,;,条件,;,递增或递减变量的值,),语句组,;,for,循环,例如,for(,次数为,1;,如果次数,=90),打印,A;,else if(,成绩,=80),打印,B;,else if(,成绩,=60),打印,C;,else,打印,D;,课堂练习,完成教材代码,8-1,知识准备:条件语句之,if,语句,switch,语句的基本结构,switch(,用户按下的键值,),case 1:,/,播放中文录音服务,;,break;,case 2:,/,播放广东话录音服务,;,break;,case 3:,/,播放英文录音服务,;,break;,default:,/,提示用户输入错误,;,课堂练习,完成教材代码,8-2,任务分析,根据得到的星期数,得到中文表达方式的思路,任务实施:完成界面日期显示任务,完成教材代码,8-3,的调试和运行,知识拓展,常用工具类,java.lang.Math,包含常用的数学运算函数,Math.PI,得到,的值,Math.pow(4,2),得到,4,的,2,次方,java.util.Random,包含随机数的处理方法,new Random().nextInt(99);,产生,1100,之间的整数,课堂练习,完成教材代码,8-4,知识拓展,break,和,continue,一般和循环语句结合使用,Break,跳出循环,知识拓展,break,和,continue,一般和循环语句结合使用,Continue,是跳出本次循环,课堂练习,完成教材代码,8-5,知识拓展,关于,ascii,码,ASCII,码(,American Standard Code for Information Interchange,的缩写),ASCII,码划分为两个集合:,128,个字符的标准,ASCII,码和附加的,128,个字符的扩充,ASCII,码,具体编码见教材,知识拓展,数字之间的强制转换问题,Java,的语法系统默认支持一个数字从低精度向高精度转换,精度从高到低排行榜,double,float,long,int,short,char,作业,教材中的课后思考与练习,课题五,Java,处理输入输出及异常处理方法,任务,9,从控制台接受每日支出的数据,任务引入,小管家需要从用户那里获得如下联系方式:,备忘信息,联系人的联系方式,支出数据,在还没有学习图形化界面之前,我们从控制台获得用户的输入,任务引入,以支出管理为例,本次课我们完成如下任务:,1.,要求用户在控制台上输入:衣、食、住、行、交际、爱好、其它共七项开支的数量。,2.,把接受到的这七个数据存储到一个浮点类型的数组,Outputs,中。,3.,将所有开销的总额打印到屏幕上。,知识准备:了解,java,处理输入输出的方式,知识准备:流的分类,输入字节流,知识准备:流的分类,输出字节流,知识准备:流的分类,输入字符流,知识准备:流的分类,输出字符流,知识准备:流的实现步骤,明确要操作的设备类型:控制台?文件?数组?,明确选择什么样的流:根据操作的设备和要求选择最合适的流,创建这个流的对象:要指定设备的位置和选择一些操作方式,使用这个流对象:读 或者 写,关闭流对象:处理完毕,你要喝啥,用杯子、吸管,瓶子、勺子?碗?,拿饮料,配置饮器,喝饮料,把饮料倒掉完毕,知识准备:从控制台输入的例子,InputStream,in1=,System.in,;,InputStreamReader,in2=new InputStreamReader(in1);,BufferedReader,in3=new BufferedReader(in2);,/,接受一个姓名看看,System.out.println,(,请输入您的姓名,);,String name=in3.readLine();/,读一行,System.out.println(name,);,如果要求输入数字格式的内容怎么办?,课堂练习,完成教材代码,9-1,任务分析,本次任务的处理流程,任务实施:完成支出数据的输入,完成教材代码,9-2,的调试和运行,作业,教材中的课后思考与练习,课题五,Java,处理输入输出及异常处理方法,任务,10,处理数据输入的错误,任务引入:一个遗留问题,任务,9,的输入格式问题,中断,本次课要求处理上图中出现的异常,知识准备,了解异常类,所有异常类型都是,内置类,Throwable,的子类,用于,Java,运行时系统,来显示与运行时系,统本身有关的错误,用于用户程序可能,捕获的异常,也是用来创建用户异常类型子类的类。,Error,类对象由,Java,虚拟机生成并抛出;,Exception,类对象由应用程序处理或抛出。,知识准备,了解异常类,异常,说明,RuntimeException,java.lang,包中,多数异常的基类,ArithmeticException,算术错误,如除以,0,IllegalArgumentException,方法收到非法参数,ArrayIndexOutOfBoundsException,数组下标出界,NullPointerException,试图访问,null,对象引用,SecurityException,试图违反安全性,ClassNotFoundException,不能加载请求的类,知识准备,了解异常类,异常,说明,AWTException,AWT,中的异常,IOException,I/O,异常的根类,FileNotFoundException,不能找到文件,EOFException,文件结束,IllegalAccessException,对类的访问被拒绝,NoSuchMethodException,请求的方法不存在,InterruptedException,线程中断,知识准备,异常处理模型,由五个关键字,try,、,catch,、,throw,、,throws,和,finally,处理。,Java,中可用于处理异常的两种方式:,自行处理,:可能引发异常的语句封入在,try,块内,而处理异常的相应语句则封入在,catch,块内。,回避异常,:在方法声明中包含,throws,子句,通知潜在调用者,如果发生了异常,必须由调用者处理。,课堂演示:,try-catch,处理异常,public class,ExceptionDemo,public static void,main(String,args,),try ,int,c=calculate(9,0);,System.out.println(c,);,catch(Exception e),System.err.println,(,发生异常:,+,e.toString,();,e.printStackTrace,();,static,int,calculate(int,a,int,b),int,c=a/b;return c;,调用函数,calculate,,将引发一个异常,在,catch,块中处理异常,输出,结果,课堂练习,完成教材代码,10-1,知识准备:多个,catch,块,单个代码片段可能会引起多个错误。,可提供多个,catch,块,分别处理各种异常类型,。,.,try,catch(ArrayIndexOutOfBoundsException,e),catch(Exception,e),.,ArrayIndexOutOfBoundsException,类为,Exception,类的子类,但是如果异常,属于,Arr
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服