Java程序设计基础 (2).ppt
第2章 Java程序设计基础,本章将介绍Java的基础知识,包括Java的基本数据类型、封装类型类、Java的操作符、Java中变量的赋值与类型转换、控制语句、断言等;并在介绍每个知识点时,附上对应的简单示例,供读者学习。本章是学习Java的基础。,2.1 Java中的关键字与标识符的命名规则,Java中的类名、变量名、方法名等都是标识符。只要编写代码,就不可避免地要使用标识符。标识符的对与错、好与坏极大地影响着源代码的正确性、可读性和可维护性。本节将介绍如何为标识符命名,主要包括命名标识符的语法规则、提倡的标识符命名习惯等两方面的内容。标识符是一个以字母开头,由字母或数字组成的字符序列,具体的规则有以下几点:(1)字母包括AZ、az、_、$以及在某种语言中代表字母的任何Unicode字符。另外,与大多数编程语言相比,Java中“字母”的范围要大得多,不单包含英文字母,还包括其他字符。例如,希腊的开发人员可以在标识符中使用字母。(2)数字包括09。(3)+和这样的特殊符号不能出现在标识符中,空格也不能出现。(4)标识符中的字符大小写敏感,但长度没有限制。(5)不能将Java中的关键字(如int、double等)用做标识符名。,2.2 Java中的基本数据类型,Java是一种强类型语言,代码中的每一个变量都必须明确声明类型。Java共有8种基本数据类型,可以分为4类。,2.2.1 boolean类型,布尔型(boolean):是用于逻辑条件判断表达的,boolean型的取值范围很简单,只含有两个值,非“True”即“False”,用来表示逻辑值的“真”或“假”。其字面常量也就只有“True”和“False”两种选择了,例如:1boolean t=True;2boolean f=False;,2.2.2 byte、short、int和long类型,整数类型表示没有小数部分的数字,包含负数。在Java中整数类型的范围与Java代码运行所在的机器无关,这样就解决了软件移植过程中的许多问题。Java程序要求所有数据类型在各类机器中范围都是固定的,因此运行结果都将一致。例如使用关键字int来定义int型整型变量:int x;int x_1;也可以一次性定义几个同类型变量:int x,x_1;同时也可以给变量赋初值:int x=1,x_1=2。1十进制2八进制3十六进制,2.2.3 float和double类型,浮点型用来表示有小数部分的数值,其中的两种数据类型全部为有符号数,故可为正数,亦可为负数。,2.3 封装类型,使用封装类进行开发之前,首先要了解封装类的基本知识。本节将介绍关于封装类的一些基本知识,主要包括如何创建封装类的对象以及封装类对象的特点等内容。,2.3.1 封装类型概述,读者已经知道,在基本数据类型与对象之间有不可逾越的鸿沟,二者永远不能相提并论。这从面向对象语言的角度来看,是个缺陷,而封装类作为鸿沟之上的桥梁,解决了这样的问题。其将基本数据类型与对象类型在一定程度上统一了起来,使得这个缺陷不再那么明显。封装类主要可以提供以下两个方面的功能。将基本数据类型封装后当作对象进行操作。为基本数据类型提供各种转换功能。,2.3.2 创建封装类对象,Java中每种基本数据类型都有其对应的封装类。,2.4 Java操作符,2.4.1 算术运算符与大多数编程语言一样,在Java中使用算术运算符“+”、“-”、“*”、“/”表示加、减、乘、除运算。另外,求余运算使用运算符“%”表示。本节将对上述运算符逐一进行详细介绍。1“+”运算符2“-”运算符3“*”运算符4“/”运算符5“%”运算符,2.4.2 自增自减运算,上一节介绍了算术运算符的功能及其操作,本节将介绍如何方便地使用自增、自减运算符。其功能是将被操作数的值递增1或者递减1,分别介绍如下。“+”:递增运算符,例如,1int a=15;2a+;/相当于a=a+1,a的值将变为16“-”:递减运算符,例如,1int a=15;2a-;/相当于a=a-1,a的值将变为14,2.4.3 关系运算,关系运算总是生成boolean型结果,其计算的是操作数之间的关系,如果关系描述是正确的,则返回True;否则,返回False。Java中包括以下几个关系运算符。“=”:等于“!=”:不等于“”:大于“=”:大于等于“”:小于“=”:小于等于1等于/不等于运算2比较大小运算,2.4.4 逻辑运算,逻辑运算符能够对逻辑值进行逻辑运算,产生一个boolean型的结果,其操作数只能是boolean型。Java中逻辑运算符包括:与运算、或运算和非运算,本节将对这3种逻辑运算进行介绍。1“与”运算2“或”运算3“非”运算,2.4.5 三元运算符,Java也支持三元运算,之所以称为三元运算,是因为此运算中有3个被操作数,其语法如下。()?:运算规则是:首先计算逻辑表达式的值,若为True,则返回“”的值,否则返回“”的值。,2.4.6 位运算,位运算允许对整数中的单个比特进行操作,位运算符会对两个操作数中对应比特位执行布尔代数运算,并产生一个结果。Java中有3种位运算符。“&”与:如果二者的对应位都是1,则结果为1,否则为0。“|”或:如果二者的对应位都是0,则结果为0,否则为1。“”异或:如果二者的对应位值相同,则结果为0,否则为1。“”非:将被操作数按位取反。,2.4.7 移位运算,移位运算操作的目标也是二进制的“位”,因此此运算也只能处理整型。移位运算符将数字的位向左或向右依次移动,从而产生一个新数字。Java中移位运算符包括:(右移)、(无符号右移),本节将对上述移位运算符逐一进行介绍。提示:移位运算与前面介绍的算术运算一样也具有类型自动提升功能,即经过移位运算的结果至少是int型。1“”右移3“”无符号右移,2.4.8 赋值运算,赋值是编程中最常用的运算之一,Java中的赋值运算有两种:普通赋值运算和运算赋值运算。本节将对这两种赋值运算符进行介绍。1普通赋值运算2运算赋值运算,2.4.9 括号及运算符间的优先级关系,本章上几节介绍了Java中一些主要的运算符。在开发过程中,经常需要混合使用,这就有必要了解这些运算符间的优先级关系。,2.5 Java中变量的赋值与类型转换,Java语言中,当把一种类型的变量转换为另一种类型的变量,就称其为变量的类型转换。Java中的类型转换分为:基本数据类型的转换和基本数据类型的造型。,2.5.1 基本类型转换,基本数据类型的转换,是由系统(Java虚拟机JVM)根据转换规则自动完成的。转换是在程序编译期完成的。系统的这种自动转换会在如下三种情况下发生:(1)变量的赋值;(2)方法调用;(3)算术运算过程中。这里需要说明的是,方法调用时的数据转换,例如:方法A中调用了方法B,同时方法A会向方法B传递参数,而传递的实际参数,与方法B中定义的形式参数类型不一致时,会发生类型的转换。1变量赋值与方法调用的基本数据类型转换规则2算术运算中的基本数据类型转换规则,2.5.2 强制类型转换,上一小节介绍了基本数据类型值间的自动转换,例如将int型值自动转换为double型值。但有时也需要将double型值转换为int型值,就需要通过编写强制类型转换的代码来实现。强制类型转换的语法格式为在圆括号中给出想要转换的目标类型,随后紧跟待转换的变量或字面常量,例如:double d=5.998;int i=(int)d;byte b=(byte)5.998;赋值后,变量i的值为5。强制转换赋值后,b的值也为5。,2.6 Java中的控制语句,前几个小节详细介绍了Java中各种运算符的使用,而在程序开发中,只有运算符是远远不够的,还需要进行流程控制。本小节将为读者介绍在Java中如何进行流程控制,主要包括选择语句、循环语句、循环控制语句等内容。,2.6.1 分支语句,Java语言中提供了2种选择判断语句:if else语句和switch语句。可以通过这两个语句实现条件分支。(1)if else语句(2)switch语句,2.6.2 循环语句,循环语句用来让程序重复执行某段代码,直到满足了程序员设定的结束条件为止。在Java语言中提供了三种循环语句,包括for语句、while语句、do while语句。(1)for循环语句(2)while循环语句(3)do while循环语句,2.6.2 循环语句,2.6.3 流程跳转语句,跳转语句是根据程序员的需要,在程序中根据条件来结束当前的操作而转向别的操作,这样做可以更好地控制程序的运行。Java语言中提供了三种跳转语句,包括break、continue以及return语句。(1)break 语句和continue语句(2)return语句,2.7 断言,断言是从J2S E1.4开始引入的一项技术,其设计初衷是为程序的开发与测试提供方便,在程序的测试过程中验证程序本身逻辑的正确性。本节将介绍断言各方面的知识,主要包括什么是断言、如何启用/关闭断言,以及如何防止滥用断言等内容。,2.7.1 断言的概念,本小节将介绍以下几个方面的内容。为什么要引入断言断言的语法规则1为什么要引入断言2断言的语法规则,2.7.2 如何启用/关闭断言,若想启用断言,首先必须编译带断言的代码,之后再在运行时启用。因此,本小节将分如下两方面进行介绍。断言与编译断言与执行1断言与编译2如何启动断言执行代码,2.7.2 如何启用/关闭断言,2.7.3 防止滥用断言,不是断言的所有合乎语法使用都是适当的,前面已经提过,断言的作用是用来检查程序的逻辑正确性,如果使用断言不是为了这个目的就是滥用断言。有一个简单的判断是否是滥用断言的方法,那就是如果在程序发布,正常运行时关闭断言会影响程序的功能,则一定是滥用断言。为了避免滥用断言,在实际开发中应该注意以下几点。断言表达式在使用前后程序的状态应该是一样的。断言失败是程序逻辑错误导致的,不应该对其进行捕获处理,而是应该改正程序逻辑上的问题。断言检查只是在开发或测试阶段用到,不应该在发布后还需要用断言。,2.8 小结,本章详细介绍了Java语言的基本要素包括标识符、关键字、常量、分隔符、注释、数据类型、变量以及运算符等;其次介绍了Java的控制语句、断言,并结合相应的示例供读者学习。本章是学习Java语言必须经过的基础阶段,通过学习,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型、运算符和控制语句,同时为后边章节的学习打下了坚实的基础。,