1、第二章Java基本程序设计,2.1 基本知识,2.1.1字符集 Java 语言采用unicode字符集,含有65535个字符,字母包括下面几种: A-Z,a-z 汉字、日文片假名、平假名和朝鲜文,Unicode字符格式:udddd d是一位十六进制数,例:u03c0表示希腊字母“”u0030-u0039表示0-9,Unicode 的网页地址: http:/ Hello、$1234、程序名、www_123 标识符可用作: 类名、变量名、方法名、数组名、文件名等,2.1.3关键字,关键字就是Java语言中已经被赋予特定意义的一些单词。常见有: abstract、class、public、try、c
2、atch、if、float、import、void等,2.1.4注释,notes!,Java有三种注释的方式: 1。/注释内容由/一直到此行结束,2。/*和*/定义一个注释块,3。/*开始,*/结束这种注释方法可用来自动产生文档,2.1.4注释,/*这是一个Java的小例子*/ public class Hello/定义一个类 public static void main(String args)System.out.println(“你好!”);/输出 ,Remember?,Java中数据类型分为四种: 基本数据类型(primitive type) 数组类型(array type) 类(c
3、lass type) 接口类型(interface type)任何常量和变量都是上述四种数据类型之一。,2.2 基本数据类型,2.2 基本数据类型,2.2.1 .逻辑型 常量:true、false 变量的定义:boolean x;boolean x,y,tom; 定义同时可赋值:boolean x=true,tom=false;,2.2.2.字符类型,常量:a、A 、8 、? 变量定义:char q;char c,type,cat; 定义同时可赋值: char c=a,type,cat;,整数类型,常量: 十进制:123,6000 八进制:077,065 十六进制:0x234,0xab12 整
4、形变量的定义分为四种:,int,byte,short,long,Int型,变量定义int x;int tom_12,jafei,年令 定义同时可赋值:int tom_12=100,jafei,年令20; 对于int型变量,内存分配为4个字节,占32位,取值范围-231 231-1,-2147483648-2147483647,Byte型,变量定义byte w;byte x,y,z; 定义同时可赋值:byte x=12,y=24,z=36; 对于byte型变量,内存分配1个字节,占8位,取值范围-27 27-1,-128-127,Short型,变量定义short h;short m,$12,_a
5、ort; 定义同时可赋值:short m=12,$12=20; 对于short型变量,内存分配2个字节,占16位,取值范围-215 215-1,-32768-32767,Long型,变量定义long 长型long I,j,k; 定义同时可赋值:long 长型; 对于long型变量,内存分配8个字节,占64位,取值范围-263 263-1,-92233720368477808-92233720368477807,浮点类型,Float型 常量:12.23f, 32.00F, 2e40f 变量的定义:float x;float x1,x2,x3;定义时赋初值:float x1=12.23f,x2=3
6、2.00f,x3; 对于float型变量,内存分配4个字节,占32位.,有效位6-7位,Double 型,常量:12.23d, 32.00D, 123.0,6e-120 变量定义:double d;double d1,d2,d3; 定义时可以赋初值:double d1=1223.f,d2=32.00d,d3; 内存分配8个字节,占64位,有效位15位,当我们在程序中定义变量时,常常没有给定变量初值。虽然变量的初值没有必要给定,但这经常是程序运行时错误的根源。为了可靠性起见,Java会自动为没有给定初值的变量设置标准的初值,如下表:,练习:基本数据类型的使用(1),下面代码的输出结果是什么?,i
7、nt i=10; System.out.println(i); i=15; System.out.println(i);,输出结果: 10 15,练习:基本数据类型的使用(2),int i; System.out.println(i); int i=15; System.out.println(i);,错误2:第二次定义变量i。(#3),错误1:在给变量i赋值前使用它。(#2),下面代码中的两个错误是什么?,练习:基本数据类型的使用(3),没有任何错误。x先被赋予值15.0,然后x被给定一个新的值150.0。,下面的代码中有错吗?,double x=15.0; x = x * 10; Syst
8、em.out.println(x);,练习:基本数据类型的使用(4),假设有两个int型变量one和two,编写代码交换它们的值。,int one= 10; int two = 20;,System.out.println(one); System.out.println(two);,int temp=two; two= one; One=temp;,System.out.println(one); System.out.println(two);,类型转换,Exchange!,byte,short,int,long,char,float,double,造型,大多数的数值转换是遵循优先级的关系
9、自动完成的 而有些转换则是通过造型来完成的 语法:,(转换后类型),被转换的变量名,例:double x=9.987;int nx=(int) x;转换后 nx=9 强转时,当心丢失数据,造型,若要把一个浮点数转换成与其最接近的数(即进行四舍五入)需使用Math.round()方法 例:double x=9.987;int nx=(int)Math.round(x); 结果:nx=10,2.3 表达式,表达式是由变量、常量、对象、方法调用和操作符组成的式子。,例: a+b*c/2-max(x,y),表达式的值就是对它运算后所得的结果。,若 a=4,b=5,c=6,x=7,y=9,则上述表达式的
10、结果为:,10,组成表达式的Java操作符有很多种,代表了多种的丰富的操作运算,包括赋值运算、算术运算、关系运算等。,赋值运算符,赋值运算符对应了赋值运算,即赋予程序里的变量或对象一定的内容。简单的赋值运算是把一个表达式的值直接赋给一个变量或对象,使用的赋值运算符是“=”,其格式为:变量或对象=表达式;其中赋值号右边的表达式可以是常量、另一变量或对象以及方法的返回值。,简单例子,i=0; j=i; k=i+j*5; MyFirstString=MyDouble.toString(); MySecondString=MyFirstString;,算术运算符,“+”和“-”都可以做前置和后缀运算符
11、。下面分别介绍:,(一)。i+与+i的区别i+在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为i,而i的值变为i+1。,(二)。i-与-i对i-与-i类似于(一)。,int i=15; System.out.println(i); 结果:15,+i在使用i之前,使i的值加1,因此执行完+i后,整个表达式和i的值均为i+1。,int i=15; System.out.println(i+);结果:15 System.out.println(i); 结果:16,int i=15; System.out.println(+i);结果:16 System.out.println(i);
12、结果:16,关系运算符,布尔逻辑运算符,位运算符,条件运算符? :,条件运算符也称三目运算符,其格式为:,Expression ? statement1 : statement2;,它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面 :前面)或者是第三个运算量(放在:后面)。,Xy ?1:-1,条件运算符的结合顺序是由右向左,也就是说,当我们写 a?b:c?d:e?f:g 的时候,Java会将其解释为(a?b:(c?d:(e?f:g)。,例:x=5;x0?1:x0?-1:0,其它运算符,分量运算符. 内存分配运算符new 方
13、法调用运算符( ) 下标运算符 实例运算符instance of,运算符,优先级 描述 运算符 结合性1 分隔符 () . , ;2 自增自减、逻辑非 + - ! 右到左3 算术乘除 * / % 左到右4 算术加减 + - 左到右5 移位 左到右6 大小关系运算 = 左到右7 相等关系运算 = != 左到右8 按位与运算 & 左到右,优先级,优先级 描述 运算符 结合性9 按位异或 左到右10 按位或 | 左到右11 逻辑与 & 左到右12 逻辑或 | 左到右13 三目条件运算 ?: 左到右14 赋值运算 = 右到左,运算符,这是一个用来创建对象的运算符,new,Java提供一个特别的运算符,
14、2.4 语句,Java语句分为5类: 1.方法调用语句System.out.println(“Hello!”); 2.表达式语句x=23; i+;,语句,3.复合语句:用把一些语句括起来就构成了一个语句z=x+23;System.out.println(“Hello”); 4.控制语句if 、do 、switch 5.packege语句和import语句,Java的控制语句,Java语言控制语句有3种:条件语句循环语句转移语句,条件语句,Java有两种类型的条件语句ifswitch,If语句,if语句 一般形式:if(表达式)语句序列1else语句序列2,例: y= -1 x0)y=1;els
15、ey=-1; System.out.println(“我在学习IF语句”); ,1 x0,if的扩充形式,if(表达式1)语句1 else if(表达式2)语句2else if( 表达式n)语句nelse语句n+1,switch语句,switch表达式) case 常量1:语句序列1break;case 常量2:语句序列2break;.,case 常量n:语句序列nbreak; default:语句序列n,几点注意:,表达式值、常量i的值为整形 常量i常量j 执行:先计算表达式值若与常量i相同,则执行语句序列i若都不相同,则执行语句序列n+1,例 .根 据 考 试 成 绩 的 等 级 打 印
16、出 百 分 制 分 数 段 。,public class GradeLevelpublic static void main( String args )System.out.println(“n* first situation *“);char grade=C; /normal use,switch( grade )case A : System.out.println(grade+“ is 85100“);break;case B : System.out.println(grade+“ is 7084“);break;case C : System.out.println(grade+
17、“ is 6069“);break;case D : System.out.println(grade+“ is 60“);break;default : System.out.println(“input error“); ,循环语句,分为三种:forwhiledo-while,格式: for(表达式1;表达式2;表达式3)若干语句 表达式1负责变量初始化 表达式2称为循环条件 表达式3用来改变循环条件 若干语句称为循环体 执行如右:,for语句,例:1100之和,import java.applet.*; import java.awt.*; public class ForSum100
18、extends Applet public void paint(Graphics g) int sum=0;for(int i=1;i=100;i+)sum=sum+i;g.drawString(“sum=“+sum,10,20); ,PerfectNum.java,while与do-while语句,while一般格式:while(表达式)若干语句 do-while一般格式:do 语句序列while(表达式),转移语句,continue 作用:结束本次循环,开始下一次循环,例:求100个数中的正数的和,public class ForSum100 public static void mai
19、n(String argv) int sum=0,a;for(int i=1;i=100;i+)System.in.read(a);if(a0) continue;sum=sum+i;System.out.println(“sum=“+sum); ,break 作用:结束整个循环的执行,转到下一语句,public class ForSum100 public static void main(String argv) int sum=0,a;for(int i=1;i=100;i+)System.in.read(a);if(a0) break;sum=sum+i;System.out.prin
20、tln(“sum=“+sum); ,例:求100个数的和,遇负数结束,返回语句,Java的返回语句与Java的方法紧密相关 当程序执行到此语句时,将立即返回上一级方法 格式:return value,Java是第一个没有goto的流行语言!,package语句,用于指明源文件定义的类所在的包 一般格式: package 包名 例:package exam; package一定是源文件的第一条语句,例:package m.packclass A class B class C ,import语句,用于引入所需要的类 Java程序中可以有多个import语句,它们必须位于package语句之后,类
21、定义语句之前。,java.awt抽象窗口工具集,包含了图形、文本、窗口GUI类,Java提供了60个包,常用的包如下:,Java.applet实现Java Applet的类,Java常用包,java.awt.image抽象窗口工具集中的图象处理类 java.lang基本语言类 java.io输入输出类 所有实现网络功能的类 java.util有用的数据类型类 java.awt.peer平台无关的GUI工具集界面,Java常用包,从一个包中引入多个类,则可用*表示:import java.awt.*;引入一个类,则需指出具体类名:import java.awt.Button; Java.lang包是Java语言的核心类库,它包含了运行Java程序必不可少的系统类。 系统自动引入Java.lang包,