




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第二章java语言基础,java语言的词法数据类型变量操作符与表达式流程控制语句数组,2,java语言的词法,空格与分号注释标识符关键字源码网:,第二章java语言基础,3,java语言的词法1.空格与分号,Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。如:System.out.println(Counted+count+chars.);分号作为语句的结束符,每个语句必须以分号作为结束符。,第二章java语言基础,4,java语言的词法2.注释,三种注释格式:/实现单行注释/*这是*一段注释,*它跨越了多个行*/*JDK的javadoc工具用这种注释信息能自动从程序中抽出类的公共接口形成文档。*/,第二章java语言基础,5,java语言的词法3.标识符,定义:标识符用来作为类、方法和变量的名字语法规则:以字母、下划线(_)、美元符号($)开始,后跟这三种符号或数字。例如:identifier_sys_var1$changeuserNameuser_name必须要区分大小写没有长度限制,第二章java语言基础,6,java语言的词法3.标识符续,约定:类名,接口名:首字母应该大写。classThisIsAClassNameinterfaceAccount字段、方法以及对象:首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:getMethod()常量:全部用大写字母表示。如:GREENHEAD_COUNTJava包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。如:packagejava.awt.event,第二章java语言基础,7,第二章java语言基础,java语言的词法4.关键字,关键字是由系统定义的一些词,它们在程序里代表特定的含义。定义表示符时要避免使用这些词。,第二章java语言基础,java语言的词法4.关键字,有关关键字值得我们注意的地方:(1)true、false和null为小写,而不是象在C+语言中那样为大写。严格地讲,它们不是关键字,而是文字。然而,这种区别是理论上的。(2)无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。(3)goto和const不是Java编程语言中使用的关键字。,9,数据类型,基本数据类型(primitivetype:)引用数据类型(referencetype),第二章java语言基础,数据类型,Java中的数据类型可以分为基本类型(primitivetype)和引用类型(referencetype)两大类。其中的基本数据类型包括:整数类型、实数类型(也称浮点类型)、字符类型和布尔类型。Java中的引用数据类型是一种抽象数据类型(ADT),它将数据和相关的操作封装在一起。除了Java类库提供的大量作为API的引用数据类型外,Java允许程序员定义自己的引用数据类型,满足更复杂的编程需要。,抽象,第二章java语言基础,11,字符型:char整型:byte,short,int,andlong浮点型:double,float布尔型:boolean(取值true或false),第二章java语言基础,数据类型基本数据类型(primitivetype:),12,数据类型字符型数据,第二章java语言基础,字符型常量:字符常量是用单引号括起来的一个字符,如a,A转义字符,以反斜杠()开头,将其后的字符转变为另外的含义,13,数据类型字符型数据,转义字符描述ddd1到3位8进制数所表示的字符(ddd)uxxxx1到4位16进制数所表示的字符(xxxx)单引号字符双引号字符反斜杠字符r回车n换行f走纸换页t横向跳格b退格,第二章java语言基础,14,数据类型字符型数据,第二章java语言基础,2.字符型变量(char):它在机器中占16位,其范围为065535字符型变量的定义如:charc=a;可以把它当作整数数据来操作。例如:intthree=3;charone=1;charfour=(char)(three+one);/four=4,15,数据类型字符型数据,第二章java语言基础,3.字符串型常量:字符串是指一个字符序列的集合。在Java中字符串完全被当成对象,字符串类型是标准Java类库中预定义的String类。字符串作为对象数据类型还封装了许多相关的操作,便于我们对字符串进行处理。字符串常量是作为String类的一个对象来处理的,而不是一个基本数据.字符串常量是用双引号(“”)括起来的一串字符,如“Thisisastring.n”。字符串连接使用+操作符intcount=7例如:Counted+count+chars.,16,数据类型字符型数据,第二章java语言基础,3.字符串型常量:字符串连接使用+操作符intx=0,y=1,z=2;StringsString=x,y,z;System.out.println(sString+x+y+z);System.out.println(x+sString);,intlength()返回字符串的长度。Stringsubstring(intbeginIndex,intendIndex)返回原字符串中从beginIndex位置开始到endIndex位置(不包括该位置)之间的所有字符组成的新字符串。intindexOf(intch)返回从索引0开始的与ch字符相匹配的首个字符的位置(索引值)。未检索到匹配字符的则返回-1。intindexOf(Stringstr)返回从索引0开始的与str字符串相匹配的首个子串的开始位置(索引值)。未检索到匹配的字符串则返回-1。booleanequals(ObjectanObject)比较字符串是否相等,相当时返回true,否则返回false。比较字符串是否相等应该使用equals方法。,示例程序字符串的引用与构造Srtingname1=newString(李白);/构造字符串对象“李白”,/name1引用该字符串对象Srtingname2=李白;/name2引用已构造的字符串对象“李白”Srtingname3=杜甫;/隐式构造字符串对象“杜甫”,name3引用该字符串对象name1=杜甫;/name1引用字符串对象“杜甫”,第二章java语言基础,数据类型字符型数据,18,数据类型整型数据,第二章java语言基础,整型常量:三种表示形式:十进制整数,如123,456,0八进制整数,以0开头,如0123表示十进制数83,011表示十进制数9。十六进制整数,以0 x或0X开头,如0 x123表示十进制数291默认整型常量为int类型。在机器中占32位对于long型值,则要在数字后加L或l,如123L表示一个长整数。在机器中占64位。,19,第二章java语言基础,2.整型变量整型变量的类型有byte,short,int,long四种整型长度数据类型取值范围8bitsbyte-27to27-116bitsshort-215to215-132bitsint-231to231-164bitslong-263to263-1,数据类型整型数据,20,第二章java语言基础,3.整型变量的定义例如:byteb;/指定变量b为byte型shorts;/指定变量s为short型inti;/指定变量i为int型longl;/指定变量l为long型,数据类型整型数据,21,数据类型浮点型数据,第二章java语言基础,1.实型常量Java的实常数有两种表示形式:十进制数形式:由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.0科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。实常数默认类型为double型,在机器中占64位,对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。,22,数据类型浮点型数据,第二章java语言基础,2.实型变量实型变量的类型有float和double两种:数据类型所占位数float32double643.实型变量定义例如:floatf;/指定变量f为float型doubled;/指定变量d为double型,23,数据类型举例,第二章java语言基础,请看Literals.java,布尔类型,boolean数据类型有两种文字值:true和false。在机器中之占1位。注意在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算。在C语言中允许将数字值转换成逻辑值,这在Java编程语言中是不允许的。,25,数据类型引用数据类型(referencetype),第二章java语言基础,数组Array,类class,接口interface属于reference类型。reference类型的变量是所引用的对象的内存地址。例子:,26,数据类型引用数据类型(referencetype),第二章java语言基础,publicclassMyDateprivateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear).publicvoidprint().publicclassTestMyDatepublicstaticvoidmain(Stringargs)MyDatemy_birth=newMyDate(22,7,1964);,27,数据类型引用数据类型(referencetype),第二章java语言基础,创建一个类对象:MyDatemy_birth=newMyDate(22,7,1964);,28,数据类型引用数据类型(referencetype),第二章java语言基础,两个引用变量的赋值将会产生如下结果:intx=7;inty=x;MyDates=newMyDate(22,7,1964);MyDatet=s;t=newMyDate(22,12,1964);两个变量指向一个对象:,29,数据类型引用数据类型(referencetype),第二章java语言基础,当t变量赋予一个新值时:t=newMyDate(22,12,1964);两个变量分别指向两个对象:,30,数据类型引用数据类型(referencetype),第二章java语言基础,见例题:Assignment.java结果:1:n1.i:9,n2.i:472:n1.i:47,n2.i:473:n1.i:27,n2.i:27将一个对象传递到方法内部时,也会产生此现象见例题:PassObject.java输出结果如下:1:x.c:a2:x.c:z,31,常量和变量,第二章java语言基础,常量和变量的定义在Java中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量A,布尔常量true等。变量名是一个合法的标识符它是字母、数字、下划线或美元符“”的序列变量名不能以数字开头不能为保留字变量名区分大小写变量名应具有一定的含义,以增加程序的可读性,32,变量,第二章java语言基础,2.变量的作用域变量的作用域指明可访问该变量的一段代码按作用域来分,变量可以有下面几种:局部变量Localvariable类变量Membervariable方法参数Methodparameter例外处理参数Exception-handlerparameter,33,2.变量的作用域,第二章java语言基础,1.变量的作用域,2.变量的作用域,34,变量,第二章java语言基础,3.变量的声明格式:typeidentifier=value,identifier=value;例如:inta,b,c;doubled1,d2=0.0;方法参数和例外处理参数的变量值是由调用者给出。,35,变量,第二章java语言基础,4.变量的默认初始化值,36,运算符和表达式,第二章java语言基础,运算符指明对操作数所进行的运算。按功能分类:算术运算符(+,-,*,/,%,+,-)关系运算符(,=,Integern2=newInteger(47);System.out.println(n1=n2);System.out.println(n1!=n2);结果:falsetrue,41,运算符和表达式关系运算符,第二章java语言基础,说明:若想对比两个对象的实际内容是否相同,使用方法equals()。例如:publicclassEqualsMethodpublicstaticvoidmain(Stringargs)Integern1=newInteger(47);Integern2=newInteger(47);System.out.println(n1.equals(n2);,42,运算符和表达式关系运算符,第二章java语言基础,说明:假设您创建了自己的类,结果如何?例如:classValueinti;publicclassEqualsMethod2publicstaticvoidmain(Stringargs)Valuev1=newValue();Valuev2=newValue();v1.i=v2.i=100;System.out.println(v1.equals(v2);,结果:false,43,运算符和表达式布尔逻辑运算符,第二章java语言基础,逻辑运算符AND(ielseSystem.out.println(d1+=+d2);,60,流程控制语句switch语句,第二章java语言基础,switch语句是实现多分支选择结构的另一个语句:switch(整数选择因子)case整数值1:语句;break;case整数值2:语句;break;case整数值3:语句;break;case整数值4:语句;break;case整数值5:语句;break;/.default:语句;,61,流程控制语句switch语句,第二章java语言基础,说明:表达式expression可以返回任一整型类型的值(如整型、字符型)case子句中的值必须是常量,而且所有case子句中的值应是不同的case通常与break语句联用,以保证多路分支的正确实现。多个case可以公用一组执行语句。case1:case2:case3:cout“hello”case1,2,3:cout“hello”/error,62,流程控制语句switch语句,第二章java语言基础,例题:根据考试成绩的等级打印出百分制分数段。publicclassGradeLevelpublicstaticvoidmain(Stringargs)System.out.println(n*firstsituation*);chargrade=C;/normaluseswitch(grade)caseA:System.out.println(grade+is85100);break;caseB:System.out.println(grade+is7084);break;caseC:System.out.println(grade+is6069);break;caseD:System.out.println(grade+is60);break;default:System.out.println(inputerror);,循环流程控制语句,第二章java语言基础,64,流程控制语句for循环语句,第二章java语言基础,格式for(初始表达式;布尔表达式;步进)语句说明:无论初始表达式,布尔表达式,还是步进,都可以置空。可在for语句里定义多个变量,但它们必须具有同样的类型:for(inti=0,j=1;i10,65,流程控制语句for循环语句,第二章java语言基础,说明:Java里唯一用到逗号运算符的地方就是for循环的控制表达式。publicclassCommaOperatorpublicstaticvoidmain(Stringargs)for(inti=1,j=i+10;i5;i+,j=i*2)System.out.println(i=+i+j=+j);,输出如下:i=1j=11i=2j=4i=3j=6i=4j=8,一个有趣的例题,射雕英雄传的朋友,一定还记得黄蓉遇上神算子瑛姑,给她出的三道题目中有一题是这样的:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?也就是说,有一个未知数,这个数除以三余二,除以五余三,除以七余二,问这个数是多少?,示例程序211“黄蓉的题目”Calc.javapublicclassCalcpublicstaticvoidmain(Stringargs)intx;for(x=0;x100;x+)if(x%3=2)/endofmain/endofCalc,第二章java语言基础,67,流程控制语句while循环语句,第二章java语言基础,格式:while(布尔表达式)语句例子:publicclassWhileTestpublicstaticvoidmain(Stringargs)doubler=0;while(r0.99d)r=Math.random();System.out.println(r);,68,流程控制语句do-while循环语句,第二章java语言基础,格式:do语句while(布尔表达式)例子:,69,流程控制语句其他循环控制语句,第二章java语言基础,70,流程控制语句breaklabel语句,第二章java语言基础,不带标号的break语句,跳出它所在的循环语句或switch语句,并从紧跟该循环语句或switch语句后的第一条语句处执行带标号的break语句:对Java来说,唯一用到标签的地方是在循环语句之前。label1:循环语句跳出标号所指定的块,并从紧跟该块后的第一条语句处执行,71,流程控制语句breaklabel语句,第二章java语言基础,例题:,72,流程控制语句continuelabel语句,第二章java语言基础,不带标号的continue语句,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环带标号的continue语句跳转到标号指明的外层循环中。,73,流程控制语句continuelabel语句,第二章java语言基础,例题:,74,流程控制语句continuelabel语句,第二章java语言基础,例题1:BreakAndContinue.java例题2:LabeledFor.java例题3:LabeledWhile.java,75,练习,(1)写一个程序,打印出1到100间的整数。(2)编写一个for语句的双重循环,练习breaklabel和continuelabel语句。(3)创建一个switch语句,为每一种case都显示一条消息。在每个case后面都放置一个break,并对其进行测试。然后,删除break,看看会有什么情况出现。,第二章java语言基础,76,数组,相同的数据类型元素类型按一定的顺序排列就构成了数组数组元素可以为:基本数据类型某一类的对象建立java数组需要以下三个步骤:声明数组创建数组空间初始化数组元素,第二章java语言基础,77,数组声明数组,声明数组的语法格式有两种如下:数组元素类型数组名;数组元素类型数组名;例如:chars;或:chars;Pointp;Pointp;,第二章java语言基础,78,数组创建数组空间,说明:为数组开辟内存空间,在创建数组空间时必须为它指明数组的长度。一个数组是一个对象,所以用new来创建数组语法格式为:数组名=new数组元素类型数组元素的个数;例如:intMyIntArray;MyIntArray=newint10;,第二章java语言基础,PointMyIntArray;MyIntArray=newPoint10;,79,数组创建数组空间,说明:也可以在创建数组空间的时候,同时将初值给出来,例如:intMyIntArray=1,2,3,4,5,6,7,8,9;存储空间的分配等价于使用new基本数据类型的数组元素会自动初始化成“空”值(对于数值,空值就是零;对于char,它是null;而对于boolean,它却是false)。数组名是对数组对象的一个引用。,第二章java语言基础,80,数组创建数组空间,第二章java语言基础,创建一个基本数据类型元素的数组:publiccharcreateArray()chars;s=newchar26;for(inti=0;i26;i+)si=(char)(A+i);returns;,81,数组创建数组空间,第二章java语言基础,创建一个对象数组:publicPointcreateArray()Pointp;p=newPoint10;for(inti=0;i10;i+)pi=newPoint(i,i+1);returnp;,82,数组创建数组空间,第二章java语言基础,说明:可以动态创建数组空间:inta;a=newintpRand(20);见例题:ArrayNew.java,83,数组数组边界,第二章java语言基础,所有数组的上标从0开始intlist=newint10;for(inti=0;ilist.length;i+)System.out.println(listi);,84,数组初始化数组,有两种方式:1先定义数组,分配空间,然后直接对每个元素进行赋值。2在定义数组的同时进行初始化。这种做法大多数时候都很有用,但限制也是最大的,因为数组的大小是在编译期间决定的。例如:对基本数据类型intnums;nums=newint3;nums0=1;nums1=2;nums2=3;,第二章java语言基础,intnums=1,2,3;,85,数组初始化数组,例如:对非基本数据类型MyDatedates;dates=newMyDate3;dates0=newMyDate(22,7,1964);dates1=newMyDate(1,1,2000);dates2=newMyDate(22,12,1964);或:,第二章java语言基础,MyDatedates=newMyDate(22,7,1964),newMyDate(1,1,2000),newMyDate(22,12,1964);,86,数组初始化数组,第二章java语言基础,publicclassArrayInitpublicstaticvoidmain(Stringargs)Integera=newInteger(1),newInteger(2),newInteger(3),;/第二种方式Integerb=newIntegernewInteger(1),newInteger(2),newInteger(3),;,87,数组初始化数组,第二章java语言基础,对非基本数据类型的第二种初始化,可以带来更大的灵活性。例如:publicclassVarArgsstaticvoidf(Objectx)for(inti=0;ix.length;i+)System.out.println(xi);publicstaticvoidmain(Stringargs)f(newObjectnewInteger(47),newFloat(3.14),newDouble(11.11);f(newObjectone,two,three);,88,数组多维数组,第二章java语言基础,1.定义方式:type维数arrayName;例如:intintArray;inta2;2.分配内存空间:有两种方法:直接为每一维分配空间,如inta=newint23;inttwoDim=newint4;/error分别为每一维分配空间如:inta=newint2;a0=newint3;a1=newint3;可以为每行设置为空间大小不同的数组。如:a0=newint3;a1=newint5;,89,数组多维数组,第二章java语言基础,说明:Java中多维数组被看作数组的数组。例如二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务分析的意义和内容说课稿-2025-2026学年中职专业课-财务管理-财经类-财经商贸大类
- unit 7 Today is Monday教学设计-2025-2026学年小学英语四年级下册北师大版(一起)
- 第1课 寻根之旅教学设计-2025-2026学年初中艺术·美术人教版2024七年级下册-人教版2024
- 幼儿的社会行为与道德发展说课稿-2025-2026学年中职专业课-幼儿心理学-学前教育类-教育与体育大类
- 外研版八年级上册英语全册教学设计(配2025年秋改版教材)
- 跳动的琴弦(欣赏 阳光照耀着塔什库尔)教学设计-2025-2026学年小学音乐西师大版五年级上册-西师大版
- 蓄电池知识培训内容课件
- 2025年天津市红桥区中考三模物理试题(解析版)
- 2025年四川省资阳市中考英语试卷(含答案与解析)
- 第1章 生命的世界说课稿-2025-2026学年初中生物学北师大版七年级上册-北师大版
- 2025 护理法律风险防范课件
- 2024-2025学年北京市西城区高一(下)期末数学试卷(含解析)
- 2025年网格员招聘笔试题库含答案
- 造型基础教学课件
- 抗菌型PE(聚乙烯)保鲜膜行业深度调研及发展项目商业计划书
- 行政单位固定资产培训
- 中国先秦文学课件
- 园林绿化监理质量控制措施
- 2022年版新课程标准解析与教学指导
- 森林生态系统韧性-洞察及研究
- 2025年湖北省中考语文试卷真题(含标准答案)
评论
0/150
提交评论