Java语言基础课件_第1页
Java语言基础课件_第2页
Java语言基础课件_第3页
Java语言基础课件_第4页
Java语言基础课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

Java语言基础

14八月202422.1Java程序的构成Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在JavaApplication中,这个主类是指包含main方法的类;在JavaApplet中,这个主类是一个系统类Applet的子类,是Java程序执行的入口点。在同一个Java源程序中定义的若干类之间没有严格的逻辑关系要求,但它们通常是在一起协同工作的,每一个类都可能需要使用其他类中定义的静态属性或方法

Java程序中定义类使用关键字class,每个类的定义有类头定义和类体定义两部分组成。类体部分用来定义静态属性和方法这两种类的成员,其中方法类似于其他高级语2.1.1一个Java源程序14八月20243言的函数,而静态属性则类似于变量。类头部分除了声明类名之外,还可以说明类的继承特性,当一个类被定义为是另一个已经存在的类(称为这个类的父类)的子类时,它就可以从其父类中继承一些以定义好的类成员而不必自己重复编码。Java程序的每一条Java语句都由分号结束,其构成应该符合Java的语法规则。类和方法中的所有语句应该使用一对大括号括起。Java程序的每一个类中,除了静态属性声明语句之外,其他的执行具体操作的语句只能存在于类方法的大括号之中,而不能跳出方法孤立地直接书写在类中。

14八月20244

注解是指程序中用来说明程序的文字。它是为了方便程序员理解,维护该程序,并不参与程序的编译执行。Java的注解有3种:单行注解符号“//”后面的单行内容不参与编译;多行注解用“/*…*/”包含起来的一段文本,中间可以换行;用“/**…*/”包含起来的,它可以用javadoc工具来生成HTML形式的开发文档。也可以在写程序的时候将某些代码注释掉以便调试程序。2.1.1Java的程序注解14八月202452.1.3Java的的标识符与关键字

关键字是Java语言保留的字符串,表示特殊的指令,而不能用来做为程序中的标识符。标识符是用来代表程序中一个元素的名字,比如变量、函数、类等。在Java中标识符由字母、下划线、“$”和数字组成,只能以字母、“$”或者“_”开头,中间不能有空格,并且不能使用关键字。但可以包含关键字作为它的名字的一部分。在Java中中文字符也是字符,所以也可以作标识符。Java的标识符区分大小写,而且没有长度的限制,可以为标识符取任意长度的名字。标识符的名字要有一定的意义,让人一看标识符就知道这个变量、函数的大概作用,即常说的编码规范。

14八月20246在Java语言中,有三种基本类型,即简单类型(整型、浮点型、字符型、布尔型等)、数组类型(整型、浮点型、字符型、布尔型等)和复合类型(类、接口)。可以看出Java的数据类型与C语言相近,其不同之处在于:首先,Java的各种数据类型占用固定的内存长度,与具体的软硬件平台环境无关;其次,Java的每种数据类型都对应一个缺省的数值,使得这种数据类型的变量的取值总是确定的。这两点分别体现了Java的跨平台特性和安全稳定性。

2.2基本数据类型14八月20247在Java语言中有四种整数类型,每种类型可以使用关键字byte,short,int和long中的任意一个进行声明。所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。整数类型的文字可使用十进制、八进制和十六进制表示。首位为“0”表示八进制的数值,首位为“0x”表示十六进制的数值。整数类型默认为int类型,如在其后有一个字母“L”表示一个long值(也可以用小写“l”)。

2.2.1整型

14八月20248

使用char类型可表示单个字符,字符是用单引号括起来的一个字符,如‘a’,‘B’等。Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是ASCII集。

与C语言类似,Java也提供转义字符,以反斜杠“\”开头,将其后的字符转变为另外的含义。值得注意的一点是,用双引号引用的文字,就是我们平时所说的字符串类型不是原始类型,而是一个类string,它被用来表示字符序列。字符本身符合Unicode标准且上述char类型的转义字符适用于string。2.2.2字符型

14八月202492.2.3浮点型

在Java语言中有两种浮点数类型;float和double。如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数。如果不明确指明浮点数的类型,浮点数默认为double。

