java第3章Java语言基础程序0810.ppt

上传人:sccc 文档编号:5011068 上传时间:2023-05-29 格式:PPT 页数:90 大小:864.01KB
返回 下载 相关 举报
java第3章Java语言基础程序0810.ppt_第1页
第1页 / 共90页
java第3章Java语言基础程序0810.ppt_第2页
第2页 / 共90页
java第3章Java语言基础程序0810.ppt_第3页
第3页 / 共90页
java第3章Java语言基础程序0810.ppt_第4页
第4页 / 共90页
java第3章Java语言基础程序0810.ppt_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《java第3章Java语言基础程序0810.ppt》由会员分享,可在线阅读,更多相关《java第3章Java语言基础程序0810.ppt(90页珍藏版)》请在三一办公上搜索。

1、第三章,第三章Java语言基础,本节要点和目标.,一、语言与程序Java程序的构成二、数据类型、常量、变量三、表达式四、流程控制语句,本节要点和目标,语言与程序,人类语言:汉语、英语、法语,计算机语言:C、java、VB,语言与程序,人类语言:汉语、英语、法语,计算机语言:C、java、VB,词法,字符构成标识符、运算符。,public class appl3_0 public static void main(String args)int i;for(i=1;i3;i+)System.out.print(i+*+i);System.out.println(=+i*i);,程序(文章),语句

2、,词法:,标识符-系统定义标识符(保留字,不能再用)用户定义标识符,系统定义标识符(类名、方法名、语句名、数据类型名、修饰符),用户定义标识符(类名、变量名、常量名、函数名),字母或下划线+字母、下划线、数字+,各种名称,类名,变量名i,Java程序,值可变,可显示,可运算,一、Java程序的构成,一,java程序结构,public class appl2_5/定义public类appl2_5 public static void main(String args)int i;for(i=1;i3;i+)System.out.print(i+“*”+i);/输出变量、字符串 System.ou

3、t.println(=+i*i);,for循环体(程序段),for循环程序头,public类程序头,决定源程序文件名:appl2_5.java,public类appl2_5的程序体,main()方法method的程序头,main()method的程序体,一个Java程序的基本框架结构:Java程序由一个或多个独立的类组成,但其中必须有一个公有类(如:HelloWorld),而且源代码文件必须与这个公有类的名字相同(如:HelloWorld.java)。Java的类可以由一个或多个方法组成,其中公有类中的main方法可用作程序运行的入口。,/The First Java Programpubli

4、c class HelloWorld public static void main(String args)System.out.println(Hello World!);,程序头的注释,HelloWorld公共类,main方法,修饰符,方法头,方法体,方法名,参数,返回类型,二、数据类型、常量、变量,二,数据类型、常量、变量,java数据类型分为两大类:基本数据类型 引用数据类型,(一)数据类型,数据类型,Java数据类型,基本类型,引用类型,数值类型,整数类型 占字节 1)字节型 byte 1Byte 2)短整型 short 2B 3)整型 int 4B 4)长整型 long 8B浮点

5、数 1)浮点型 float 4B 2)双精度型 double 8B字符类型 1)字符型 char 2B,布尔类型 boolean 1Byte,1)类类型class2)接口类型interface3)数组类型(专讲)4)字符串 String,又称复合类型,传递数值,传递地址,整理如下表,内部存储器,数值,Java数据类型,基本数据类型 取值范围与缺省值,逻辑,字符,小数,integer,整数,应有后缀(大、小写均可),应有后缀(大、小写均可),应有后缀(大、小写均可),应有后缀(大、小写均可),十亿量级,万亿亿量级,地球人难有机会用到如此大之数,基本数据类型,Java数据类型 记忆,基本数据类型:

