Java软件设计基础.ppt

上传人:小飞机 文档编号:5436242 上传时间:2023-07-06 格式:PPT 页数:53 大小:354.50KB
返回 下载 相关 举报
Java软件设计基础.ppt_第1页
第1页 / 共53页
Java软件设计基础.ppt_第2页
第2页 / 共53页
Java软件设计基础.ppt_第3页
第3页 / 共53页
Java软件设计基础.ppt_第4页
第4页 / 共53页
Java软件设计基础.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《Java软件设计基础.ppt》由会员分享,可在线阅读,更多相关《Java软件设计基础.ppt(53页珍藏版)》请在三一办公上搜索。

1、Java软件设计基础,2.Java语言基础,2.1 符号,标识符程序中要用到许多名字,诸如类、对象、变量、方法等。标识符就是用来标识它们的唯一性和存在性的名字。Java采用Unicode字符集,由16位构成。标识符分为两类:保留字:是Java预定义的标识符,都具有特定的含义,保留字又称关键字。,用户定义标识符:是程序设计者根据自己的需要为定义的类、对象、变量、方法等的命名。用户自定义标识符的定义规则:以字母、下划线或$符开头的字母、下划线、数字、$符的序列。一些由开发环境自动生成的名称中会带有$符或下划线,因此虽然规则允许,但是自定义的变量名称中应尽量避免使用$符或下划线。标识符区分大小写。标

2、识符不能与保留字同名。标识符遵守先定义后使用的原则。虽然true、false和null并不是关键字,但其代表的是值,也不可以用以上三个作为自定义标识符的名字。标识符的长度是任意的。虽然如此,但不宜过长,也不宜取难以理解的简写。最好有象征性含义,起到见文生意的作用,提高程序的可读性。,分隔符规定任意两个相邻标识符、数、保留字或两个语句之间必须至少有一个分隔符,以便编译程序能识别。分隔符不能互相代用。分隔符的分类空白分隔符空格、TAB制表符、换行符与回车符都是典型的空白分隔符。为了程序的可读性和美观,语句的成分之间可以插入任意多个空白分隔符,在编译时系统会自动忽略多余的空白分隔符。,普通分隔符 用

3、来定义复合语句、类体、方法体以及进行数组的初始化等。;表示一条语句的结束。,用来分隔变量的说明和方法的参数等。:说明语句标号等。注释语句注释用来对程序中的代码做出解释。注释部分对程序的执行不产生任何影响,可增加程序的可读性,有利于程序的修改、调试、交流。注释语句的格式,第一种用于行注释;第二、三种用于多行注释。编码规范规范原则尽量使用完整的英文描述符;采用大小写混合使名字可读,采用适用于相关领域的术语;尽量少用缩写,若已使用尽量明智,且在整个文件或工程中通用;避免使用长的和类似的名字,或仅仅是大小写不同的名字;除静态常量外,尽量少用下划线。约定细则源文件命名规则源程序中包含有公共类的定义,源文

4、件名必须与该公共类的名字一致。在一个源程序中至多只能有一个公共类的定义;,源程序中不包含公共类,则该文件名只要和某个类名字相同即可;源程序中有多个类的定义,编译时将会为每个类生成一个class文件。包包名是全小写的名词,中间可以由点分隔开,如。类类名首字母大写,若由多个单词合成一个类名,要求每个单词的字母也要大写,如MyFirstJava。接口命名规则同类名,如Collection。方法由多个单词组成的方法名首字母小写,中间的每个单词首字母大写,如isButtonPressed。变量一般全小写,如length。,常量一般全大写,如果由多个单词组成则中间用下划线相连。如果是对象类型的常量,则是大

5、小写混合,由大写字母把单词隔开,如STR_LENGTH。组件使用完整的英文描述来说明组件的用途,尾部应该加上组件类型,如okButton。,2.2 基本数据类型,概述Java数据类型的分类Java数据存储空间大小,Java数据类型,复合数据类型,基本数据类型,数值型字符型:char布尔型:boolean,数组:array接口:interface类:class,整型浮点型,字节型:byte短整型:short整型:int长整型:long,单精度:float双精度:double,默认值声明字段时不必为其赋值。被声明但是没有初始化的字段会被编译器设置为合理的默认值。局部变量稍有不同,编译器永远都不会给

6、未初始化的局部变量分配默认值。如果在声明局部变量时不能初始化它,就要确保使用之前为其赋值,否则将导致编译错误。,字面量(literal)当初始化原始类型的变量时,没有使用到关键字new。原始类型是语言内置的特殊数据类型,不是从类创建的对象。字面量是固定值的源代码表现形式,直接出现在代码中,无需计算。特殊的字面量null可以用作任何引用类型的值,可以赋值给除了属于原始数据类型的变量之外的任何变量。除了测试其存在之外,对null值没有什么可做的操作,因此在程序中常使用null作为标识,表示某个对象不可用。,整数类型整型是那些没有小数部分的数据类型。不同整数数据类型的意义在于它们所需的内存空间大小不

