JAVA总复习宋伟宁什么是程序程序一词来自生活,通常指完成某些事务的一种既定方式和过程在日常生活中,可以将程序看成对一系列动作的执行过程的描述$银行银行1、带上存折/银行卡去银行3、将存折或储蓄卡递给银行职员并告知取款数额2、取号排队5、银行职员办理取款事宜生活中的程序6、拿到钱并离开银行4、输入密码计算机中的程序1、做口述笔记……2、键入信函的内容……3、发送传真……1、口述2、信函System.out.println(口述);System.out.println(信函);System.out.println(传真);指令被逐条执行程序员老板秘书程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合要执行的一组指令3、传真为什么学习JavaJava是SunMicrosystems于1995年5月23日推出的高级编程语言Java领域的JavaSE、JavaEE技术已发展成为同C#和.NET平分天下的应用软件开发平台和技术PK.PK.Java可以做什么开发桌面应用程序银行软件、商场结算软件开发面向Internet的应用程序网上数码商城、阿里巴巴、易趣网Java技术平台简介JavaSE:JavaPlatform,StandardEditionJavaEE:JavaPlatform,EnterpriseEdition操作系统(包含运行环境)JavaEEJavaSE开发Java程序三步走1、编写源程序2、编译源程序3、运行publicclassHello{publicstaticvoidmain(String[]args){…这里填写代码!...}}Java程序框架外层框架Java入口程序框架填写代码用Eclipse开发Java程序的步骤使用Eclipse编写Java程序步骤:1、创建一个Java项目2、手动创建Java源程序3、编译Java源程序4、运行程序第一个Java程序publicclassHello{publicstaticvoidmain(String[]args){System.out.println(你好!);}}分析程序publicclassHello{publicstaticvoidmain(String[]args){System.out.println(你好!);}}关键字高亮显示类名与文件名完全一样main方法是Java程序执行的入口点{和}一一对应,缺一不可main方法四要素必不可少从控制台输出信息Java项目组织结构2-1包资源管理器用包组织Java源文件,类似于文件夹选择菜单“窗口→显示视图→包资源管理器”打开Java项目组织结构2-2导航器选择菜单“窗口→显示视图→导航器”打开Java程序的注释2-1/**Hello.java*2009-5-8*第一个Java程序*/publicclassHello{publicstaticvoidmain(String[]args){System.out.println(你好!);}}文件的名称日期功能说明符号/**/指示中间的语句是该程序中的注释多行注释以/*开始,以*/结束Java程序的注释2-2publicclassHello{publicstaticvoidmain(String[]args){//输出消息到控制台System.out.println(你好!);}}单行注释以//开始,以行末结束Java编码规范去掉public,程序可以运行,但不规范;规范要求类名必须使用public修饰!classHello{publicstaticvoidmain(String[]args){//输出消息到控制台System.out.println(你好!);}}publicclassHello{publicstaticmain(String[]args){//输出消息到控制台System.out.println(你好!);}}常见错误5-2main方法作为程序入口,void必不可少!voidpublicclassHello{publicstaticvoidmain(String[]args){//输出消息到控制台system.out.println(你好!);}}常见错误5-3编译出错,无法解析system!Java对大小写敏感!代码错误publicclassHello{publicstaticvoidmain(String[]args){//输出消息到控制台System.out.println(你好!)}}常见错误5-4每一条Java语句必须以分号结束!;代码错误publicclassHello{publicstaticvoidmain(String[]args){//输出消息到控制台System.out.println(你好!);}}常见错误5-5注意:不要漏写引号!纠正代码中的错误,输出“早上好!”publicclassTest{publicvoidmain(String[]args){system.out.println(早上好!);}}staticSystem中S要大写电脑使用内存来记忆计算时所使用的数据内存如何存储数据?内存像旅馆数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)2、入住√回顾内存如何存放数据1000*(1+5%)内存10001050变量:一个数据存储空间的表示对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?98.76不同数据存入具有不同内存地址的空间,相互独立变量在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元房间房间名字房间类型入住的客人变量变量名变量类型变量值为什么需要变量对应变量应用1、在内存中存储本金1000元2、显示内存中存储的数据的值publicclassHello1{publicstaticvoidmain(String[]args){intmoney=1000;//存数据}}数据类型变量名内存空间存的数值System.out.println(money);//使用数据变量的声明和赋值使用变量的步骤:第一步:声明一个变量第二步:赋值第三步:使用变量数据类型变量名=数值;根据类型开辟空间将数据存入空间取出数据使用数据类型变量名;变量名=数值;intmoney=1000;intmoney;money=1000;数据属于不同类别非洲ThequickbrownfoxTRUE数据非数值数值整型非整型9002.129999/12/20032.175123陈扬char非数值数值整型int…………double非整型StringJava常用数据类型数据类型数据类型说明char(字符型)用于存储单个字符如:性别‘男’、‘女’,电灯‘开’、‘关’int(整型)用于存储整数如:一天的时间是24小时,一月份有31天double(双精度)用于存储小数如:蒙牛早餐奶的价格1.3元,手机待机时间6.5小时String(字符串)用于存储一串字符如:“我的爱好是踢足球”,“我喜欢Java程序”数据类型说明1、字母2、下划线‘_’3、‘$’符号首字母任意多的:1、数字2、字母3、下划线‘_’4、‘$’符号其余部分变量名Java语言中,变量命名要符合一定规则money,score,name,sex变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore变量命名规则2-1变量命名规则2-2检查下面这些是否是合法的变量名principalcost_pricemarks_3$lastnamecity123ratediscount%zipcodeCityint××××publicclassHello{publicstaticvoidmain(String[]args){Stringtitle;System.out.println(title);}}Stringtitle;//声明变量titletitle=Java;//赋值Stringtitle=Java;//声明变量title并赋值12先声明变量并赋值,然后才能使用常见错误1代码错误正确方案变量名不能以%开始常见错误2publicclassHello{publicstaticvoidmain(String[]args){int%hour=18;System.out.println(%hour);}}代码错误publicclassHello{publicstaticvoidmain(String[]args){Stringname=张三;Stringname=李四;}}声明两个同名变量导致编译错误Stringname=张三;StringName=李四;Java程序区分大小写常见错误3正确方案算术运算符3-1基本的算术运算某学员3门课成绩如右表所示,编程实现:1、Java课和SQL课的分数之差2、3门课的平均分操作数操作数运算符课程分数STB89Java90SQL60publicclassHello{publicstaticvoidmain(String[]args){intstb=89;//STB分数intjava=90;//Java分数intsql=60;//SQL分数intdiffen;//分数之差doubleavg;//平均分//省略输出成绩单代码……diffen=java-sql;//计算java课和sql课的成绩差System.out.println(Java和SQL的成绩差:+diffen);avg=(stb+java+sql)/3;//计算平均分System.out.println(3门课的平均分是:+avg);}}声明变量完整代码演示算术运算符3-2intnum1=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=num1+1;等价于:num2=num2-1;num1=6num2=1输出算术运算符3-3自动类型转换某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?doublefirstAvg=81.29;//第一次平均分doublesecondAvg;//第二次平均分intrise=2;secondAvg=firstAvg+rise;System.out.println(第二次平均分是:+secondAvg);在某种条件下,系统自动完成类型转换两种类型兼容例如:int和double兼容目标类型大于源类型例如:double型大于int型对于表达式如果一个操作数为double型,则整个表达式可提升为double型类型提升规则intage=19;charsex=‘女’;charresult=age+sex;下面语句正确吗?inta=10;intb=10.2;doublec=10;c=a;intd=c;int不可以自动转换成chardouble不可以自动转化成int常见错误intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额intnow=before+(int)rise;去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?编译出错:不能完成自动类型转换(类型名)表达式强制类型转换intb=