6、byte、short、int、long;float、double;char、Boolean1 2 4 8 4 8 2 1基本数据的 首字母小写;引用类型的 首字母大写。基本数据类型都有相应的包装类(Wrapper)如:Integer-int,Double-double 这些包装类已经是“类”了,也就是引用类型了。类是引用数据类型,占用字节数,求最大值(长整型(long)的):,java.lang.Long.MAX_VALUEjava.lang.Long.MIN_VALUEjava.lang.Integer.MAX_VALUEjava.lang.Integer.MIN_VALUEjava.lan

7、g.Short.MAX_VALUEjava.lang.Short.MIN_VALUEjava.lang.Byte.MAX_VALUEjava.lang.Byte.MIN_VALUEjava.lang.Float.MAX_VALUEjava.lang.Float.MIN_VALUEjava.lang.Double.MAX_VALUEjava.lang.Double.MIN_VALUE,java.lang,Long,MAX_VALUE,类库,长整型,取最大值,各基本数据类型的,最大值和最小值:,类库,长整型,取最大值,类库,长整型,取最大、最小值,类库,数据类型,/appl3_1,输出Java定义

8、的整数常数的最大、最小值 public class appl3_1 public static void main(String args)long lmax=java.lang.Long.MAX_VALUE;int imax=java.lang.Integer.MAX_VALUE;short smax=Short.MAX_VALUE;/省略类库java.lang byte bmax=Byte.MAX_VALUE;/省略类库java.lang System.out.println(Max value of long:+lmax);System.out.println(Max value of

9、int:+imax);System.out.println(Max value of short:+smax);System.out.println(Max value of byte:+bmax);,Java中类首字均应大写。System类的带包路径是 java.lang.System,java.lang包默认引入。,求取最大值,显示输出,(二)标识符,1、由字母、数字、下划线_及美元符$组合而成。2、首字符必为字母、下划线或美元符之一。3、区分大小写。4、应能表征其意义。,(四)标识符,第2章 基本元素,本章通过讲解数据和数据类型、变量和常量、表达式和运算符,开始Java程序设计语言的探索

10、之旅;重点掌握基本数据类型、各种表达式、及语句的书写规范。,2.1 标识符,Java中,标识符由:下划线、$、英文字母、数字组成,除了数字其余三种均可作为首字;Java标识符不限长度。Java语言使用的是Unicode字符集,含65535个字符,其中前256个是ASCII码及其扩展码。,2.2 关键字,(三)变量,在程序运行过程中,其值可以发生变化的量称变量。,创建变量的语句格式:数据类型 变量名,(三)变量,例:int n1,n2,n3;float num1,num2;,(二)常量,常量:在程序运行过程中,其值不能被改变的量。相当于数学中的常数。如:e=2.71828=Pai=3.14159

11、26,(二)常量,(1)整数常量,(2)实数常量,十进制整数:0 9八进制整数:0 7 07,0177,036,0418十六进制整数:0 9 A F 0 x11,0 xff,0 x3A2C,0X2e,小数形式:-2.13D,3.14,1.3F,4.5f 指数形式:0.3e9D,-3E10,2e-2f,注意:long、float、double类型数据应有后缀l、f、d(大、小写均可),前置0 x决定了后面的:ff、3a2c、2e,均为16进制数。,/appl3_2,整数错误的范例 public class appl3_2 public static void main(String args)l