在两种类型的浮点数中,float为32位(单精度),double为64位(双精度)。也就是说double类型的浮点数具有更高的精度。

2.2.4逻辑型逻辑类boolean的数据类型有两种文字值:true和false。在Java语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算。14八月2024102.2.5变量与常量在Java中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。

变量的值是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。注意以下几点:(1)变量名必须是一个合法的标识符。变量名应具有一定的含义,以增加程序的可读性。(2)变量类型可以为前面所说的任意一种数据类型。(3)声明一个变量的同时也就指明了变量的作用域。变量的作用域指明可访问该变量的一段代码。(4)变量的声明中多个变量间用逗号隔开。(5)在Java程序中声明变量后,需要给该变量赋值。可以用赋值语句来初始化变量——任何变量都不能没有初始值,否则无法通过编译。14八月202411

Java语言是支持两个不同数值类型之间的强制类型转换的,一个变量从一个类型强制转换到另一个类型,转化后的变量要受到新类型的制约。

类型转换语法格式:(type)variableName

类型变量名

2.2.6数据类型的转换14八月202412自动类型转换整型、浮点型、字符型数据可以混合运算。在运算中不同类型的数据先转化为同一种类型然后进行计算。自动类型转换原则是从在机器中占位(bit)少的类型向占位多的类型方向进行转换。强制类型转换在Java语言中强制类型转换是指从在机器中占位多的类型向占位少的类型方向进行转换,例如int类型转换成byte类型。强制类型转换需要使用类型转换语法格式,但是有些类型是不允许转换成另一种类型的,例如boolean类型不能转换成int等类型。14八月2024132.3运算符与表达式

Java语言的运算符(operator)指明对操作数所进行的运算,运算符按照操作数的数目来划分为单目运算符(例如~、++)、双目运算符(例如+、>)、三目运算符(例如?:)。基本运算符包括赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符等。Java语言的表达式是由标识符、数据和运算符等的组合而构成的,它基本上和C\C++语言的表达式一样。14八月2024142.3.1赋值

赋值运算符“=”把一个数据赋给另一个变量。Java语言支持简单算术运算符和赋值运算符的作用在赋值运算符两侧的类型不一致的情况下,如果左侧变量的数据类型的级别高,则就把右侧的数据转换为与左侧相同的高级数据类型,然后赋值给左侧的变量。否则需要使用强制类型转换运算符。

在赋值符“=”前加上其他运算符,即构成扩展赋值运算符。用扩展赋值运算符可表示为:

varoperator=expression14八月2024152.3.2算术运算算术运算是针对数值类型操作数进行的运算。根据需要参与运算的操作数的数目要求,可将算术运算符分为双目运算符和单目运算符两种。双目算术运算符双目运算符有:+、-、*、/、%五种。要注意“/”运算符对于与整数和浮点数的运算结果是不同的。取模运算符“%”一般用于整数运算,它是用来得到余数部分。单目算术运算符变量的自增与自减和++与—出现在该变量的前后位置无关。无论是++x还是x++均表示x要增1,且表达式的值与运算符的位置有关。14八月2024162.3.3关系运算关系运算符也称为比较运算符,是用于比较两个数据之间的大小关系的运算符。关系运算结果是布尔值(true或false)。2.3.4逻辑运算逻辑运算是针对布尔型数据进行的逻辑判断运算,运算的结果仍然是布尔型量。常用的逻辑运算符有:与(AND)、或(OR)、非(NOT)。14八月202417

2.3.5位运算位运算是对操作数以二进制比特位为单位进行的操作运算,位运算的操作数和结果都是整型量。移位运算符移位运算符是将某一变量所包含的各比特位按指定方向移动指定的位数,移位运算符通过对第一个运算对象向左移位或向右移位来对数据执行位操作,移动的位数由右边的操作数决定,移位的方向取决于运算符本身。按位逻辑运算位运算符&、|、~、^分别提供了基于位的与、或、求反、异或操作。其中异或是指对应的两位数值不同时,结果为1,否则为0。

14八月2024182.3.6其他运算几点说明:条件运算符是唯一的一个三目运算符,其结构如下:条件?表达式1:表达式2其含义是如果条件的计算结果为真,则结果为表达式1的计算结果,否则为表达式2的计算结果。instanceof

