Java面向对象程序开发及实战-全套课件_第1页
Java面向对象程序开发及实战-全套课件_第2页
Java面向对象程序开发及实战-全套课件_第3页
Java面向对象程序开发及实战-全套课件_第4页
Java面向对象程序开发及实战-全套课件_第5页
已阅读5页,还剩420页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

初识Java语言

1.初识Java.pptx2.变量和数据类型.pptx3.选择结构.pptx4.循环结构.pptx5.多重循环及程序调试.pptx6.一维数据及典型应用.pptx7.二维数组.pptx8.项目实战-吃货联盟订餐系统.pptx9.认识类与对象.pptx10.方法与方法重载.pptx11.封装与继承.pptx12.方法重写与多态.pptx13.项目实战-汽车租赁系统.pptx14.抽象类和接口.pptx15.异常.pptx16.项目实战-QuickHit.pptx线上线下平台预习2/27了解Java虚拟机与跨平台原理熟练掌握安装、配置JDK开发环境熟练掌握使用记事本开发Java程序理解Java编译原理会使用MyEclipse开发Java程序本课目标3/27为什么学习Java4/27Java可以做什么客户端银行软件、商场结算软件浏览器京东商城、淘宝网、易趣网移动端AndroidAPP高速运算和存储大数据开发

为什么学习Java5/27编写程序的工具就是计算机语言,Java就是多种语言中的一种程序与Java6/27Java是SunMicrosystems于1995年推出的高级编程语言JamesGoslingJava的产生7/27Java发展史8/27Java平台的体系结构Java技术平台9/27开发环境搭建与配置10/27演示:配置环境变量1、编写源程序2、编译源程序3、运行开发Java程序11/27使用记事本开发Java程序12/27演示示例1:使用记事本开发Java程序Java虚拟机与跨平台原理13/27Java程序结构1、类名与文件名完全一样,首字母大写2、main()程序入口,四要素必不可少3、System.out.println()从控制台输出信息,S大写4、{和}一一对应,缺一不可publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!!!");}}注意14/27System.out.print();System.out.println();System.out.print();使用\n转义符如何换行输出信息?从控制台输出信息问题分析15/27演示示例2:从控制台输出信息

/**HelloWorld.java*2017-10-9*第一个Java程序*/publicclassHelloWorld{ publicstaticvoidmain(String[]args){ //输出消息到控制台

System.out.println("HelloWorld!!!");

}}Java程序的注释单行注释以“//”开始多行注释以“/*”开头,以“*/”结尾JavaDoc注释以“/**”开头,以“*/”结尾16/27演示示例3:为程序添加注释Java编码规范publicclasshelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!!!);}}指出以下编码中的不规范之处单行注释以“//”开始多行注释以“/*”开头,以“*/”结尾JavaDoc注释以“/**”开头,以“*/”结尾17/27编码规范的必要性基本规则专业化123Java编码规范18/27IDE集成开发环境(IDE)将程序开发环境和程序调试环境集合在一起,方便程序员开发软件MyEclipse、Eclipse安装MyEclipse下载、安装MyEclipse快捷键提供下载资料19/27使用MyEclipse开发Java程序演示示例4:使用MyEclipse开发Java程序20/27包资源管理器用包组织Java源文件,类似于文件夹选择菜单“Window→ShowView→PackageExplorer”打开src目录:存放包和源文件JRE系统库目录:存放程序运行必须的系统库文件Java项目组织结构2-121/27导航器类似于Windows中的资源管理器选择菜单“Window→ShowView→Navigator”bin目录:存放可执行的字节码文件

src目录:存放Java源文件Java项目组织结构2-222/27使用API帮助文档是一种良好的习惯JavaAPI帮助文档

演示:使用JDK帮助文档23/27编译将源文件(.java)转换成字节码文件(.class)的过程称为编译反编译将字节码文件(.class)转换回源文件(.java)的过程称为反编译Jad、FrontEnd使用Java反编译工具演示示例5:使用反编译工具24/27简述使用记事本开发Java程序的步骤简述Java程序运行过程简述Java编译原理如何在控制台输出一条信息?简述使用MyEclipse开发Java程序的步骤总结25/27问题及作业集中问题&课后作业26/27扫我有更多精彩课程呦

变量和数据类型

线上线下平台预习29/32*/27掌握标识符和关键字掌握变量和常量的使用了解Java中的数据类型掌握数据类型转换本课目标30/321000*(1+5%)内存

1000变量:一个数据存储空间的表示98.76不同数据存入具有不同内存地址的空间,相互独立已经将数据存入内存,但是:怎么找到存入的数据?在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?1050变量2-131/32*/27房间

房间名字房间类型入住的客人变量

变量名

变量类型

