1、第二章,数据类型、变量与运算符,一、Java符号,Java语言采用Unicode字符集,它由16位数组成,而通常采用的ASCII码也被包含其中。 Java符号分为:标识符、关键字、运算符和分隔符。,标识符,标识符用来命名变量、符号常量、数组、方法、类、对象、接口、包等。为了提高程序的可读性,标识符最好“见名知义”,而且规范大小写的使用方式。Java 的标识符由字母、数字、_和$组成,其中字母可以是大写或小写的英文字母,数字为 0 到 9,长度不限,但实际命名不宜过长。 标识符的第一个字符必须为字母、下划线“_”或美元符号“$” 。标识符区分大小写。,合法标识符:A a1 $Systembol
2、square ex_sa不合法标识符:1a(以数字1开头) break(禁止使用保留字)TWO WORDS(含有空格).NO(不允许字符圆点开头),标识符示例,Java关键字,关键字也称为保留字,是 Java 语言规定了特定含义的标识符。用户只能按照系统规定的方式使用,不能自行定义。 关键字一律用小写字母表示。按用途划分为:数据类型、语句、修饰、方法、类、接口和包。,常用关键字表,运算符和分隔符,将如“+”符号称为运算符。Java语言中包含有算术运算符、逻辑运算符、位运算符等。 分隔符被用来区分 Java 源程序中的基本成分(标识符、关键字、分隔符、运算符和常量),分隔符分为注释、空白符和普通
3、三种。 分隔符使程序代码组织成编译器所理解的形式,它构造了语句的结构和程序的结构。,注释,注释是为源程序增加必要的解释说明的内容,其目的是提高程序的可读性,书写注释是编写程序的良好习惯。Java中有三种形式的注释:/ 注释部分 (单行)/* 注释部分 */ (多行)/* 注释部分 */ (多行),二、数据类型,Java基本数据类型,Java数据类型及其在定义时使用的关键字,引用类 型,三、常量,常量是指在程序的整个运行过程中其值始终保持不变的量。 在Java系统中,常量有两种形式:一种是以字面形式直接给出值的常量;另一种则是以关键字final定义的标识符常量。不论哪种形式的常量,一经建立,在程
4、序的整个运行过程中其值始终不会改变。 Java中常用的常量,按其数据类型来分,有整数型常量、浮点型常量、布尔型常量、字符型常量和字符串常量等5种。,整型常量 四种类型:byte, short, int, long; 整数的常数缺省类型为int,形式是09表示的整数,前面可以有负号,2,234234,如果整数太长,就必须用长整型,在常数后面跟L,2147483649L 浮点型常量 两种类型:double(双精度)、float(单精度) 两种表示形式:小数点形式、指数形式(如12.02342e12313 ) Java语言在使用浮点型数据时默认为double型 如果要将一个实常数赋值给单精度变量,则
5、在常数后面必须有小写的f,否则在编译的时候系统提示类型不匹配。,常量,字符型常量 四种形式:(1)单引号括起来的单个字符;(2)转义字符,以反斜杠()开头,将其后的字符转变为另外的含义; 布尔型常量: 只有两个值:true 和 false,Java的转义字符,常量的定义与使用,所谓常量就是它的值在程序运行过程中只被赋值一次,不会变化 它的定义方法是: final 数据类型 常量名=初始值; 注意:该常量只能赋值一次,也可以在程序运行过程中赋值。,例程,public class finalDemopublic static void main(String args) final int a=1
6、0;final int b;System.out.println(a);b = 20;System.out.println(b);/b = 30;System.out.println(b); ,四、运算符,运算符规定表达式中各变量和常量运算的符号。 算术运算符:加、减、乘、除、取余,注意除数不能为零,整数相除结果只有整数部分 关系运算符:=, !=, , , , , ),左移运算(),位或运算(|),位且运算(&),位反运算(),异或运算(),算术运算符,一元运算符(单目运算符) +、-、- 二元运算符(双目运算符) +、-、*、/、% 三元运算符 (三目条件运算符) (?:)D= 表达式A
7、?表达式B :表达式C A为真,返回表达式B A为假,返回表达式C例:int x=5, y=8; long z=2;long k=x3?y:z; /k=8,算术运算符,注意:(1) 两个整数类型的数据做除法时,结果只保留整数部分。如:2/3的结果为0。(2) 只有整数类型才能进行取余运算,其结果是两数整除后的余数。例如:9%2的结果为1。,Java举例,public class exp1 public static void main (String args ) int x, y, z, a, b, c;a=13;b=7;c=8;x= a%b/c;y= 5+(+a); z= 8+-b+(c+
8、);System.out.println (“x=” +x);System.out.println (“y=”+y);System.out.println (“z=”+z); ,关系运算符,利用关系运算符连接的式子称为关系表达式。关系运算实际上就是我们常说的比较运算,有6个运算符号。 注意:关系表达式的运算结果是一个逻辑值“真”或“假”,在Java中用true表示“真”,用false表示“假”。注意区分等于运算符“”和赋值运算符“=”。,关系运算符,Java举例,public class exp2public static void main (String args )int x=15, y
9、=7;boolean c = (xy);boolean d = (float)x/y = (double)x/y);System.out.println (“c=“ + c);System.out.println (“d=“ + d); ,逻辑运算符,利用逻辑运算符将操作数连接的式子称为逻辑表达式,逻辑表达式的运算结果是布尔型值。,逻辑运算符举例,public class exp3 public static void main (String args )boolean x, y, z, a = true, b = false;x = (!a);y = (x ,赋值运算符Java语言中,赋值
10、运算符是“=”。赋值运算符的作用是将赋值运算符右边的数据或表达式的值赋给赋值运算符左边的变量。注意赋值号左边必须是变量。例如:double s=6.5+45; /将表达式6.5+45的和值赋给变量s,复合赋值运算符(快捷赋值运算符)在赋值运算符“=”之前加上其他运算符,则构成复合赋值运算符。,运算符的优先级,续前表,五、数据类型的转换,Java是强类型语言,在进行赋值操作时要对类型进行检查。数据类型转换分为“自动类型转换”和“强制类型转换”; 当将占位数少的类型赋值给占位数多的类型时,Java自动使用自动类型转换; 当将占位数多的类型赋值给占位数少的类型时,需要由用户使用强制类型转换,强制转换
11、的格式为(类型名)(表达式) 转换前的数据类型与转换后的数据类型要兼容 如果是两个不同的数据类型参加运算,结果的数据类型是较高的那个数据类型,数据类型转换规则,数据类型由低到高为byte、short、char、int、long、float、double 同种数据类型转换: 低级变量可直接转化成高级变量如:byte b; int i = b; 高级类型转换为低级类型,可以使用强制类型转换如 int i; byte b = (byte) i; 转换规则为: (1)(byte 或short )op intint (2)(byte或short或int)op longlong (3)(byte或shor
12、t或int或long)op floatfloat (4)(byte或short或int或long或float)op doubledouble (5)char op intint 布尔型与其他数据类型之间不能强制类型转换,数据类型转换举例,public class exp4 public static void main (String args )int a = 15;float b = 7;float c = a/(int)b;float d = (float)a/b;int e = a/(int)c;System.out.println(“c=“+c+“ d=“+d+“ e=“+e); ,
13、数据类型转换举例,import java.io.*; public class exp5 public static void main(String args) int i=65;char c=a, cc=陈;System.out.println(i); System.out.println(char)i); System.out.println(c); System.out.println(int)c); System.out.println(cc); System.out.println(int)cc); System.out.println(char) 29579); ,六、变量,变量
14、是一段内存空间的符号表示 变量用来存储程序运行期间的数据 变量在程序的运行当中可以改变 变量的三个要素:变量名、数据类型、变量值 根据变量名,存取变量中存放的数据 数据类型确定该变量中可以存放什么类型的数据 变量值是变量中存放的当前数据,定义变量,在 Java 语言中,所有的变量必须先定义后使用。其格式为: 数据类型 标识符1=初值,标识符2.; 变量在使用过程中,要往变量里面放上新数据,消除原来的数据,称之为赋值 说明:先计算等于号右边的表达式的值,然后将该值存放到等于号左边的变量中。 在声明变量时赋值,称之为初始化,变量只有赋值之后才能使用。,例程(1),public class decl
15、arationspublic static void main(String args) double grade1,grade2,total,average;grade1 = 85.5;grade2 = 97.0;total = grade1+grade2;average = total/2.0;System.out.println(“The average grade is “+average); ,例程(2),public class showChar public static void main(String args) char a = 中;char b= 国;System.out
16、.println(“+a+b); ,基本类型变量与引用类型变量,基本类型变量中存放的是数据 引用类型变量中存放的是指向对象的引用(地址) 基本类型变量的初始值分别对应的是false, 0, 0.0f, 0.0, 0等 引用类型变量的初始值为null,即该变量中没有存放对象 如果变量定义的是基本数据类型,变量在声明时就为其分配内存空间, 要使用引用类型变量,必须先用 new创建对象,为声明的变量分配空间,并把对象的地址放到变量中去。,引用类型变量举例,public class referenceDemo public static void main(String args) String hello; / System.out.println(hello); hello = new String(“Hello, how are you!“);System.out.println(hello);hello = “String object can be created in this way!“;System.out.println(hello); ,课后习题,p33: 第1、4大题 p38: 第6大题 p44: 第4大题 p53: 第3、6、12大题,