第2章Java语言基础知识.ppt

上传人:本田雅阁 文档编号:3423503 上传时间:2019-08-24 格式:PPT 页数:70 大小:541.54KB
返回 下载 相关 举报
第2章Java语言基础知识.ppt_第1页
第1页 / 共70页
第2章Java语言基础知识.ppt_第2页
第2页 / 共70页
第2章Java语言基础知识.ppt_第3页
第3页 / 共70页
第2章Java语言基础知识.ppt_第4页
第4页 / 共70页
第2章Java语言基础知识.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第2章Java语言基础知识.ppt》由会员分享,可在线阅读,更多相关《第2章Java语言基础知识.ppt(70页珍藏版)》请在三一文库上搜索。

1、第2章 Java 语言基础知识,1,主要内容,2.1 Java语言基本元素 2.2 Java基本数据类型 2.3 引用数据类型 2.4 基本数据类型的封装类 2.5运算符及表达式 2.6 Java控制语句,2,2.1 Java语言基本元素,(1)标识符(identifier) 标识符是程序员提供的名字,对程序中的各个元素加以命名时使用的命名记号。 需要命名的元素包括:类名、变量名、常量名、方法名。标识符的长度不限,但第一个字符必须是这些字符之一: 大写字母 (A-Z) 小写字母 (a-z) 下划线 $符号 标识符的第二个字符及后继字符可以包括数字字符(0-9),3,2)保留字 也称为关键(ke

2、y)字,由小写的英文字母组成,赋予这些保留字专门的意义和用途,程序员不能再用作用户自定义标识符。 abstract break byte boolean catch case class char continue default double do else extends false final float for finally import implements int interface instanceof long length native new null package private protected public final return switch synchro

3、nized short static super try true this throw throws threadsafe transient void while if,4,保留字注意事项: Java中,true、false和null都是小写的。区别于C+中大写的TRUE、FALSE和NULL。 不能更改或重复定义保留字,也不能将Java保留字用作用户自定义标示符。,5,3)变量 即程序中的基本存储单元,其定义包括变量名、变量类型和变量值几个部分,定义格式: type varName = value; type为数据类型名;var为变量名,value为变量的值 int n = 4, n1

4、= 5;,6,与C+不同,作为类里定义的变量,其默认初值都是确定的,但是在方法(函数)实现中定义的变量必须程序员自己初始化。,7,4)常量 常量是用某些特征含义的标识符表示某些不变化的数值。 C通过#define命令把一个标识符定义为常量; C+用const定义常量; Java用 关 键 字 final来 定义;,8,其定义格式为: final 数据类型 常量标识符= 值; 例如: final int Max = 100,Min = 50; final double PI=3.14159;,2.2 Java基本数据类型,Java的数据类型分为两大类: 一种称为基本数据类型(Primitive)

5、,包括Java内置的: 整型 字节型 长整型 浮点型 字符型,10,另一种为引用(Reference)类型,这种类型属于自定义的。 通俗地说就是把基本类型根据需要组合为另外的类型; 可以为类类型、接口类型、数组类型和枚举类型。,Java数据类型,12,所有基本类型在不同的操作系统上所占的位数都是确定的。 所有基本类型的关键词都是小写的。,13,数据类型 位数 取值范围 char 16 0 65535 byte 8 -2727-1 short 16 -215215-1 int 32 -231231-1 long 64 -263263-1 float 32 3.4e038 3.4e038 doub

6、le 64 1.7e308 1.7e308,1)布尔类型(boolean) 布尔型数据用于确定真假条件,只有两个值true和false。 布尔型变量的定义如下: boolean b = true; 布尔型数据可以参与逻辑关系运算: ,14,2)字符类型(char) 字符类型是用于表示单个字符的数据类型; A表示字母字符A,9表示数字字符9。 Java采用16位的Unicode编码方式。同一种Java数据类型在任何一种机器中的大小都是相同的。,15,(a)字符常量 字符常量指用单引号括起来的单个字符,如a,A,以及转义字符。 (b)字符变量 字符变量是以char定义的变量, 如char c=a;

7、 一个字符变量在内存中占2个字节。,(3)整数类型(byte, short, int, long) 整数类型包括byte、short、int和long四种。 整型常量:与C/C+相 同,Java的整型常量数有三种形式 : 十进制整数,如123,456,0; 八进制整数,以0开头,如0123表示十进制数83; 十六进制整数,以0x或0X开头,如0x123表示十进制数291; 整型变量包括byte、short、int、long四种。,17,4)浮点数类型(float, double) 浮点常量 1. 十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0

8、 2. 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。,18,浮点变量 浮点变量有单精度和双精度之分。 通常浮点型的数据在不声明的情况下是double型的。,5)数据类型转换 数据类型可以自动类型转换,int、long、float数据可以混合运算。转换从低级到高级: 低-高 byte,short,char int long float double int i = 10; byte b=(byte)i; 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入 (int)25.7 =25; (int)-42.87f = -42;,20,数据类型