用来决定第一个运算对象是否为第二个运算对象的一个实例。14八月2024192.3.7运算符的优先级运算符的优先级决定了表达式中执行不同运算的先后顺序,在运算符优先级相同时,运算的进行次序取决于运算符的结合性。运算符的结合性分为左结合和右结合,左结合就是按照从左向右的次序计算表达式,而右结合就是按照从右到左的次序计算表达式。

14八月2024202.4数组

Java语言中,数组是一种最简单的复合数据类型。数组的主要特点如下:数组是相同数据类型的元素的集合;数组中的各元素是有先后顺序的,连续存放在内存之中;每个数组中的元素用整个数组的名字和它在数组中的位置(称为下标)表达。14八月2024212.4.1数组声明、创建、初始化声明数组声明数组是定义一个数组的名称、维数和数组元素的类型。有两种定义格式:格式1:数组元素类型数组名[];格式2:数组元素类型[]数组名;其中数组元素的类型可以是基本类型,也可以是类或接口。创建数组数组声明只是定义了数组名和类型,并未指定元素的个数。与变量一样,数组的每个元素需要占用存储空间,因此必须通过某种方式规定数组的大小,进而确定数组需要的空间。给已声明的数组分配空间可采用如下格式:

数组名=new数组元素类型[数组元素个数]

14八月202422也可以在声明数组的同时给数组规定空间,一旦数组创建以后,数组就有了固定长度的结构,数组中各元素通过下标来区分,下标从0开始,下标最大值为数组元素的个数减1。当数组的元素类型为基本类型时,在创建存储空间时将按照默认规定给各元素赋初值。数组的初始化

给数组元素分配空间和赋初值可以采取以下方式:声明数组时给数组一个初值表,格式如下:

类型数组名[]={初值表};所有的数组都有一个属性length,它代表了数组元素的个数。使用数组时,要注意下标不要超出范围。如果下标超出范围,则运行时会产生“数组访问越界异常”。14八月2024232.4.2数组使用在方法调用中,数组也可以作为方法参数来传递。但要注意数组是属于引用类型的参数传递,也就是在方法中对虚参数组的操作会影响实参数组。在Java语言应用程序的main方法中有一个字符串数组参数,该数组中存放所有的命令行参数,命令行参数是给Java语言应用程序提供数据的手段之一,它跟在命令行运行的主类名之后,各参数之间用空格分隔。使用命令行参数有利于提高应用程序的通用性。如果命令行参数中有引号,则两个引号之间的字符系列为一个参数,空格作为参数的分隔符。如果引号不匹配,则从最后一个引号到行尾的所有字符将作为一个参数。14八月2024242.4.2多维数组Java语言中,多维数组被看作数组的数组,多维数组的定义是通过对一维数组的嵌套来实现的。即用数组的数组来定义多维数组。多维数组中最常用的是二维数组,下面主要以二维数组为例介绍多维数组的使用。声明数组

二维数组的声明与一维数组类似,如下所示:格式1:数组元素类型数组名[][]格式2:数组元素类型[][]数组名;14八月202425二维数组的创建和初始化为二维数组创建存储空间有两种方式:直接为每个一维数组分配空间;从最高维开始,按照由高到低的顺序为每一维数据分配空间Java语言中,由于把二维数组看作是数组的数组,不要求二维数组中每一维数组的大小相同。要获取数组的行数,可以通过如下方式获得:数组名.length要获取数组的列数则要先确定行,再通过如下方式获取列数:数组名[行标].length