12、ong num=32998399887;/错:缺后缀l System.out.println(num=+num);,注意!,long num=32998399887L/正确格式,/appl3_3,整数数据类型的溢出 public class appl3_3 public static void main(String args)int i=java.lang.Integer.MAX_VALUE;System.out.println(i=+i);System.out.println(i+1=+(i+1);System.out.println(i+2=+(i+2);,注意!,System.out.

13、println(i+1=+(i+1L);,错,错,System.out.println(i+2=+(i+2L);,求得Integer类型的最大值,最大值+1=最小值,数值溢出,最大值再加1,即溢出:等于最小值往前进一位,加1,等于:,进1,1,若已无存储设备,则该位自动丢失,最小值再减1,也溢出:等于最大值向前借一位,例如:8位数,/appl3_3a,整数数据类型的溢出 public class appl3_3a public static void main(String args)int i=java.lang.Integer.MIN_VALUE;System.out.println(i=

14、+i);System.out.println(i-1=+(i-1);System.out.println(i-2=+(i-2);,注意!,求得Integer类型的最大值,最小值-1=最大值,System.out.println(“i-1=”+(i-1L);System.out.println(i-2=+(i-2L);,加尾缀L,类型由int(4字节)转换为long(8字节),不会再溢出。,/appl3_4,浮点数应用 public class appl3_4 public static void main(String args)float num=2.0;System.out.println

15、(num+*+num+=+(num*num);/输出num*num的结果,注意!,float num=2.0f,错,(3)布尔型常量,(4)字符型常量,只有两个值:true(真)false(假)用于选择和循环语句中判断条件成立否。,单一字符:a,A,1,2,#/单一字符需置单括号中特殊字符:即转义字符,用反斜杠作为标记,例:n,b,为:回车,退格,反斜杠u0001,u0061为十六进制数字符串:“How do you do?”/字符串需置双括号中,/appl3_5_,字符类型-ASCII码public class appl3_5_ public static void main(String

16、args)char ch1=97;char ch2=a;char ch3=u0061;System.out.println(ch1=+ch1);System.out.println(ch2=+ch2);System.out.println(ch3=+ch3);,十进制数97是a的ascii码值,十六进制数u0061是a的ascii码值,三句均显示a,System.out.println(“ch1=”+(ch1+1);System.out.println(ch2=+(ch2+2);System.out.println(ch3=+(ch3+3);,中文单引号要出错,字符与其ASCII码值是相互对应

17、的,public class appl3_5 public static void main(String args)/TODO Auto-generated method stub char ch1=97+1;/b的ASCII值98 char ch2=a+2;/c的ASCII值99 char ch3=u0061+3;/d的ASCII值100 System.out.println(ch1=+ch1);/显示b System.out.println(ch2=+ch2);/显示c System.out.println(ch3=+ch3);/显示d System.out.println(ch1=+(

18、ch1+1);/数据99=97+1+1 System.out.println(ch2=+(ch2+1);/数据100=97+2+1 System.out.println(ch3=+(ch3+1);/数据101=97+3+1,a的ascii码是97,a=u0061,中文单引号要出错,常用转义字符,三、表达式,三,表达式,表达式:用运算符号连接各种数据构成的算式。,(一)赋值表达式,age,18,=,变量或对象,设置值,(),+=、=、=、/=,由赋值运算符(=)连接变量(常量、对象等)与设定值,构成的算式。,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算

19、符算术运算符关系运算符逻辑运算符位运算符,2.5.5 赋值运算符和复合赋值运算符,赋值运算符:=;复合赋值运算符:赋值运算符与算术运算符、位运算符、移位运算符相复合;a+=b;即 a=a+b;左值为变量或常量;右值要有确定的值;,(二)算术表达式,双目运算符,(二)算术表达式,由算术运算符连接变量、常量、对象等构成的算式。,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算符算术运算符关系运算符逻辑运算符位运算符,2.5 运算符,运算符是用来完成一个动作的特定语言的语法记号。,2.5.1 算术运算符+、-、*、/、%;有值的量才能进行运算;byte、sho

20、rt、char类型的算术运算会转换成int型再计算,其结果也是int型;整型相除结果为整型;取余多用于整型运算;取余的符号与前者相同。,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算符算术运算符关系运算符逻辑运算符位运算符,单目运算符,2.5.3 递增递减运算符,短路运算与运算只要有一个为假,则表达式为假,因此前面部分为假时,则不执行后面部分了。例如:int i=3;i 2|i+3;,+、-在后是先使用后自加;+、-在前是先自加后使用;如:int i=3;int j=i+;/先赋值给j,i再自加1赋给它本身int k=+i;/i先自加1赋给本身,再赋值

21、给j,/appl3_6,算法运算符 public class appl3_6 public static void main(String args)int a=2,b,c,d,e;b=a+a+a+;c=(+a)+(+a)+(+a);d=b/a;e=c%a;System.out.println(a+”n”+b+”n”+c+”n”+d+”n”+e);,错:单一字符需置单括号中,a=a+=3b=a+a=3+2=5 2+1+2,a+=3,a+=4b=a+a+=3+2=5 2+1+2,a+=3,a+=4b=a+a+a=9 2+3+4,a+=3,a+=4,a+=5b=9算完后,才做最后a+,a=a+=3

22、b=a=2,/appl3_6,算法运算符 public class appl3_6 public static void main(String args)int a=2,b,c,d,e;b=a+a+a+;c=(+a)+(+a)+(+a);d=b/a;e=c%a;System.out.println(a+”n”+b+”n”+c+”n”+d+”n”+e);,错:单一字符需置单括号中,即b=a+a+a+因为+运算符在变量a的后边,即先执行+运算,后执行变量a本身的+运算,故可化为:b=a+a+a+b=2+3+4=9a=a+a+a+a=2+3+4+=5,public class appl3_6a p

23、ublic static void main(String args)int a=2,b,c,d,e;b=a+a+a+;/先执行+运算,后执行a+运算 System.out.println(a=+a);/a=2,a=a+a+a+=5 System.out.println(b=+b);/b=2+3+4=9 System.out.print(a+b=+a+b);/a+b=59,a+b=5 9,a+b=5 9 System.out.print(,a+b=+a+b);System.out.println(,a+b=+a+b);System.out.println(a+b=+(a+b);/a+b=14

24、a=2;c=(+a)+(+a)+(+a);/c=3+4+5=12 System.out.println(c=+c);d=b/a;/*除法*/e=c%a;/整除 System.out.println(b=+b+,a=+a+,d=+d);System.out.println(c=+c+,a=+a+,e=+e);,(三)关系表达式,(三)关系表达式,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算符算术运算符关系运算符逻辑运算符位运算符,2.5.2 关系运算符与逻辑运算符,关系运算符:、=、=、!=有值的量才能进行比较;表达式的值是boolean型;注意=与=

25、的区别。,逻辑运算符:&、|、!运算符两边都应是boolean型;表达式结果是boolean型;&和|的短路运算。,(四)逻辑表达式,true或false,x,y,=,(),?,&、|、!、&、|,(四)逻辑表达式,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算符算术运算符关系运算符逻辑运算符位运算符,2.5.2 关系运算符与逻辑运算符,关系运算符:、=、=、!=有值的量才能进行比较;表达式的值是boolean型;注意=与=的区别。,逻辑运算符:&、|、!运算符两边都应是boolean型;表达式结果是boolean型;&和|的短路运算。,(五)位运算表

26、达式,例P46,(五)位运算表达式,2.3 表达式与运算符,运算符是用来完成一个动作的特定语言的语法记号。赋值运算符增减运算符算术运算符关系运算符逻辑运算符位运算符,2.5.4 位运算符和移位运算符,位运算符:&、|、(异或)、(取反,包括符号位);boolean的按位“与”、“或”其值为boolean型;位运算符没有短路现象。2&3、2|3、23、2;移位运算符:、(逻辑)算术左移:高位溢出,低位补0;算术右移:低位溢出,高位补原高位;逻辑右移:低位溢出,高位补0;算术左移一位乘2,右移一位除2(能整除时);,(六)条件表达式,?:Java语言规定,表达式2和表达式3必须返回相同的数据类型,

27、并且类型不能为void。,(六)条件表达式,2.5.6 条件运算符,(boolean表达式)?表达式1:表达式2boolean表达式的值为true时,表达式的结果为表达式1;boolean表达式的值为false时,表达式的结果为表达式2;经常用它求最大、最小值。max=(ab)?a:b;,例,int i=3;int sum=(i+)+(i+)+(i+);a=b|x=y;判断char型变量ch是否为数字的表达式是:a)00)&(ch=0)&(ch=0)|(ch=9)(a!=b)&(a+b=0)&(a%2=0)以下表达式的值不是2的是:a)2&3 b)11 c)a=2 d)13,(七)表达式类型转

28、换,(1)自动类型转换转换前的数据类型与转换后的类型兼容;转换后的数据类型的表示范围比转换前的类型大。,(七)表达式类型转换,1、占用字节少的转换成字节较多的类型。2、如short类型遇上int类型,会转换成int型。3、字符类型会转换成short类型。4、int类型会转换成float类型。5、表达式中的一个操作数为double类型,则另一个操作数会转换为double类型。6、布尔类型不能转换至其他的类型。,(2)强制类型转换 如果要将表示范围大的数据类型转换成较小的数据类型,或想得到想要的数据类型的数据则必须强制类型转换。,格式:(欲转换的数据类型)变量或表达式;如:(int)c,/appl

29、3_7,数据类型转换 public class appl3_7 public static void main(String args)int a=2,b=3,d;float c;c=(float)a/b d=(int)c;System.out.println(a+”n”+b+”n”+c+”n”+d);,错:单一字符需置单括号中,缺分号:语句结束符,(八)运算符的优先级,/appl3_8,运算符的优先级与结合性 public class appl3_8 public static void main(String args)int a=2,b=3,c=4,d=5,e=6;float f;f=a

30、/3+b*c+/(d+=e);System.out.println(f);,P47,(八)运算符的优先级,2.6 表达式和语句,表达式是运算符、操作数、以及方法调用的序列;它用来说明某一个计算过程的计算结果;其结果有一个唯一的类型。表达式有运算优先级,可以嵌套;不同数据类型的操作数进行运算,其转换规则如下。,图中:实线表示没有精度损失的转换,虚线表示可能有精度损失的转换。,2.5.7运算符的优先级,大体上是:算术关系逻辑赋值;()(不是方法,不是强转)最大,弄不明白加括号。,四、流程控制语句,流程控制语句,四,语句,Java中的语句以分号结束;Java中的分号一定要用英文输入法输入;Java中

31、语句分为:控制语句、方法调用语句、表达式语句、空语句、复合语句;复合语句:又称块语句,由 括起来的简单java语句构成;复合语句中定义的变量的作用范围只在复合语句中;块可以嵌套。int k=0;int i=0;/i的作用范围到此/k的作用范围到此Java不允许在内层块中定义与外层块同名的变量。,例,float f1=12.3f+45.9f;float f2=89+56.3f;byte b1=56;byte b2=12;int b3=b1+b2;boolean b4=b2f2;int i1=5%3;,2.7 注释,注释掉的语句不是可执行的程序语句;单行注释:/常用于解释某行代码;多行注释:/*.

32、*/常用于注释废代码。,Java程序结构,顺序结构sequence structure,选择结构selection structure,循环结构iteration structure,(一)顺序语句,sequence structure,(一)顺序语句,/appl3_9.java,简单的Java程序public class appl3_9/定义public 类appl3_9 public static void main(String args)/main()method,主程序开始 int num;/声明整数num num=2;/将num赋值为2 System.out.println(I h

33、ave+num+dogs);/输出字符串及变量内容 System.out.println(You have+num+dogs,too);,(二)选择语句,selection structure,(二)选择语句,If();,If();else If();else if().else;,If();else;,/appl3_10,选择结构import java.io.*;/导入在java.io包里的所有类,*是通配符 public class appl3_10/决定程序名称的唯一公共类 public static void main(String args)throws IOException in

34、t score;String str;System.out.print(Enter the score:);BufferedReader buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine();/将buf(从屏幕得到的字符串)赋值给str score=Integer.parseInt(str);if(score=90),流类的实例,用构造方法实例一个BufferedReader流类实例。,屏幕输入的实例,待续。,非静态方法需实例化,可带参数运行java程序(字串类型数组),含异常处理,/续前页:app

35、l3_10,选择结构if(score=90)System.out.println(优);else if(score=80)System.out.println(良);else if(score=70)System.out.println(中);else if(score=60)System.out.println(及格);else System.out.println(不及);,BufferedReader buf;/流类的实例buf=new BufferedReader/*流类的实例*/(new InputStreamReader(System.in);/实例一个新的BufferedRead

36、er,用构造方法实例。new InputStreamReader(System.in)也就是得到一个从屏幕输入的实例 String str;/实例化一个String对象,import java.io.FileReader;import java.io.BufferedReader;import java.io.IOException;public class appl3_10ss1 public static void main(String args)try FileReader fr=new FileReader(mytest.txt);/*创建一个FileReader对象*/Buffer

37、edReader br=new BufferedReader(fr);/*创建一个BufferedReader 对象*/String line=br.readLine();/*读取一行数据*/while(line!=null)System.out.println(line);line=br.readLine();/*流的关闭*/br.close();fr.close();catch(IOException e)/catch(ArrayIndexOutOfBoundsException e)则这个异常就/会被捕获,并执行catch程序块中的代码.System.out.println(文件不存在!

38、);/try-catch过后程序仍然继续执行(不写try-catch则程序抛出异常后自行终止)/*假设try中有语句int i=new int10;如果你调用int14就一定会抛出ArrayIndexOutOfBoundsException 这个异常,如果你写了try-catch且写了catch(ArrayIndexOutOfBoundsException e)则这个异常就会被捕获,并执行catch程序块中的代码.*/,switch()case:;break;case:;break;.case:;break;default:;,/appl3_11,选择结构SWITCH语句public clas

39、s appL3_11 public static void main(String args)int month=8;switch(month)case 1:System.out.println(“January”);break;case 2:System.out.println(“February”);break;case 3:System.out.println(“March”);break;case 4:System.out.println(“April”);break;case 5:System.out.println(“May”);break;case 6:System.out.pr

40、intln(“June”);break;case 7:System.out.println(“July”);break;case 8:System.out.println(“August”);break;case 9:System.out.println(“September”);break;case 10:System.out.println(“October”);break;case 11:System.out.println(“November”);break;case 12:System.out.println(“December”);break;default:System.out.

41、println(“error!”);,改进例appl3_10,iteration structure,(三)循环语句,while();,for(表达式1;表达式2;表达式3);,do;while();,/app3_12,for循环求9*9乘法表public class app3_12 public static void main(String args)int i,j;for(i=1;i=9;i+)/外层循环 for(j=1;j=9;j+)/内层循环 System.out.print(i+*+j+=+(i*j)+t);System.out.println();,一个有趣的例题,射雕英雄传的朋

42、友,一定还记得黄蓉遇上神算子瑛姑,给她出的三道题目中有一题是这样的:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?也就是说,有一个未知数,这个数除以三余二,除以五余三,除以七余二,问这个数是多少?,一个有趣的例题,示例程序 211“黄蓉的题目”Calc.javapublic class Calc public static void main(String args)int x;for(x=0;x100;x+)if(x%3=2)/end of if/end of for/end of main/end of Calc,First_Loop:for(int i=1;i100;i+)for(int j=2;jI;j+)if(i%j=0)continue First_Loop;System.out.println(i);,(四)跳转语句,continue,上去,switch()case:;case:;break;.case:;break;default:;,break,下去,return return 表达式;int method()return;/return 2;,return,回去,作业:P58 E1、4、8上机:E10(参照P37),作业,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号