9、转换必须遵循如下规则: 不能对boolean类型进行类型转换; 允许把容量小的类型转换为容量大的类型; 在把容量大的类型转换为容量小的类型时必须使用强制类型转换 。,21,Jdk7在语法上的新特性: (1)可以用二进制来表示整数,只要在二进制数值前面加 0b或者0B 。 例: byte nByte = (byte)0b0001; short nShort = (short)0B0010; int nInt = 0b0011; long nLong = 0b0100L;,22,(2)数字可以出现下划线, 对于比较大的数字,下划线可以出现在数字里。 例: int a = 10_0000_0000;

10、 long b = 0xffff_ffff_ffff_ffffl; byte c = 0b0001_1000;,23,2.3 引用数据类型,引用数据类型是一种组合型数据类型,即把若干个数据类型组合在一起。 Java一共有四种引用类型,分别是类类型,接口类型, 数组类型和枚举类型。,24,关于引用类型,需要注意以下两点: 与基本数据类型不一样,创建引用类型并不在堆里分配任何存储空间, 如:String s;,25,一旦对它作初始化或创建一个新对象,就在内存里为它分配了一定空间。 String s = “asdf”; /初始化 /创建一个String对象并初始化。 String s = new S

11、tring(“asdf”); /创建一个Rectangle对象并初始化。 Rectangle oneRec = new Rectangle();,26,2.3.1 枚举,Java5.0以后新增添了枚举类型(Enumerate ),使用关键字enum,用常量来设置一组常量。例如: Enum SeasonsSPRING, SUMMER,AUTUMN,WINTER; 每个枚举常量实际上就是一个整数值,四个Seasons值分别为0,1,2,3。 例:2-1,27,2.3.1数组,数组是一种有固定大小用于储存相同类型数据的数据集合。,28,数组采用new分配空间。 每个数组都有一个由 public fi

12、nal 修饰的成员变量:length ,表示数组含有元素的个数 得到数组的大小:myArray.length /yes 不可以写为: myArray.lengh( ) /No!No!No!,29,(1)数组的声明与创建,声明(Declaration) 使用数组前必须对它进行声明。 不能直接使用,必须经过初始化分配内存后才能使用!,30,Type arrayName; 例如: int a1; String stringArray; 或者按照C/C+程序员的习惯 Type arrayName ; 例如: int a1; String stringArray; 例2-2,31,数组的创建,用new创

13、建一个新的数组。给它分配空间。 int orange ; /声明 orange = new int100; /创建,32,或者可以将数组的声明和创建一并执行 int orange=new int100; 注意:在java中,决不能像C语言那样在声明中指定数组的大小: int orange256; /NO! NO! NO!,33,(2)数组元素的初始化,对数组初始化最简单的方式是在声明数组名时,直接对它的各个元素进行初始化: int a=22, 33, 44, 55; int anArray = 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000

14、; String wkdays = “mon”,”Tue”,”Wed, “Thu”, “Fri”;,34,Java中创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。,35,数组在使用前,必须以适当的数值为数组元素赋值。例如: int orange = new int256; /creates 256 ints, initial value 0 orange7 = 32; /ok, accesses 1 element,36,如果是引用类型数组,则需要为对象变量分配空间,也必须先进行赋值。如欲使用一个类Date class Date int day, int mon, int yea

15、r; Date appts = new Date256; /creates 256 null reference appts7.mon = 10; /NO! appts7 is still null !,37,在能够访问对象之前,需要对每个引用元素赋值,使之不再是null, 指向一个具体的对象: Date appts = new Date256; for(int i=0; iappts.length; i+) apptsi = new Date(); appts7.mon = 10; /now OK! 注意:创建对象数组时出现失误是Java初学者常犯的错误,一旦出错,将会引起NullPoint

16、erExecption异常,38,(3) 数组的使用,下面的表达式使用数组的一个元素: arrayNameindex 下标从零开始计数 元素的个数即为数组的长度,可以通过 arryName.length引用 元素下标最大值为 length 1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException),39,【例2-3】访问数组越界,编译结果出错。 public class Ex2_3 public static void main(String args) int myData=new int10; /创建数组 for(int i=0; imyDat

17、a.length;i+) System.out.println(i+“tt“+myDatai); myData10=100; /将产生数组越界异常 ,40,(4)二维数组,数组可以是二维甚至多维的,即一个数组里的元素又包含数组。 二维数组的声明和构造如下: int myArray; 该语句声明一个2维整型数组,其初始值为null。,41,下面语句使数组的3个元素分别又是三个整型数组,每个元素里有含有5个整数。 int myArray = new int35; 例2-5,42,(5)数组类的方法,Arrays是Java类库提供的一个标准包,位于java.util,包含了很多静态成员方法。 【例2