变量值内存地址不好记,怎么办?通过变量名可以简单快速地找到数据变量2-232/32字、下、美、人、数、骆驼有意义不能使用关键字,如public、classprincipalmarks_3$lastname123ratediscount%zipcode变量命名规则33/32*/27数据属于不同类别非洲ThequickbrownfoxTRUE数据非数值数值整型非整型9002.129999/12/20032.175123陈扬char非数值数值整型int……floatdouble浮点型String数据类型booleanString不是基本数据类型,是引用数据类型,它是Java提供的一个类Java常用数据类型34/32*/27数据类型大小取值范围byte1字节8位-128~+127int4字节32位-2147483648(-231)~+2147483647(231-1)short2字节16位-32768(-215)~+32767(+215-1)long8字节64位-263~+263-1float4字节32位浮点数1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double8字节64位浮点数4.9E-324~1.7E+308,-4.9E-324~-1.7E+308数据类型说明35/32第一步:声明变量,根据数据类型在内存申请空间第二步:赋值,即“将数据存储至对应的内存空间”第一步和第二步可以合并第三步:使用变量,即“取出数据使用”

数据类型变量名;intmoney;变量名=数值;money=1000;数据类型变量名=数值;intmoney=1000;变量声明及使用36/32数据类型举例*/27使用变量完成如下操作输出Java课考试最高分:98.5输出最高分学员姓名:张三输出最高分学员性别:男提示:字符串的连接使用“+”37/32演示示例1:不同类型变量存取*/27需求说明使用变量存储数据,实现个人简历信息的输出练习1:输出个人简历38/32*/27finalintNUM=10;finaldoublePI=3.14;intr=2; doublearea=PI*r*r;在程序运行中,其值不能改变的量如何表示?优点:比较安全推荐做法:(1)常量名通常大写(2)不同字符使用下划线分隔(3)只能被赋值一次,通常定义时即对其初始化常量39/32演示示例2:常量的使用问题*/27在程序运行中,如何接收用户键盘输入的值?使用Scanner第一步:导入Scanner类第二步:创建Scanner对象第三步:获得键盘输入的数据importjava.util.*;Scannerinput=newScanner(System.in);intnow=input.nextInt();Scanner的使用40/32演示示例3:Scanner的使用问题*/27需求说明使用Scanner类获取键盘输入的会员卡号,并将该数据存储在变量中,输出这个变量的信息练习2:输入并显示会员卡号41/32*/27某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?

doublefirstAvg=81.29;//第一次平均分

doublesecondAvg;//第二次平均分

intrise=2;secondAvg=firstAvg+rise;System.out.println("第二次平均分是:"+secondAvg);自动类型转换42/32演示示例4:类型转换*/27规则1:如果一个操作数为double型,则整个表达式可提升为double型规则2:满足自动类型转换的条件两种类型要兼容数值类型(整型和浮点型)互相兼容目标类型大于源类型:例如:double型大于int型自动类型转换规则43/32*/27intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额

intb=(int)10.2;doublea=10;intc=(int)a;去年Apple笔记本所占市场份额是20,今年增长市场份额是9.8,求今年所占份额?强制类型转换规则44/32*/27学员王浩的Java成绩是80分,学员张萌的Java成绩与王浩的相同,输出张萌的成绩赋值运算符变量名=表达式;表达式就是符号(如加号、减号)与操作数(如b,3等)的组合45/32*/27如何借助变量以及赋值运算符实现两个数据的交换?intnum1=8;intnum2=9;_____________________赋值运算符的应用46/32演示示例5:实现两个数据交换*/27基本的算术运算复合算术运算符+、-、*、/、%、++、--+=、-=、*=、/=、%=算数运算符2-147/32

算数运算符2-2

intnum1=5;intnum2=2;inta=num1%num2;intb=num1/num2;System.out.println(num1+"%"+num2+"="+a);System.out.println(num1+"/"+num2+"="+b);num1++;num2--;System.out.println("num1="+num1);System.out.println("num2="+num2);5%2=15/2=2下面代码片断的输出结果是什么?输出num1=6num2=1输出48/32

练习3:求四位会员卡号之和

*/27需求说明键盘输入四位数字的会员卡号使用“/”和“%”运算符分解获得会员卡各个位上的数字将各个位上数字求和49/32=为赋值运算符,==为等于运算符关系表达式的结果为布尔值>、<、>=、<=运算符的优先级别高于==、!=>、<、>=、<=运算符只支持数值类型的数据比较运算符含义范例结果==等于5==6false!=不等于5!=6true>大于5>6false<小于5<6true>=大于等于5>=6false<=小于等于5<=6true关系运算符50/32注意逻辑运算符如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;优先级别

!>&&>||运算符含义运算规则&&短路与两个操作数都是true,结果才是true||短路或两个操作数一个是true,结果就是true!非操作数为true,结果为false操作数为false,结果为true51/32

逻辑运算符