7、同,这也决定了它们所能表达的数值范围的不同。采用不同的整数类型表达同一数值,在存储单元中的存储情况是不同的。分类byte,short,int,long在内存紧张的情况下,可将byte或short用于大型数组以便节省内存。,整型数20在内存中的存储形式,int是整数值的默认选择类型,除非出于某种原因选择其他类型。当将超过int数值范围的值付给long类型的时候,必须在值后加上L或者l。表示形式十进制整数,如33,58,-90。八进制整数,以0开头,如010表示十进制的8。十六进制整数,以0 x开头,如0 x10表示十进制的16。浮点型分类floatJava缺省的浮点类型是double,给floa

8、t变量赋予带小数的初值时必须在数值后加f或F。double给该类变量赋值时可以在后面加上d或D。,表示方法十进制形式科学计数法或指数形式字母E表示以10为底的指数。采用科学表示法时,尾数必须有,但小数部分可无,阶码必须有且是整数。字符型Java的字符使用16位的Unicode编码表示,它可以支持世界上的所有语言。“u0000”“u00FF”用来表示ASCII码集。表示形式包括在单引号之内的单个字符;用单引号括起来的八进制Unicode字符,形式为ddd,d的范围是07;,用单引号括起来的十六进制Unicode字符,形式为uxxxx,x的范围是0F;不能显示的控制字符,可以通过转义字符来表示;注

9、意char类型是一种特殊类型的整数类型,没有负数,其范围是065535,它们可以被转换为整数并可以进行整数运算。把字符串包含在双引号中,就会自动的创建新的String对象。String对象是不可变的,即创建后就不能改变他们的值。,布尔型被用作真/假条件的简单标志,与C/C+不同的是,它的值不与任何整数值对应。,2.3 常量与变量,常量常量是指在程序运行过程中其值不变的量。常量在表达式中用文字串表示,它有整型常量、字符型常量等等不同的类型。常量通过用关键字final来实现声明,通常写在最前面。变量变量用来存放指定类型的数据,其值在程序运行过程中是可变的。变量的声明使用一个变量之前必须先声明它。一

10、方面给该变量分配内存空间,另一方面防止在以后使用此变量时因错误输入而对不存在的变量进行操作。,final 类型 常量名=常量值;,以“变量名”为名建立一个某类型的变量;;表示声明语句的结束;表示可选;可在一条语句中定义多个同类型的变量,中间用逗号隔开;在声明的同时可以赋值;修饰符也称为作用域,指明作用域的类型;数据类型决定了变量所包含的值的范围、可对变量进行哪些操作以及如何定义这些操作;变量的使用变量的初始化是简单的赋值使用,当在语句中使用到该变量的名称时,编译器会自动将当时变量的值取来用。局部变量在使用前必须初始化。,修饰符 类型名 变量名1,变量名2,;,修饰符 类型名 变量名1=初值1,

11、变量名2=初值2,;,变量的类型基本数据类型(布尔型、字符型、整型、浮点型、数组、接口、类)变量的作用域Java中的变量有一定的生存期和有效范围,变量的作用域指明可访问该变量的一段代码。按照作用域划分:全局变量:可以在整个类中被访问;局部变量:在方法或方法的一个代码块中声明,它的作用域为它所在的代码块;类变量:在类中声明,而不是类的某个方法中声明,作用域为整个类;方法参数(变量):作用域为传递给的那个方法;异常处理参数:传递给异常处理代码,作用域是异常处理部分。,将语句”int j=58;”放在语句”int i=15;”后面,则变量j的作用域变为整个main()方法,程序编译通过。,2.4 运

12、算符,程序中用来处理数据、表示数据运算、赋值和比较的符号称为运算符,参与运算的数据称为操作数。分类算术运算符算术运算符用于对整型数和实型数的运算。按照其要求的操作数个数分为一元运算符和二元运算符两类。+(正号)、-(负号)、+(自增)、-(自减);+(数值加、连接字符串)、-(减)、*(乘)、/(除)、%(取模)。+x是在变量参与运算之前自增1,然后用新值参与运算;而x+是先用以前的值参与运算,再自增1;-x和x-同理。除号“/”中,如果运算符两边的操作数都是整数,则计算结果只保留整数部分。当+作为字符串连接操作符时,可以连接两个字符串、字符串与字符、字符串与数字。,比较运算符又称关系运算符,

