《Java程序设计》第02章_第1页
《Java程序设计》第02章_第2页
《Java程序设计》第02章_第3页
《Java程序设计》第02章_第4页
《Java程序设计》第02章_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

程序设计第2章Java语言基础前课回顾1、三大核心技术2、dos环境下编译、运行java程序的方法3、作业总结若源文件中包含public类的定义,则源文件的文件名与该类名相同;若源文件中有多个类的定义,则会为每一个类生成一个class文件;一个源文件中最多只能有一个public类。2新课导入publicclassAdd{publicstaticvoidmain(String[]args){inta=3,b=4;intsum=a+b;System.out.println("sum="+sum);}}变量、数据类型、运算符和表达式3学习目标掌握Java编程语言的基本语法。掌握基本数据类型、运算符、表达式、控制语句的运用。掌握一维数组和二维数组的处理。掌握简单的输入输出处理。养成良好的编程习惯,了解并遵守Java编程规范。学会编写简单的Java程序。4重难点复习巩固C/C++语言的知识熟悉Java与C/C++之间在语言基础方面的差异掌握数组的概念与应用掌握简单的输入输出理解并熟记基本的知识点养成良好的编程习惯5目录

2.1JAVA语言的基本要素

2.2变量、数据类型、运算符和表达式

2.3控制结构

2.4数组

2.5简单的输入输出62.1Java语言的基本要素程序员要学会正确使用这些要素,以便写出正确规范、可读性好、易于维护的代码。2.1.1关键字具有特定含义和专门用途的单词,共53个。每种语言都有关键字,如C有32个,C++有62个,C#有77个。2.1.2Java标识符用户定义的。用来表示常量、变量、标号、方法、类,接口以及包的名字。2.1.3分隔符用于分隔标识符和关键字。2.1.4代码注释C++只有二种Java有三种72.1.1关键字共53个,全部用小写,包括二个单词组成的instanceof保留不用的:goto、const从技术上看true,false,null不是关键字,而是字面常量82.1.2Java标识符命名规则(强制要求)只能使用A-Z、a-z、0-9、_、$。只能以字母、下划线和美元符开头,不能用数字开头。严格区分大小写,没有长度限制。不能使用Java关键字。合法的标识符Student、userName、logFile、getLength、read。合法但不宜使用的标识符文件名、user_Name、_count、$error、abc、a1。非法的标识符2mail、room#、final、userName。9标识符命名规范(重要)命名规范用英语单词,尽量使用完整的单词,不要使用缩写。不使用美元符和下划线(下划线只在常量名中使用),尽量只使用字母,必要时才少量使用数字。不要使用常用的类名以及内部使用的常用名称,如String,java等。通过标识符中的大小写区分不同类型的标识符:常量名:PI、MAX_VALUE。变量名:fileName、radius、student。方法名:getArea、printResult。类名:Student、Rectangle。接口名:IPerson、Shape。包名:org.ngweb.ch02。注意:编写代码时一定要遵守上述规范。102.1.3分隔符空格这里指广义的空格(即白字符)包括空格、换行(\n)、换页(\f)、回车符(\r)、制表符(\t)五种。连续的多个空格与一个空格的效果相同。分隔符(){}[];,.有些资料认为上述分隔符也是运算符,如点运算符。11如何编写可读性好的代码软件企业都有编写代码的规范,下面是常见的要求:一行只写一条语句,一行中不要写二条语句。一行只声明一个变量,即使是相同类型的变量也要分开声明。一条语句超过80个字符,分为二行或多行,续行应增加一层缩格。适当插入空行,例如在变量声明与方法定义之间插入空行。表达式中圆括号的嵌套层数不应超过三层,超过时可以分为多个表达式。缩格一般为4个半角字符。用缩格区分花括号的嵌套,每增加一层花括号的嵌套,应增加一层缩格。花括号的嵌套层数一般不应超过三层,超过时可以分为多个方法。前花括号不单独占一行,放在相关语句的后面。后花括号单独占一行,与前花括号的语句通过缩格对齐。有些规定与C++等语言不同,要注意区别。Eclipse提供重排代码格式的功能。122.1.4代码注释单行注释多行注释文档注释选择合适的注释方式要养成写注释的编程习惯//单行注释,以换行符为结束。/*多行注释,注释内容跨越数行。*//**文档注释的格式是HTML,因此,换行后面应该加上HTML的断行标签。<br>*/13文档注释文档注释将可以生成开发文档/***这是第二个程序,作了少许修改,可以从命令行中读取第一个参数,并<br>*将该参数输出到屏幕上。<br>**@author黄能耿*/publicclassHelloWorld{ //hello保存英文的问候语 privatestaticStringhello="Hello,"; /** *这是程序的主方法<br> * *@param参数:args字符串数组,从命令行中接收<br> *@return返回值:无<br>142.2变量、数据类型、运算符和表达式2.2.1常量和变量2.2.2基本数据类型2.2.3空类型2.2.4引用数据类型2.2.5运算符2.2.6表达式、语句和语句块152.2.1常量和变量字面常量符号常量符号常量是字面常量的别名,用关键字final修饰。例如: finaldoublePI=3.141593; finalintMAX_VALUE=99999;整型长整型单精度双精度字符型字符串型布尔型空1230L1.0F1.0D'a'"Java"truenull01230123L1.F1.'%'"\""false0x1230x100000000L.3F.3'\t'100000000L0F0'\\'0xC0CBL1E1F1E1'\''1.3E10F1.3E10'\u1234''\uC4Fe''汉'16变量变量用于标识数据的存储单元。四种变量成员变量:在类中声明,但是在方法之外,因此作用域范围是整个类。局部变量:在语句块内声明,作用域范围是从声明处直到该语句块的结束。方法参数变量:作用域范围是在整个方法中。异常处理参数变量:作用域范围是在异常处理语句块中。 inti; intcount=1; Stringstr=“Java”; Studentstudent;172.2.2基本数据类型8种基本类型18整数和实数类型整数只有4种,建议int通常只使用int一种实数根据需要选用19布尔类型布尔型布尔型常量只有两个true和false。它们是Java关键字(字面常量)。不能用0或1表示布尔型的值20字符和字符串类型字符类型是16位的,内部用Unicode码转义字符与C类似,但是16进制是使用\uxxxx格式字符串类型每个字符都是16位的,因上英文字母与汉字点同样的内存可以嵌入转义字符以对象表示,不以\x0表示字符串的结束,内部可以包含\u0000。长达20亿21基本数据类型的转换自动类型转换(byte、short、char)intlongfloatdouble强制类型转换(cast)必须注意溢出字符型与整型的转换在本质上字符型是一个16位的正整数可以与整型转换注意下述代码的输出不是A3问题:下述代码有什么错误? i=130; //数字130超过了byte的取值范围 b=(byte)i; //这时b的值是-126,发生了溢出