18、-6】Arrays类常用方法的使用 【例2-7】arraycopy()实现数组的复制,43,2.4基本数据类型的封装类,Java中,除了引用类型外,基本数据类型也被封装为引用类型。 在Java库中,8种基本数据类型都有一个相应的,预定的引用类型。 例如,其中存在一个相应于整数的java.lang.Interger,这些类类型称为对象封装(object wrappers)。,44,基本数据类型包装类,45,(1)封装类的使用,例如: int i = 15; Integer myInt = new Integer(i); /把i封装为 Integer对象 /将myInt转换为String类型 St

19、ring s = myInt.toString();,46,注意:JDK 1.5 版引入了自动封装(autoboxing)的特性,上述例子可以直接赋值: int i =15; Interger myInt = i; (autoboxing) 即把基本数据类型变量int封装成Interger对象。,47,解封(Unboxing)是反向操作,即从封装的对象类型转换为与之相应的基本数据类型。 Double dObj = 27.0; /autobox double d = dObj; /unbox, gets value 27.0,48,(2)生成封装类对象的方法,方法:从基本数据类型的变量或常量生成

20、封装类对象 double x = 2.3; /自动封装,变量生成封装类对象 Double a = x; /常量生成封装类对象 Double b = new Double(6.25);,49,方法2: 从字符串生成封装类对象 Double d = new Double(“-2.45“); Integer i = new Integer(“3456“);,50,方法3: 已知字符串,可使用valueOf方法将其转换成封装类对象: Integer.valueOf(“345“); Double.valueOf(“5.6“);,51,(3)从封装类数据转换为基本数据类型数据的方法,方法1: 将封装类对象

21、转换回基本数据类型的数据 anIntegerObject.intValue(); /返回 int类 aCharacterObject.charValue(); /返回 char类型的数据,52,方法2:将字符串类型的对象直接转换成对应的基本数据类型的数据 Integer.parseInt(“123”) / 返回int类型的数据 Float.parseFloat(“123.5”) / 返回float类型的数据 例2-8,例2-9,53,2.5运算符及表达式,(1)运算符 算术运算符: +,*,/,%,+, 关系运算符: ,=,&,|, 赋值运算符: =,及其扩展赋值运算符如+=,=,*=,/=等

22、。 条件运算符: ? :,54,由于数据类型的长度是确定的,所以没有长度运算符sizeof。,55,(2)表达式 表达式是由操作元和运算符按一定的语法形式组成的符号序列。 例: x num1+num2 a*(b+c)+d 3.14 x=(y+z) x&y|z,56,2.6 Java控制语句,Java中的流程控制结构主要有三种: 分支结构(if-then, if-then-else, switch) 循环结构(for, while, do-while) 中断结构(break, continue, return),57,2.6.1分支结构,(1) if-else-if 语句 if语句的完整格式如下

23、: if (条件) 语句1; else 语句2; if-else-if 结构的语法如下: if(条件1) 语句1; else if(条件2) 语句2; else if(条件3) 语句3; . else语句n+1;,58,(2) switch语句,switch语句的结构如下: switch(表达式) case值1:语句1;break; case值2:语句2;break; case值3:语句3;break; default:语句4 ,59,现在字符串终于也可以 switch啦!,String s = . switch(s) case “cow“: processAnimal(s); case “d

24、og“: case “cat“: processPet(s); break; case “seed“: processPlan(s); default: processDefault(s); break; ,60,2.6.2循环结构,循环语句使语句或块的执行得以重复进行,一个循环重复执行同一套指令直到一个结束条件出现。 Java 编程语言支持三种循环构造类型:for,while 和 do 循环。,61,(1)for循环结构 for 循环需要在执行循环体之前测试循环条件,一般语法格式如下: for (初值表达式; boolean 测试表达式; 改变量表达式) 语句或语句块 ,62,(2)whil

25、e循环结构 while语句执行时当它的控制表达式是真时,while语句重复执行一个语句或语句块。它的通用格式如下: while (条件表达式) 语句或块 ,63,(3)do-while循环结构 do-while一般语法结构如下: do 语句或块; while (条件表达式);,64,(4) foreach语句 JDK1.5后,增添了一种新的foreach循环语句。 foreach语句是for语句的特殊简化版本,利用新的foreach语句,可遍历数组、集合。,65,格式如下: foreach的语句格式: for(元素类型t 元素变量x : 遍历对象obj) 引用了x的java语句; ,66,pu

26、blic void test1() /定义并初始化一个数组 int arr = 1, 3, 2; for (int x : arr) System.out.println(x); /逐个输出数组元素的值 ,67,2.6.3中断结构,Java 支持 3 种中断语句:break,continue和return。 break语句 break语句不单独使用,通常应用于swtich、while、do-while语句中,使程序跳出当前执行,不再执行剩余部分,转移到其他部分。,68,continue语句 continue语句必须用于循环结构中,功能是跳过该次循环,继续执行下一次循环。 有两种使用格式:不带标签的continue语句和带标签的continue语句。,69,return 语句 return语句总是用在方法中,有两个作用,一个是返回方法指定类型的值,格式为:return 表达式; 一个是结束方法的执行并返回至调用这个方法的位置, 格式为:return;,70,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1