13、有=(等于)、!=(不等于)、(大于)、=(大于等于)、=(小于等于)、instanceof(是否为某类对象)几种;在一个比较运算符两边的数据类型应该一致,比较逻辑成立为true,不成立为false;如果操作数是对象变量,则对象变量引用同一个对象或都为null的时候为true,否则为false。逻辑运算符又称布尔运算符,用于对布尔型操作数进行计算。!(非)&(与)、|(或)、(异或)、&(短路与)、|(短路或)。&和&的区别是,前者只要左边的操作数为false时,就不再计算,直接给出结果是false;|和|的区别同样。简化了计算过程。,位运算符对整数数值二进制表示中的每位进行测试、置位、移位等

14、处理。(位反)&(位与)、|(位或)、(位异或)、(位右移)、(不带符号的位右移)Java使用补码来表示二进制码,最高位为符号位,整数的符号位为0,负数的符号位为1。正数:x原码=x反码=x补码5的补码为00000101。负数:x反码为x原码除了最高位以外按位求反,x补码为x反码+1。-5的原码为10000101,反码为11111010,补码为11111011。在移位时,位左移右边补0;位右移时,高位移入原来最高位的值;无符号右移时,低位被舍弃,高位补0。在对byte和short类型的值进行位移运算时,Java将自动把这些类型扩大为整形。,条件运算符是一个三元运算符“?:”,它是Java中唯一

15、的三元运算符,形式如下:其中表达式的值为一个布尔值,如果结果为true,则整个表达式的值为表达式1的值;否则为表达式2的值,表达式1和表达式2应返回相同的数据类型。赋值运算符简单赋值运算符“=”:把运算符右边的值赋给左边的常量或变量。在一个赋值表达式内也可以连续赋值。扩展赋值运算符:在“=”前加上其他运算符。+=、-=、*=、/=、%=、&=、|=、=、=、=,布尔表达式?表达式1:表达式2,s op=i,s=s op i,其他运算符运算符的优先级表达式的运算次序取决于表达式中各种运算符的优先级。优先级高的先运算,优先级低的后运算。另外,还可以用“()”改变优先级次序。,例:按照上表的优先级规

16、定,下面表达式有唯一的计算顺序:注意上述表达式的写法比较难以理解并容易产生错误。因此在写程序时尽量使用括号来使表达式的计算次序一目了然。维持这种编程习惯可以使代码更易于阅读和维护。数学上的表达式如abc在Java中必须写成(ab)&(bc)这样的形式。,2.4 类型转换,自动类型转换整型、实型、字符型数据可以混合运算。运算过程中,不同类型的数据会自动转换为同一类型,然后进行运算。自动转换按低级类型数据转换成高级类型数据的规则进行,最后生成的值也是高级类型数据。数据类型约束Java定义了若干适用于表达式的类型提升,所有的byte和short型的值都会被系统提升到int型。如果一个操作数是long

17、型,那么整个表达式会被提升到long型。(1)(byte或short)op int int(2)(byte或short或int)op longlong(3)(byte或short或int或long)op floatfloat(4)(byte或short或int或long或float)op doubledouble(5)char op intint,强制类型转换不是所有的数据类型都允许隐含性的自动转换。当把占位较长的数据转化为占位较短的数据时,会出现信息丢失的情况,因为不能自动转换。高级数据类型要转换成低级数据类型,需要用到强制数据类型转换。其一般形式为:经过强制类型转换将得到一个在()中声明的

18、类型的数据。将占用位数较长的数据转化成占用位数较短的数据时,可能会造成数据超出较短数据类型的取值范围,造成溢出。复合数据类型也可以进行转化。一般使用强制类型转换可能会导致数值溢出或精度下降,应尽量避免。,(数据类型)表达式,数据类型(表达式),short c=a+b;因为Java的自动提升功能,导致结果是int类型,无法赋值给范围更小的short类型,int i1=dd+7;dd+7的值是double型,无法赋值给int类型,如果改为“int i1=(int)dd+7;”则编译通过,boolean bool=true布尔型与数字类型、字符型互相不兼容。,2.5 数组,数组是相同类型的数据元素按

19、顺序组成的一种复合数据类型。特点数组也是一个对象;一个数组中所有的元素应该是同一类型;数组中的元素是有序的;数组中的一个元素通过数组名和数组下标来确定。分类基本数据类型的数组与复合数据类型的数组一维数组和多维数组一维数组声明格式:,数组名的命名方法同简单变量,可以是任何合法的标识符;类型标识符可以是基本数据类型或者是类、接口;分配数组空间在声明数组时,不直接指出数组中的元素个数(即数组长度)。数组说明之后不能立即被访问,因为还没有为数组元素分配内存空间。因此需要使用new操作来构造数组,为其分配内存空间,格式如下:,类型 数组名;,类型 数组名;,数组名=new 类型元素个数;,元素个数即数组