charch=’A’; System.out.println(ch+3); byteb=3; b=b+b;222.2.3空类型空类型(void)表示没有类型,仅用于方法返回值类型的声明上。注意:空(null)不是类型,是一个字面常量,它表示没有值,用于表示引用数据类型的值为空。232.2.4引用数据类型引用数据类型类接口枚举数组引用数据类型与指针引用数据类型实质上是一个指向内存的指针Java中不允许对指针进行直接的操作C中可对指针进行操作,功能强大,但带来不安全因素242.2.5运算符37个运算符=><!~?:==<=>=!=&&||++--+-*/&|^%<<>>>>>+=-=*=/=&=|=^=%=<<=>>=>>>=instanceof分为8大类算术运算符关系运算符布尔运算符位运算符类型比较运算符条件运算符字符串连接运算符赋值运算符等252627运算符布尔运算符注意简洁与和与的区别、简洁或和或的区别类型比较运算符比较一个变量的值是否是某种类型Strings=null;System.out.println(sinstanceofString);//false,s指向的内容不是String而是nulls=""; //双引号之间没有空格,长度为0System.out.println(sinstanceofString); //true,s指向的内容是String28publicclassdemo{publicstaticvoidmain(String[]args){{inta=6,b=8,c=12,d=15;booleanx=(++a>b++)&&(c++>d--);System.out.print(x);System.out.println("c="+c);}{inta=6,b=8,c=12,d=15;booleanx=(++a>b++)&(c++>d--);System.out.print(x);System.out.println("c="+c);}}}2930313233运算符的优先级342.3控制结构2.3.1顺序结构语句块2.3.2分支结构if-elseswitch2.3.3循环结构whiledo-whilefor增强型for2.3.4跳转控制语句1.continue语句2.break语句3.return语句4.标号标号只能与continue、break配合使用352.4数组一维数组与C的数组不同二维数组是数组的数组Java语言的数组与C的数组的区别Java语言的数组是对象,有长度属性C的数组没有长度属性362.4.1一维数组publicclassArrayForDemo{publicstaticvoidmain(String[]args){int[]score;//1.一维数组的声明score=newint[4];//2.一维数组的创建(初始化)score[0]=80;//3.一维数组的引用score[1]=88;score[2]=78;score[3]=92;intsum;//总和//求平均成绩sum=0;for(inti=0;i<score.length;i++){//4.一维数组的遍历sum+=score[i];}System.out.println("平均成绩是:"+sum/score.length);}}37一维数组的内存分配int[]a;//声明a=newint[3];//创建int[]a={1,2,3};//初始化for(inti=0;i<a.length;i++){a[i]=i+1;//引用}38例1数组的循环,求最大值和平均值。publicclassArrayForDemo{ publicstaticvoidmain(String[]args){ int[]score={80,85,87,98,67,92}; intmax,sum=0; max=score[0]; for(inti=0;i<score.length;i++){ if(max<score[i]) max=score[i]; sum+=score[i]; } System.out.println("max="+max+",average="+sum/score.length); }}39增强型for循环publicclassArrayForDemo{ publicstaticvoidmain(String[]args){ int[]score={80,85,87,98,67,92}; intmax,sum=0; max=score[0]; for(intx:score){ if(x>max) max=x; sum+=x; }