在二维数组创建空间时,如果元素是基本类型,系统将按照默认规则赋初值;如果元素类型为其他引用类型,则其所有元素为未赋初值状态(null)。但可以在数组定义时同时进行初始化。14八月2024262.5流程控制语句流程控制语句是用来控制程序中各语句执行顺序的语句,使程序设计中非常关键和基本的部分。流程控制语句可以把单个的语句组合成有意义的、能完成一定功能的小模块。最主要的流程控制方式是结构化程序设计中规定的三种基本流程结构。2.5.1结构化程序设计的三种基本流程结构化程序设计原则是公认的面向过程编程应遵循的原则,它使得程序段的逻辑结构清晰、层次分明,有效地改善了局部程序段的可读性和可靠性,保证了程序质量,提高了程序开发的效率。14八月202427结构化程序设计的最基本原则是:任何程序都是可以由三种基本流程结构构成,即顺序结构、分支结构和循环结构。14八月202428三种流程结构的主要特点是:均为单入单出结构,每种结构仅有一个入口点,结构执行完毕后,仅有一个出口点。顺序结构和选择结构为开放式结构,执行完后立即退出;而循环结构为封闭式结构,只要满足条件则反复执行结构内的语句。三种基本结构可以相互嵌套。14八月2024292.5.2顺序结构顺序结构是三种结构中最简单的一种,即语句按照书写的顺序依次执行。从宏观上来看,整个程序就是一个顺序结构。2.5.3选择结构Java中的分支结构可以由两种选择语句来实现,一个是实现双选择的if语句,另一个是实现多分支的switch开关语句。14八月202430if语句if语句的一般形式是:if(条件表达式)语句块;//if分支

else

语句块;//else分支块其中条件表达式用来选择判断程序的流程走向。在程序的实际执行过程中,如果条件表达式的取值为真,则执行if分支的语句块,否则执行else分支的语句块。在编写程序时,也可以不书写else分支,此时若条件表达式的取值为假,则绕过if分支直接执行if语句后的其他语句。有时也会用到if-else复合结构。但要注意else字句不能单独作为语句使用,它必须和if配对使用。

14八月202431switch语句switch语句是多分支的开关语句,它的一般格式如下:switch(表达式){case判断值1:语句块1;//分支1case判断值2:语句块2;//分支2……case判断值n:语句块n;//分支ndefault:语句块n+1//分支n+1}

switch语句执行时,首先计算表达式的值,这个值必须是整型或字符型,同时应与各个case分支的判断值的类型相一致。计算出表达式的值之后,将它先与第一个case分支的判断值相比较。若相同,则程序转入第一个case分14八月202432支的语句块;否则,再将表达式的值与第二个分支相比较……依此类推。如果表达式的值与任何一个case分支都不相同,则转而执行最后的default分支;在default分支不存在的情况下,则跳出整个switch语句。各个case和default出现的次序不影响执行的结果。

需要注意各个case后面的常量不能有相同的值。还有各个语句块可以有多条语句,不必使用大括号。switch语句也允许嵌套。还要注意的是,switch语句的每一个case判断,都只负责指明流程分支的入口点,而不负责指定分支的出口点,分支的出口点需要编程时用相应的跳转语句来标明。14八月2024332.5.4循环结构循环结构是利用循环语句来实现的。循环语句是在一定条件下反复执行一段代码,被反复执行的程序段称为循环体。Java语言中提供的循环语句有三种:while语句、do-while语句、for语句。

14八月202434while语句while语句的一般形式是:

while(条件表达式)

循环体while语句的执行时,首先检查表达式的值是否为真,若为真,则执行循环体,然后继续判断是否继续循环,直到表达式的值为假,直到表达式的值为假,执行后续语句。循环体通常是一个组合语句,也可以是单个语句。

while循环的特点是“先判断,后执行”。如果条件已开始就不满足,则循环执行为0次。另外,在循环体中通常通过执行某个操作来改变循环条件,如果循环条件不改变,则循环会陷入死循环中。在程序设计中要避免死循环。14八月202435do-while语句如果需要在任何情况下都先执行一遍循环体,则可以采用do-while循环,它的格式如下:do{

循环体}while(条件表达式)do-while循环的特点是:“先执行,后判断”,在执行时,先执行循环体的语句,在检查表达式,若表达式的值为真,则继续执行循环体,否则,结束循环,执行后续语句。与while循环相比,循环体至少要执行一次。14八月202436for语句

for语句一般用于事先能够确定循环次数的场合,其格式为:

for(控制变量设定初值;循环条件;迭代部分)循环体for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后通过执行迭代部分给控制变量增值。完成一次循环后,重新判断终止条件。使用for循环要注意一下几点:初始化、终止条件以及迭代部分都可以为空(但分号不能少),三者均为空时,相当于一个无限循环。在初始化部分和迭代部分可以使用逗号表

温馨提示

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

评论

0/150

提交评论