1、第二章 JAVA编程基础本章学习要点 理解数据类型的概念;理解常量、常量值和变量的概念;掌握数据类型的自动转换和强制转换;掌握各种运算符的运算规则;掌握选择语句和循环语句的使用规则;掌握数组的定义和使用;掌握foreach语句的使用;深刻理解类和对象的概念;掌握类的定义、对象的创建和使用。2.1 对象和类的概念对象和类的概念 2.1.12.1.1 对象的概念对象的概念 2.1.22.1.2 类的概念类的概念2.1.12.1.1 对象的概念对象的概念 所谓对象就是现实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象的特点:1.对象具有唯一性
2、 2.对象具有属性和行为。2.1.22.1.2 类的概念类的概念 类是对对象的抽象,是对某一类事物的共性描述,定义了一类事物共有的特征属性和功能行为。对象和类有什么关系呢?类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体,每个对象都是独一无二的,对象也称为类的实例(instance)。类是对象的模板,通过该模板就能创建一个一个具体的对象。2.2 2.2 类的定义和对象的创建类的定义和对象的创建 2.2.1 2.2.1 类的定义类的定义 2.2.2 2.2.2 对象的创建对象的创建 2.2.3 2.2.3 对象的使用对象的使用2.2.1 2.2.1 类的定义类的定义 语法格式为:类
3、修饰符 class 类名 extends 超类名 implements 接口名列表 类体内容 其中,“类修饰符 class 类名 extends 超类名 implements 接口名列表”为类的声明部分,“”为类体部分。表示可选项,可以省略2.2.1 2.2.1 类的定义类的定义 类的最简化的定义格式如下:class 类名 成员变量 成员方法 2.2.1 2.2.1 类的定义类的定义“猫”类的定义代码如下。1 class Cat 2 String name;3 void catchMouse(Mouse mouse)4 System.out.println(name+“抓偷吃的”+mouse.
4、name);5 6 2.2.2 2.2.2 对象的创建对象的创建 Java语言中,使用new关键字来创建对象,具体格式如下:类名 对象名=new 类名();用Cat类创建一个cat对象:Cat cat=new Cat();其中“new Cat()”用于创建Cat类的一个实例对象,“Cat cat”则是声明了一个Cat类型的引用变量cat。中间的等号用于将Cat对象在内存中的地址赋值给变量cat,这样变量cat便持有了对象的引用。2.2.3 2.2.3 对象的使用对象的使用 对象的使用原则是先创建后使用。对象的使用是指对象引用类中的成员变量或方法。Java语言通过引用操作符“.”实现对象对成员变
5、量或方法的引用,一般格式为:对象名.成员变量名 对象名.成员方法名(参数列表)例如:Cat类的对象cat引用类的成员变量name和方法catchMouse(),代码示例如下:cat.name=”花花”;cat.catchMouse();2.3 2.3 类的成员变量类的成员变量 2.3.1 2.3.1 数据类型数据类型 2.3.2 2.3.2 常量和常量值常量和常量值 2.3.3 2.3.3 变量变量 2.3.4 2.3.4 数据类型之间的转换数据类型之间的转换 2.3.1 2.3.1 数据类型数据类型 数据类型的出现就是为了把数据分成所需内存大小不同的数据。在Java语言中,不同的数据类型占据
6、不同大小的内存空间,不同的数据类型的值表现形式也不一样。什么是数据类型呢?Java中的数据类型规定了不同的数据在内存中所占的空间大小,分为基本的数据类型和引用数据类型。基本数据类型共8种:int(整型)、long(长整型)、short(短整型)、byte(字节型)、double(双精度浮点型)、float(单精度浮点型)、char(字符型)和boolean(布尔型),2.3.1 2.3.1 数据类型数据类型 引用的数据类型包括类、接口和数组,还有一种特殊的null类型。所谓引用就是对一个“对象”的引用。“对象”包括实例和数组两种。null类型就是null值的类型,这种类型没有名字,空引用(nu
7、ll)是null类型变量唯一的值。空引用可以转换为任何引用类型。但是空引用只能被转换为引用类型,不能转换成基本类型。2.3.2 2.3.2 常量和常量值常量和常量值 1.常量值 常量值又称为字面常量,它是通过数据直接表示的。根据不同的数据类型,常量值分为整型常量值、实型常量值、字符型常量值和布尔型常量值四种。整型常量值:从数据的表现形式来看,整型常量值有十进制、八进制和十六进制三种表现形式,其中八进制的整型常量值是以0开头的,十六进制的整型常量值是以0 x(或0X)开头的,如10、017、0X9A等。从数据类型来看,整型常量值分为int、short、long和byte四种,长整型类型则要在数字
8、后面加大写的英文字母 L 或小写的英文字母l,如 697L(或697l),整型常量值默认的是int类型的,如不具体指定3为short或者byte,默认3为int。2.3.2 2.3.2 常量和常量值常量和常量值 实型常量值:从数据的表现形式来看,实型常量值就是带小数点的数据,如3.14、2.50等。实型常量默认在内存中占 64 位,是具有双精度型(double)的值。单精度型数值一般要在该数后面加 F 或 f,如 69.7f。字符型常量值:从数据的表现形式看,字符型常量值是带一对单引号的,如a、1等。注意:1是字符型常量值,而1是整型常量值。布尔型常量值:从数据的表现形式看,布尔型常量值只有t
9、rue和false。2.3.2 2.3.2 常量和常量值常量和常量值 常量。常量是指在程序的整个运行过程中值保持不变的量。常量不同于常量值,它可以在程序中用符号来代替常量值使用。常量的定义格式为:final dataType constantName 在定义常量时,需要注意两点:第一,在定义常量时就需要初始化,而且其值不允许再被更改。第二,为了与变量区分,常量名一般都用大写字母。2.3.3 2.3.3 变量变量 从字面意思上理解,常量的值一旦设置后就不能被修改的,而变量的值在程序运行期间可以被修改的。从内存的角度理解,在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存到一些内存
10、单元中,每个内存单元都有一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。变量的声明格式为:dataTyPe variableName 如:int a;2.3.4 数据类型之间的转换数据类型之间的转换 数据类型之间的转换分为两种情况:自动类型转换和强制类型转换。自动类型转换,指的是把常量值(或者具有值的变量)赋值给不同数据类型变量时,常量值(或者变量的值)会自动地转换成与变量相同数据类型的常量值。要实现自动转换,必须同时满足两个条件:第一:两种数据类型彼此兼容 第二:目标类型的取值范围大于源类型的取值范围,Java中基本数据类型的转换顺序为by
11、te、short、charintlong floatdouble。2.3.4 数据类型之间的转换数据类型之间的转换 当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这就需要进行强制类型转化。一般格式为:目标数据类型 变量=(目标类型)值 其中()为强制类型转换符,作用是将值强制转换为目标数据类型的值。如 int num=4;byte b=num;2.4 2.4 类的成员方法类的成员方法 2.4.1 Java 2.4.1 Java中的各种运算符中的各种运算符 2.4.2 Java 2.4.2 Java中顺序结构的语句中顺序结构的语句 2.4.3 Java 2.4.3
12、 Java中的选择语句中的选择语句 2.4.4 Java 2.4.4 Java中的循环语句中的循环语句 2.4.5 2.4.5 数组和数组和foreachforeach语句语句2.4.1 JAVA2.4.1 JAVA中的各种运算符中的各种运算符 从类的定义看出,类包含特征和行为,其中行为也称为类的成员方法,是用函数来定义的。函数就是完成一个个功能的代码块,而完成功能就离不开运算符和语句。1.算术运算符:对各种整数或浮点数等数值进行运算操作的符号 2.关系运算符:关系运算符中“关系”二字的含义是指一个数据与另一个数据之间的关系,这种关系只有成立与不成立两种可能情况,用逻辑值true或false来
13、表示。3.逻辑运算符:逻辑运算符的操作数只能是true或者false,判断的结果是 true 或 false。4.赋值运算符:指为变量或常量指定数值的符号,左边的操作数必须是变量,不能是常量或表达式。5.运算符的优先级 2.4.2 JAVA 2.4.2 JAVA中顺序结构的语句中顺序结构的语句 若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。顺序结构中的语句分为表达式语句、空语句和复合语句3大类。1.表达式语句 由各种运算符和操作数连接成的式子称为表达式,在表达式的后面加“;”就构成了表达式语句,如2+3*1;2.空语句 空语句就是一个
14、“;”,它在程序中什么也不做,也不包含具有实际性的语句。3.复合语句 复合语句又称为语句块,用一对花括号表示,花括号内可以包含很多条语句。2.4.3 JAVA 2.4.3 JAVA中的选择语句中的选择语句 选择语句适合于带有逻辑或关系比较等条件判断的计算。Java中提供了两种选择语句:if语句和switch语句。其中if语句又分为if语句、ifelse语句、ifelse ifelse语句及嵌套语句。1.if语句 if语句是指如果满足某种条件,就进行某种处理。语法如下:if(条件表达式)代码块 2.4.3 JAVA 2.4.3 JAVA中的选择语句中的选择语句 2.ifelse语句 ifelse
15、语句是指“如果XXX成立”,就要,“否则”就要.语法如下:if(条件表达式)代码块1 else 代码块2 2.4.3 JAVA 2.4.3 JAVA中的选择语句中的选择语句3.ifelse ifelse语句:这是一条多条件判断语句,适用于条件较多的情况下。语法如下:if(条件表达式1)代码块1else if(条件表达式2)代码块2 else if(条件表达式n)代码块nelse 代码块n+1 2.4.3 JAVA 2.4.3 JAVA中的选择语句中的选择语句 4.switch语句 switch语句也是多条件判断语句,与ifelse ifelse语句等价。语法如下:switch(变量或表达式)c
16、ase 整数(或字符、或字符串):代码块1 case 整数(或字符、或字符串):代码块2 default:代码块n 2.4.4 JAVA2.4.4 JAVA中的循环语句中的循环语句 Java中的循环语句主要有 while、dowhile、for。1.for语句 for 语句是一种在程序执行前就要先判断条件表达式是否为真的循环语句。假如条件表达式的结果为假,那么它的循环语句根本不会执行。for 语句通常使用在知道循环次数的循环中。for 语句语法格式如下所示:for(条件表达式1;条件表达式2;条件表达式3)代码块;2.4.4 JAVA2.4.4 JAVA中的循环语句中的循环语句 while 循
17、环语句可以在一定条件下重复执行代码。该语句需要判断一个测试条件,如果该条件为真,则执行循环语句(循环语句可以是一条或多条),否则跳出循环。while 循环语句的语法结构如下:while(条件表达式)语句块;2.4.4 JAVA2.4.4 JAVA中的循环语句中的循环语句 3.dowhile语句 dowhile 循环语句由循环条件和循环体组成,但它与 while 语句略有不同。dowhile 循环语句的特点是先执行循环体,然后判断循环条件是否成立。dowhile 语句的语法格式如下:do 语句块;while(条件表达式);2.4.5 2.4.5 数组和数组和FOREACHFOREACH语句语句
18、数组可以看成是多个具有相同数据类型的数据的集合,这些数据称为数组元素,数组元素之间有先后顺序。一个数组元素可以用数组名和这个元素在数组中的顺序位置来表示,顺序位置是从0开始的。如a0代表数组a中的第1个元素,其中0就是数组元素在数组中的位置。1.定义数组:Java语言支持两种格式定义数组。type arrayName;type arrayName;2.4.5 2.4.5 数组和数组和FOREACHFOREACH语句语句 2.数组的初始化 所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。数组的初始化有两种方式:静态初始化和动态初始化。静态初始化:初始化是由程序员显示指定每
19、个数组元素的初始值,由系统决定数组长度,如int a=new int1,2,3,4,5。或者采用简写的形式int a=1,2,3,4,5。动态初始化:只指定数组的长度,如int a=new int5;由系统为每个数组元素指定初始值。2.4.5 2.4.5 数组和数组和FOREACHFOREACH语句语句 3.遍历数组元素 数组最常见的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。访问数组元素的格式为:数组名数组元素下标。遍历数组元素通常用循环语句和foreach语句。2.4.5 2.4.5 数组和数组和FOREACHFOREACH语句语句 foreach语句 在遍历数组、集合方面,foreach语句为开发者提供了极大的方便。foreach 循环语句是 for 语句的特殊简化版本,主要用于执行遍历功能的循环。foreach 循环语句的语法格式如下:for(类型 变量名:集合)语句块;2.5 2.5 本章小结本章小结 引入了对象和类的概念,深入讲解了什么是对象,什么是类,对象和类的关系,如何定义类,如何用类创建对象,如何使用对象。由类的类体中包含成员变量和成员方法两部分,引出了类的成员变量和类的成员方法两节,重点讲解了Java中的各种数据类型和选择、循环语句。