System.out.println("max="+max+",average="+sum/score.length); }}402.4.2二维数组二维数组是数组的数组与一维数组的操作相似创建数组时有二种方法直接为每一维分配空间从高维开始,分别为每一维分配空间41创建数组(一)直接为每一维分配空间int[][]a;//1.二维数组的声明a=newint[3][2];//2.二维数组的创建(三行二列)a[0][0]=1;//3.二维数组的引用a[0][1]=2;a[1][0]=3;a[1][1]=4;a[2][0]=5;a[2][1]=6;42创建数组(二)从高维开始,分别为每一维分配空间

int[][]a;//1.二维数组的声明a=newint[3][];//2.先为第一维分配空间a[0]=newint[2];//然后为第二维的每一个元素分配空间a[1]=newint[1];a[2]=newint[3];a[0][0]=1;//3.二维数组的引用a[0][1]=2;a[1][0]=3;a[2][1]=4;a[2][2]=5;a[2][3]=6;43二维数组的内存分配int[][]a={{1},{2,3},{4,5,6}};int[][]a;//声明a=newint[3][];//高维开始a[0]=newint[1];//每一维a[1]=newint[2];a[2]=newint[3];a[0][0]=1;//访问a[1][1]=2;a[2][2]=3;44例2定义一个三角数组,打印九九乘法表。1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 45publicclassArrayTriangleDemo{ publicstaticvoidmain(String[]args){ String[][]triangleArray=newString[9][]; inti,j; for(i=0;i<9;i++) triangleArray[i]=newString[i+1]; for(i=0;i<9;i++){ for(j=0;j<triangleArray[i].length;j++){ triangleArray[i][j]=(i+1)+"*"+(j+1)+"="+(i+1)*(j+1); System.out.print(triangleArray[i][j]+"\t"); } System.out.println(); } }}46数组的操作System类中的有关方法数组复制arraycopy()staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。inta[]={1,2,3,4,5,6,7};intb[]=newint[6];inti;System.arraycopy(a,1,b,2,3);for(i=0;i<b.length;i++) System.out.print(b[i]+"");47java.util.Arrays类中的有关方法1)数组排序sort()staticvoidsort(int[]a)对指定的int型数组按数字升序进行排序。importjava.util.Arrays;publicclassTest1{ publicstaticvoidmain(String[]args){ inta[]={7,5,2,6,3}; Arrays.sort(a); for(inti=0;i<a.length;i++) System.out.print(a[i]+""); }}staticvoidsort(int[]a,intfromIndex,inttoIndex)可以指定排序的范围。如Arrays.sort(a,1,4)482)查找方法binarySearch()staticintbinarySearch(int[]a,intkey)使用二进制搜索算法来搜索指定的int型数组,以获得指定的值。importjava.util.Arrays;publicclassTest1{ publicstaticvoidmain(String[]args){ inta[]={2,4,5,7,9}; intkey,pos; key=5; pos=Arrays.binarySearch(a,key); if(pos<0) System.out.println("元素"+key+"在数组中不存在"); else System.out.println("元素"+key+"在数组中的位置为"+pos); }}49课堂练习1、将一个数组的内容按颠倒的次序重新存放。原先:8、3、5、1、9、7、2改为:2、7、9、1、5、3、82、某小组有5个学生,考了3门课程,他们的学号及成绩如下表所示,试求出每位学生的平均成绩。学号数学语文英语平均分1001908085100270758010036570751004855060100580907050publicclassReverseArray{ publicstaticvoidmain(String[]args){ int[]a=newint[7]; Scannersc=newScanner(System.in); System.out.println("请输入7个整数:"); inti,temp; for(i=0;i<a.length;i++) a[i]=sc.nextInt(); for(i=0;i<a.length/2;i++){ temp=a[i]; a[i]=a[a.length-1-i]; a[a.length-1-i]=temp; } for(i=0;i<a.length;i++) System.out.print(a[i]+"\t"); }}51publicclassTest2{ publicstaticvoidmain(String[]args){ int[][]a=newint[5][5]; System.out.println("请输入5位学生的学号、语文、数学、英语3门课程成绩:

温馨提示

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

评论

0/150

提交评论