intx=8;inty=9;System.out.println((++x==y)&&(++x!=y));System.out.println(x);true10intx=8;inty=9;System.out.println((++x!=y)&&(++x==y));System.out.println(x);false9课下思考:以上代码中的&&变为||,结果如何?下面代码的运行结果是?52/32intmin;min=5<7?5:7;System.out.println(min);min=10<7?10:7;System.out.println(min);也称为三目(三元)运算符条件运算符53/32演示示例6:判断是否为偶数需求说明根据分解后的数字之和,判断用户是否中奖。如果数字之和大于20,则中奖练习4:判断是否中奖54/32单目运算符包括!

++

--,优先级别高优先级别最低的是赋值运算符可以通过()控制表达式的运算顺序,()优先级最高从右向左结合性的只有赋值运算符、三目运算符和单目运算符算术运算符>关系运算符>逻辑运算符运算符优先级55/32*/27变量的概念和使用数据类型转换包括自动类型转换和强制类型转换Scanner类可以从键盘获取输入的信息赋值运算符、算术运算符、关系运算符、逻辑运算符总结56/32问题及作业集中问题&课后作业57/32扫我有更多精彩课程呦

选择结构

线上线下平台预习60/26掌握if分支结构掌握switch分支结构本课目标61/26对学员的考试成绩评测。要求根据不同学员成绩,给予不同评测结果,评测规则如下成绩>=80:良好成绩>=60:中等成绩<60:差为什么学习流程控制62/26流程控制用来控制程序中各语句的执行顺序顺序选择什么是流程控制63/26张浩Java成绩大于90分,老师奖励他iPhone6s