20、长度。数组分配空间是连续的,可以通过属性length获得该数组的元素个数,方法如下:声明数组的同时分配数组空间数组一旦创建之后,就不能再改变其长度!,数组名.length;,类型 数组名=new 类型元素个数;,类型 数组名=new 类型元素个数;,数组的初始化用new分配空间后,系统将为每个数组元素都赋予一个初值,初值取决于数组的类型。数值型数组:0字符型数组:不可见ISO控制符(u000)布尔型数组:false字符串数组以及其他对象数组:null当不希望数组的初值为系统给定的默认值时,可以用赋值语句对数组进行初始化。初始化可以在数组声明时进行,也可以声明以后,在构造数组的时候赋值。其中初值

21、表是用逗号隔开的一组值。,类型 数组名=初值表;,数组名下标=初值;,数组元素的使用当声明了一个数组并分配了内存空间后,就可以在程序中任何可以使用变量的地方使用数组元素,其格式为:其中下标为非负的整型常数或表达式,其数据类型为int、short、byte,但不可以是long。Java会对数组的下标进行越界检查以保证安全性。下标的范围是从0到数组的长度减一。,数组名下标,多维数组严格的说Java并不支持多维数组,多维数组的声明是通过对一维数组的嵌套形式声明来实现的。这样的好处是允许行的长度可变。二维数组的声明分配二维数组空间数组分配空间是连续的,构造方法如下:直接为每一维分配空间,类型 数组名;

22、,类型 数组名;,数组名=new 类型行数列数;,从最高维开始,分别为每一维分配空间可以通过属性length获得该数组的元素个数,方法如下:数组名.length求出多维数组中第一维的长度;数组名0.length求出多维数组中第二维的长度;依此类推求出其余维的长度。在使用new来分配内存时,对于多维数组至少要给出最高维的大小。在声明二维数组的同时分配数组空间,类型 数组名=new 类型行数列数;,类型 数组名=new 类型行数列数;,二维数组初始化赋初值与一维数组类似,可以直接对每个元素赋值,或者使用初值表赋值。以下两种初始化方式是等价的:,类型 数组名=初值表1,初值表2,初值表n;,数组名行

23、下标列下标=初值;,多维数组的创建和使用声明创建使用,类型 数组名;,类型 数组名;,类型 数组名=new 类型长度1长度2长度n;,类型 数组名=new 类型长度1长度2长度n;,数组名下标1下标2下标n,复制数组通过System类提供的arraycopy方法,格式如下其中src和dest分别表示被复制的数组和目的数组。srcpos、destpos和length分别表示源数组中的开始位置、目的数组中的开始位置和要复制的数组元素的数量。,public static void arraycopy(Object src,int srcpos,Object dest,int destpos,int

24、length),2.6 字符串,字符串是字符组成的序列,Java语言将字符串作为对象来处理。分类:String类用于存储和处理那些值不会发生改变的字符串常量;StringBuffer类用于存储和操作那些可能发生变化的字符串变量。字符串变量的声明String字符串的创建其中字符串内容即为赋给字符串变量的值。,String 字符串变量名=new String();,String 字符串变量名=new String(字符串内容);,StringBuffer字符串的创建字符串变量赋值引用字符串变量声明以后,就可以为其赋值引用。赋值引用既可以为变量赋予一个字符串常量,也可以将一个字符串变量或表达式的值赋

25、给字符串变量。,StringBuffer 字符串变量名=new StringBuffer();,StringBuffer 字符串变量名=new StringBuffer(字符串内容);,字符串连接操作字符串的简单连接利用“+”来完成。其他类型的数据与字符串进行“+”运算时,将自动换成成字符串。以下两段语句是等价的:字符串的输出,(字符串);,(字符串);,字符串常用操作String类提供的字符串操作方法:,续,StringBuffer类提供的字符串操作方法,2.7 表达式、语句和块,表达式(Expression)表达式是由操作数和运算符按照一定的语法形式组成的符号序列,计算出单一值,该值的类型取决于表达式中使用的元素。表达式是语句的核心部分。Java允许使用各种较小的表达式构成复合表达式,但表达式各个部分的数据类型要匹配。,语句(Statement)语句是程序的基本组成单位,组成了一个完整的执行单元,大致相当于自然语言中的句子。下面的表达式类型以;结尾时可以组成一个语句:赋值表达式;+或-;方法调用;对象创建表达式。上述语句被称为表达式语句。除了这些,还有另外两种语句:声明语句用来声明一个变量等。控制流语句控制语句的执行次序。,块(block)是位于成对大括号之间的零个或多个语句的语句组,可以在允许使用单一语句的任何位置使用块。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号