,该怎么做呢?if(条件){

//代码块}if选择结构是根据条件判断结果选择不同的处理结果必须是布尔值基本的if选择结构64/26演示示例1:基本if的使用逐步解决指定问题的步骤和方法的一种图形化表示方法流程图65/26张浩Java成绩大于90分,并且音乐成绩大于80分时,或者Java成绩等于100分,音乐成绩大于70分时,老师奖励他,该怎么做呢?

(1)使用if(2)怎样把多个条件连接起来?使用复杂条件的if选择结构66/26分析使用逻辑运算符演示示例2:复杂条件下的if选择结构结合运算符的优先级编写条件最高的优先级:()最低的优先级:=优先级:!>算术运算符>关系运算符>&&>||复杂条件使用括号提高可读性使用复杂条件的if选择结构67/26如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s

否则老师就罚他蹲马步使用if-else选择结构实现if(score>90){ System.out.println("老师说:不错,奖励一个iPhone6s!");}if(score<=90){

System.out.println(“老师说:惩罚蹲5分钟马步!");}使用if-else选择结构68/26演示示例3:使用if-else结构if(条件){

//代码块1

}else{//代码块2}只有一条语句时,建议不省略{}使用if-else选择结构69/26对学员的考试成绩评测成绩>=80:良好成绩>=60:中等成绩<60:差使用多重if选择结构将成绩分成几个连续区间判断单个if选择结构无法完成多个if选择结构麻烦且效率低为什么使用多重if选择结构分析70/26

if(成绩>=80){

//代码块1

}

elseif(成绩>=60){

//代码块2

}

else{

//代码块3

}可以有多个可以省略真假真假成绩>=80成绩>=60代码块1代码块2代码块3什么是多重if选择结构71/26演示示例4:使用多重if实现考试成绩评测多重if选择结构中各个条件的顺序可以任意排列吗?使用多重if选择语句处理问题时需要注意顺序多重if选择结构注意问题72/26学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组提示:字符串的比较使用equals()如:嵌套if选择结构73/26sex.equals("男");

if(条件1){

if(条件2){

代码块1

}else{

代码块2

}}else{

代码块3}嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性嵌套if选择结构74/26演示示例5:使用嵌套if选择结构需求说明抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员产生随机数(0~9)的方法如下练习1:实现幸运抽奖提示75/26

intrandom=(int)(Math.random()*10);解决方法使用多重if选择结构实现使用switch选择结构解决韩嫣参加计算机编程大赛如果第一名,参加麻省理工大学组织的1个月夏令营如果第二名,奖励惠普笔记本电脑一部如果第三名,奖励移动硬盘一个否则,不给任何奖励缺点:结构复杂,啰嗦特点:条件为等值判断为什么使用switch选择结构76/26演示示例6:多重if、switch解决等值判断问题switch(表达式){case常量1:

语句; break;case常量2:

语句; break;

… default:

语句;}int、short、byte、char、枚举类型、Stringswitch选择结构语法77/26

intmingCi=1;switch(mingCi){ case1:System.out.println("参加麻省理工大学组织的1个月夏令营");

case2:

System.out.println("奖励惠普笔记本电脑一部");

case3:

System.out.println("奖励移动硬盘一个");

default:

System.out.println("没有任何奖励");

}如果需要每个case执行完后跳出,在每个case后不要忘记写break;常见错误178/26intmingCi=1;switch(mingCi){case1:System.out.println("参加麻省理工大学组织的1个月夏令营");

case2:

System.out.println("奖励惠普笔记本电脑一部");

case2:

System.out.println("奖励移动硬盘一个");

default:

System.out.println("没有任何奖励");}常见错误279/26Case后的常量值不能相同intmingCi=6;switch(mingCi){default:System.out.println("没有任何奖励");

case1:

System.out.println("参加麻省理工大学组织的1个月夏令营");

case2:

System.out.println("奖励惠普笔记本电脑一部");

case3:

System.out.println("奖励移动硬盘一个");}default块顺序可以变动,但要注意其执行顺序。通常,default块放在末尾,也可以省略常见错误380/26相同点不同点switch选择结构多重if选择结构都是用来处理多分支条件的结构只能处理等值条件判断的情况没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况switch与多重if81/26总结if选择结构,包括以下形式基本if选择结构:可以处理单一或组合条件的情况if-else选择结构:可以处理简单的条件分支情况多重if选择结构:可以处理分段的条件分支情况嵌套if选择结构:可以处理复杂的条件分支情况switch选择结构多重分支并且条件判断是等值判断的情况82/26问题及作业集中问题&课后作业83/26扫我有更多精彩课程呦

循环结构

线上线下平台预习86/25掌握while循环结构掌握do-while循环结构掌握for循环结构理解各种循环结构的适用场景本课目标87/25System.out.println("第1遍写:好好学习,天天向上!");System.out.println(“第2遍写:好好学习,天天向上!");……System.out.println(“第100遍写:好好学习,天天向上!");

100条决定写一万遍“好好学习,天天向上!”,怎么办?张浩Java考试成绩未达到自己的目标。为了表明自己勤奋学习的决心,他决定写一百遍“好好学习,天天向上!”为什么需要循环提问88/25System.out.println("第1遍写:好好学习,天天向上!");System.out.println("第2遍写:好好学习,天天向上!");System.out.println("第3遍写:好好学习,天天向上!");System.out.println("第4遍写:好好学习,天天向上!");……System.out.println("第9999遍写:好好学习,天天向上!");System.out.println("第10000遍写:好好学习,天天向上!");inti=1;while(i<=100

){

System.out.println("第"+i+"遍写:好好学习,天天向上!");

i++;}i<=10000没有使用循环结构

使用while循环为什么需要循环89/25演示示例1:使用循环解决问题为什么需要循环循环结构循环条件循环操作生活中的循环循环结构的特点打印50份试卷10000米赛跑做100道编程题90/25while(循环条件){

循环操作}inti=1;while(i<=100){ System.out.println("第"+i+"遍写:好好学习,天天向上!");

i++;}编码规范:缩进、换行循环操作循环条件真假什么是while循环语法91/25实现打印50份试卷123使用while循环92/25演示示例2:使用while循环打印试卷如何用程序描述下面这个故事呢?老师每天检查张浩的学习任务是否合格,如果不合格,则继续进行。老师给张浩安排的每天的学习任务为:上午阅读教材,学习理论部分,下午上机编程,掌握代码部分使用while循环93/25演示示例3:使用while循环完成学习任务问题do{

循环操作}while(循环条件);while(循环条件){

循环操作}while循环先判断,再执行不适合描述此故事如何用程序讲述下面的故事?经过几天的学习,老师给张浩一道测试题,让他先上机编写程序完成,然后老师检查是否合格。如果不合格,则继续编写……为什么需要do-while循环94/25语法问题do{

循环操作}while(循环条件);循环操作循环条件真假特点:先执行,再判断什么是do-while循环95/25演示示例4:使用do-while循环语法while循环和do-while循环的区别语法不同执行次序不同初始情况不满足循环条件时while循环一次都不会执行do-while循环不管任何情况都至少执行一次do{

循环操作}while(循环条件);while(循环条件){

循环操作}先判断,再执行先执行,再判断比较while和do-while循环96/25inti=0;while(i<100){System.out.println("好好学习!");

i++;}

for(inti=0;i<100;i++){System.out.println("好好学习!");

}

循环次数固定,for比while更简洁回顾问题:输出100次“好好学习!”为什么使用for循环97/25for循环的语法和执行顺序for(

;

;

){

}条件为true循环体被执行for(inti=0;i<100;i++){System.out.println("好好学习!");}

代码规范:格式对齐、代码的缩进

表达式1

表达式2

表达式3

循环操作

参数初始化条件判断更新循环变量什么是for循环123498/25语法循环输入某同学S1结业考试的5门课成绩,并计算平均分如何使用for循环-199/25演示示例5:计算5门课程的平均分输出如图所示加法表如何使用for循环-2100/25演示示例6:输出加法表for(;i<10;i++){System.out.println("这是

"+i);}inti=0;编译错误:变量i没有初始化for循环常见问题1101/25for(inti=0;;i++){System.out.println("这是

"+i);}for循环常见问题2102/25缺少循环条件,死循环for(inti=0;i<10;){System.out.println("这是

"+i);

}i++;for循环常见问题3103/25循环变量不发生变化,会导致死循环for(;;){System.out.println("这是测试");}for循环常见问题4104/25循环中缺少必要的循环控制,会导致死循环需求说明使用while、do-while以及for循环三种编程方式实现:计算100以内(包括100)的偶数之和课后作业105/25到目前为止所学的循环结构有哪些?无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、更新循环变量需要多次重复执行一个或多个任务的问题考虑使用循环来解决总结106/25区别1:语法

区别2:执行顺序while

循环:先判断,再执行do-while循环:先执行,再判断for循环:先判断,再执行区别3:适用情况循环次数确定的情况,通常选用for循环循环次数不确定的情况,通常选用while或do-while循环总结107/25问题及作业集中问题&课后作业108/25扫我有更多精彩课程呦

多重循环及程序调试线上线下平台预习111/25本课目标掌握Java二重循环使用跳转语句控制程序流程掌握程序调试112/25如何使用循环输出如下图形控制行数控制列数外层循环内层循环为什么使用多重循环113/25一个循环体内又包含另一个完整的循环结构while(循环条件1){

//循环操作1

for(循环条件2){

//循环操作2

}}while(循环条件1){

//循环操作1

while(循环条件2){

//循环操作2

}}外层循环内层循环do{//循环操作1

do{

//循环操作2

}while(循环条件2);}while(循环条件1);for(循环条件1){

//循环操作1

for(循环条件2){

//循环操作2

}}什么是多重循环114/25演示示例1:使用双重循环打印图形注意各循环可互相嵌套一般不超过三层外层循环变量变化一次,内层循环变量要变化一遍多重循环的使用115/25使用双重循环输出九九乘法表综合案例116/25演示示例2:输出九九乘法表inti=2;switch(i){case1:System.out.println("星期一");

break;

case2:

System.out.println("星期二");

break;

}//其他语句遇到break,立即跳出switch语句描述4000米长跑比赛回顾break用于switchfor(inti=0;i<10;i++){//跑4000米;}

if(不能坚持)

{break;//退出比赛

}第8圈,快累死了…我要退出…break语句117/25while(…){…………break;…………}改变程序控制流用于do-while、while、for循环中,可跳出循环而执行循环后面的语句跳出当前循环break通常在循环中与条件语句一起使用break语句语法118/25

循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误如何使用break语句119/25演示示例3:使用break语句1.使用循环进行累加,从1到102.判断累加值是否大于203.如果大于20,则跳出循环,并打印当前值1~10之间的整数相加,得到累加值大于20的当前数小结120/25提示现场编程1.通过循环,获得分数大于等于80分的学生人数num2.判断:如果成绩<80,不执行num++,直接进入下一次循环为什么需要continue循环录入Java课的学生成绩,统计分数大于等于80分的学生比例121/25continue:只能用在循环里continue作用:跳过循环体中剩余的语句而执行下一次循环while(…){…………continue;…………}继续下一次循环通常与条件语句一起使用,加速循环什么是continue语句122/25演示示例4:使用continue语句求1~10之间的所有偶数和1、使用循环进行累加,循环的范围是从1至102、判断当前数是否为偶数3、如果为奇数跳过,执行下一个循环,如果为偶数,进行累加小结123/25提示现场编程使用场合break常用于switch结构和循环结构中continue一般用于循环结构中作用(循环结构中)break语句终止某个循环,程序跳转到循环块外的下一条语句continue跳出本次循环,进入下一次循环双重循环亦如此return:结束当前方法的执行并退出,返回到调用该方法的语句处对比break和continue124/25编写程序过程中有时出现错误,但不好发现和定位错误,有没有好的方法呢?通过代码阅读或者加输出语句查找程序错误当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”为什么需要程序调试问题分析125/25当程序出错时,我们也希望能这样程序执行时忽闪一下就运行结束,怎么让程序一步一步运行?程序调试断点:

程序暂停执行的代码行什么是程序调试126/25inti=1;System.out.println("程序调试演示,注意观察i的值:");while(i<5){

System.out.println(i);

i++;}顺序输出1~5这5个数字如何进行程序调试127/25演示示例5:程序调试需求说明程序调试跟踪双重循环输出九九乘法表的过程练习1:输出九九表128/25使用循环输出100、95、90、85.......5提示:可尝试使用for、while、do-while三种循环实现练习2:打印数列129/25从键盘输入一位整数,当输入1~7时,输出“星期一”~“星期日”输入其他数字时,提示用户重新输入练习3:输出星期数130/25使用双重循环根据用户输入的数字,输出如下图形练习4:输出星期数131/25双重循环中,外层循环变量与内层循环变量的关系是什么?在循环中,break的作用是什么?在循环中,continue的作用是什么?如何进行程序调试?总结132/25问题及作业集中问题&课后作业133/25扫我有更多精彩课程呦一维数组及经典应用线上线下平台预习136/33*/22理解数组的作用掌握数组的定义掌握数组的基本使用及常用操作掌握数组常用操作获取最大、最小值数字排序插入数字本课目标137/33*/22intstu1=95;intstu2=89;intstu3=79;intstu4=64;intstu5=76;intstu6=88;……avg=(stu1+stu2+stu3+stu4+stu5…+stu30)/30;30个变量太繁琐Java考试结束后,老师给张浩分配了一项任务,让他计算全班(30人)Java课程考试的平均分不利于数据处理为什么需要数组138/33*/22数组是一个变量,存储相同数据类型的一组数据声明一个变量就是在内存空间划出一块合适的空间声明一个数组就是在内存空间划出一串连续的空间为什么需要数组139/33*/22数组基本要素标识符数组元素元素下标:从0开始元素类型数组长度固定不变,避免数组越界什么是数组140/33*/22下列哪组数据能存储在数组中?数组的类型是什么?“刘星”,“夏雨”,“夏雪”8,98,“c”,2398.1,341.2,34.3数组中的所有元素必须属于相同的数据类型小结141/33*/22使用数组四步走1.声明数组2.分配空间3.赋值4.处理数据int[]a;a=newint[5];a[0]=8;a[0]=a[0]*10;如何使用数组142/33int[]score1;//Java成绩intscore2[];//C#成绩String[]name;//学生姓名声明数组:告诉计算机数据类型是什么数据类型数组名[];数据类型[]数组名;声明数组时不规定数组长度声明数组语法143/33*/22scores=newint[30];avgAge=newint[6];name=newString[30];分配空间:告诉计算机分配几个连续的空间数据类型[]数组名=new数据类型[大小];声明数组并分配空间数组元素根据类型不同,有不同的初始值分配空间144/33语法*/22scores[0]=89;scores[1]=79;scores[2]=76;……赋值:向分配的格子里放数据太麻烦!能不能一起赋值?数组赋值145/33*/22方法1:边声明边赋值方法2:动态地从键盘录入信息并赋值int[]scores={89,79,76};Scannerinput=newScanner(System.in);for(inti=0;i<30;i++){scores[i]=input.nextInt();}int[]scores=newint[]{89,79,76};不能指定数组长度数组赋值146/33*/22int[]scores={60,80,90,70,85};doubleavg;avg=(scores[0]+scores[1]+scores[2]+scores[3]+scores[4])/5;int[]scores={60,80,90,70,85};intsum=0;doubleavg;for(inti=0;i<scores.length;i++){sum=sum+scores[i];}avg=sum/scores.length;对数据进行处理:计算5位学生的平均分for(intscore:scores){

sum+=score;}处理数据147/33演示示例1:计算5位学员平均分*/22数组与内存148/33*/22publicclassErrorDemo1{publicstaticvoidmain(String[]args){int[]score=newint[];score[0]=89;score[1]=63;System.out.println(score[0]);}}编译出错,没有写明数组的大小常见错误3-1149/33*/22int[]scores=newint[2];scores[0]=90;scores[1]=85;scores[2]=65;System.out.println(scores[2]);编译出错,数组越界常见错误3-2150/33*/22int[]score=newint[5];score={60,80,90,70,85};

int[]score2;score2={60,80,90,70,85};

编译出错,创建数组并赋值的方式必须在一条语句中完成常见错误3-3151/33*/22有一个数列:8,4,2,1,23,344,12循环输出数列的值求数列中所有数值的和猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数练习1:猜数游戏152/33

擂台从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分求最大值153/33max=stu[0];if(stu[1]>max){max=stu[1];}if(stu[2]>max){max=stu[2];}if(stu[3]>max){max=stu[3];}……使用循环来解决根据打擂台的规则求最大值154/33演示示例2:求数组最大值有一组学员的成绩{99,85,82,63,60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序插入数值155/33演示示例3:向数组中插入一个元素插入数值分析156/33需求说明求出4家店的最低手机价格练习2:获取最低价手机价格步骤1.定义数组存储价格,并利用循环输入2.定义变量min保存当前的最低价3.将min和数组中的其余元素依次比较提示157/33*/22需求说明数组存储5笔购物金额,在控制台输出并计算总金额课后作业158/33数组有何作用?使用数组有哪些步骤?如何遍历一个数组?简述求最大值的实现思路是怎样的?总结159/33问题及作业集中问题&课后作业160/33扫我有更多精彩课程呦二维数组线上线下平台预习163/1*/22掌握冒泡排序算法使用Arrays类操作数组理解二维数组的使用本课目标164/17GameTime!排排站,吃果果~立正,稍息,从矮到高排队啦~这就是冒泡排序冒泡排序165/33如何实现数字升序排序?每次比较相邻两数小的交换到前面每轮结束后最大的数交换到最后16259902316259239092523第一轮:比较了4次第二轮:比较了3次第三轮:比较了2次第四轮:比较了1次冒泡排序分析166/33用二重循环将5个数字升序排序5个数字如何存放数组,数组.length=5控制比较多少轮外层循环,循环变量i控制每轮比较多少次内层循环,循环变量j交换数据用二重循环实现冒泡排序167/33演示示例1:冒泡排序冒泡排序速记口诀(升序)N个数字来排队两两相比小靠前外层循环N-1内层循环N-1-I思考如何使用冒泡排序实现5个数字的降序排列?使用冒泡排序对n个数字排序,共比较几次可得到最终结果?冒泡排序小结168/33需求说明使用冒泡排序对输入的5名学员成绩进行降序排列练习1:冒泡排列学员成绩169/33使用Arrays为数组排序使用java.util.Arrays类java.util包提供的工具类Arrays类提供操作数组的方法,如:排序、查询Arrays类的sort()方法:对数组进行升序排列Arrays.sort(数组名);演示示例2:Arrays类排序数组170/17语法方法名称说明booleanequals(array1,array2)比较array1和array2两个数组是否相等sort(array)对数组array的元素进行升序排列StringtoString(array)将一个数组array转换成一个字符串voidfill(array,val)把数组array所有元素都赋值为valcopyOf(array,length)把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致intbinarySearch(array,val)查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)Arrays类演示示例3:使用Arrays类的各种方法171/17需求说明使用Arrays类升序排列一组字符,并查找某个特殊字符在升序后数组中的位置练习2:Arrays类排列字符172/17要求对5个班各5名学生某门课程的成绩进行各种操作,如何实现?1个班5名学生成绩长度为5的一维数组5个班5名学生成绩5个长度为5的一维数组?为什么学习多维数组分析问题173/17三维及以上的数组很少使用主要使用二维数组从语法上Java支持多维数组从内存分配原理的角度讲,只有一维数组多维数组174/17<数据类型>[][]数组名;或者<数据类型>数组名[][];int[][]scores;//定义二维数组scores=newint[5][50];//分配内存空间//或者int[][]scores=newint[5][50];二维数组实际上是一个以一维数组做为元素的一维数组int[][]scores=newint[5][];int[][]scores=newint[][];二维数组175/17语法定义二维数组时,要定义最大维数int[][]s=newint[3][5];二维数组与内存2-1176/17int[][]scores=newint[3][5];score[0][0]=90;score[2][3]=70;二维数组与内存2-2177/17int[][]scores=newint[][]{{90,85,92,78,54},{76,63,80},{87}};intscores[][]={{90,85,92,78,54},{76,63,80},{87}};定义并赋值写法一写法二二维数组定义178/17有5个班各5名学生某门课程的成绩,如何计算5个班各自的总成绩遍历二维数组演示示例4:遍历二维数组179/17需求说明已知有3个班级各5名学员,请使用

二维数组计算各个班级的总成绩练习3:显示班级学生总成绩180/17使用冒泡排序从小到大排列5个数字的思路是什么?遍历一个二维数组的思路是什么?总结181/17问题及作业集中问题&课后作业182/10扫我有更多精彩课程呦183/10

吃货联盟订餐系统线上线下平台预习185/9课程介绍课程目标提升对技能点的运用能力、积累项目经验主要内容案例:吃货联盟订餐系统面向人群已学习过Java基础语法内容186/9覆盖技能点程序基本概念变量数据类型流程控制顺序选择循环跳转语句数组187/9项目演示及需求讲解系统概述"只要动动手指,就能送餐上门",网上定餐深受现代人青睐,现开发一个网上订餐系统,功能如下我要订餐查看餐袋签收订单删除订单我要点赞退出系统188/9演示示例:吃货联盟订餐系统阶段划分第一阶段:分析数据主体(重难点)第二阶段:分析并完成整体框架(重难点)第三阶段:分析并完成退出功能第四阶段:分析并完成订餐功能第五阶段:分析并完成查看餐袋功能第六阶段:分析并完成签收订单功能第七阶段:分析并完成删除功能(重难点)第八阶段:分析总完成我要点赞功能189/9项目总结理解需求重难点突破数据主体整体框架删除功能注意细节标识位、跳转语句、数组的操作掌握调试技巧190/9问题及作业集中问题&课后作业191/9扫我有更多精彩课程呦

类和对象线上线下平台预习194/26学完这部分内容后,你能够:会创建类和对象掌握面向对象的三大特性:封装、继承、多态掌握抽象类和接口的使用掌握程序中的异常处理会使用面向对象思想进行编程整体介绍195/26学完本次课程后,你能够:掌握类和创建对象的关系定义类定义对象定义和调用方法本课目标196/26结构化开发面向功能划分软件结构自顶而下最小的子系统是方法制约了软件的可维护性和可扩展性面向对象开发把软件系统看成各种对象的集合系统结构较稳定子系统相对独立软件可重用性、可维护性和可扩展性强面向对象程序设计(ObjectOrientedProgramming,OOP)开发方法197/26世界是由什么组成的?名胜人物品动物,植物……

分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地进行分类万物皆对象198/26张浩李明收银员员工号—10001

姓名—李明部门—财务部操作:收款打印账单顾客姓名—张浩年龄—20体重—60kg

操作:购买商品身边的对象199/26属性——对象具有的各种特征每个对象的每个属性都拥有特定值例如:张浩和李明的年龄、姓名不一样20岁张浩属性60kg顾客张浩对象的特征--属性200/26方法——对象执行的操作对象:用来描述客观事物的一个实体,由一组属性和方法构成打印账单方法

刷卡收银员李明收银

对象的特征--方法201/26列出尼古拉斯·凯奇驾驶的这辆法拉利F360Spider的属性和方法列出小狗对象的属性和方法属性:品牌:法拉利型号:F360Spider

颜色:黄色价格:380万元方法:发动停止加速属性:颜色:白色方法:叫跑吃对象的属性和方法202/26你身边的对象网络说一说你身边的对象,描述它们的属性和方法是什么?203/26学生对象姓名—张浩年龄—20体重—60kg

操作:学习……学生对象姓名—李明年龄—21体重—62kg

操作:学习……学生类姓名年龄体重

操作:学习

……属性抽取方法类:具有相同属性和方法的一组对象的集合类是对象的抽象,对象是类的具体类和对象204/26类是抽象的概念,仅仅是模板比如说:“人”对象是一个你能够看得到、摸得着的具体实体小布什普京克林顿……“人”类特征(属性)年龄体重行为(方法)衣食住行类和对象的关系205/26所有Java程序都以类class为组织单元关键字class定义自定义的数据类型publicclassHelloWorld{ publicstaticvoidmain(String[]args){

System.out.println("HelloWorld!!!"); }}Java是面向对象的语言206/26类将现实世界中的概念模拟到计算机程序中publicclass类名{//定义属性部分属性1的类型属性1; …

属性n的类型属性n;//定义方法部分方法1;…

方法m;}定义类的步骤:(1)定义类名(2)编写类的属性(3)编写类的方法类名首字母大写成员方法成员变量Java类模板语法演示示例1:创建School类207/26使用类图描述类用于分析和设计“类”直观、容易理解+name:String+health:int+love:int+strain:StringDog+print():void“+”:public“-”:private类名返回值类型类型属性名参数:名字:类型,名字:类型方法名类图208/26使用对象的步骤创建对象类名对象名=new类名();引用对象成员:使用“.”进行以下操作引用类的属性:对象名.属性引用类的方法:对象名.方法名()Schoolcenter=newSchool();="课工场";//给name属性赋值center.showCenter(); //调用showCenter()方法如何创建和使用对象演示示例2:创建和使用对象209/26需求说明编写学员类,输出学员相关信息编写教员类,输出教员相关信息练习1:创建学员类和教员类210/26通过前面案例,请思考:方法是什么?方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果类的方法定义类的某种行为(或功能)请回忆:如何定义一个方法?public返回值类型方法名(){//这里编写方法的主体}publicvoidshow(){System.out.println("姓名:"+name+",密码:"+password);}(1)驼峰命名规则(2)有意义类的方法211/26两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型返回值只能有一个如果方法没有返回值,返回值类型为voidpublicclassStudent{Stringname="张三";publicStringgetName(){returnname;}}作用:跳出方法、返回结果方法的返回值212/26方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率

情况举例Student类的方法a()调用Student类的方法b(),直接调用publicvoida(){b();//调用b()}Student类的方法a()调用Teacher类的方法b(),先创建类对象,然后使用“.”调用publicvoida(){Teachert=newTeacher();t.b();//调用Teacher类的b()}观察之前编写过的方法,都是无参方法方法调用213/26

一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出方法调用应用演示示例3:输出门票价格214/26需求说明模拟实现用户密码管理:输入旧的用户名和密码,如果正确,方有权限更新;从键盘获取新的密码,进行更新练习2:用户密码管理215/26类和对象有何关系?如何定义类和创建对象?如何定义类的方法以及调用方法?总结216/26问题及作业集中问题&课后作业217/26扫我有更多精彩课程呦218/26

方法与方法重载线上线下平台预习220/29学完本次课程后,你能够:方法的参数传递会使用构造方法掌握方法重载会使用成员变量和局部变量本课目标221/29新鲜桃汁新鲜苹果汁新鲜梨汁输出三种果汁为什么要用带参数的方法222/29定义带参数的方法调用带参数的方法<访问修饰符>返回类型<方法名>(<形式参数列表>){

//方法的主体}对象名.方法名(参数1,参数2,……,参数n)实参列表如何使用带参数的方法演示示例1:带参方法223/29语法语法思考如何输出指定杯数的果汁?带多个参数的方法224/29使用带参方法实现学员信息管理增加学员姓名在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功综合案例演示示例2:带多个参数的方法225/29//方法定义publicvoidaddName(Stringname){ //方法体}//方法调用对象名.addName(String"张三");调用方法时不能指定实参类型!常见错误2-1注意226/29//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用Strings="开始";inte=3;Stringname="张三";booleanf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论