程序、数据、变量和计算.ppt

上传人:牧羊曲112 文档编号:6327615 上传时间:2023-10-17 格式:PPT 页数:56 大小:270.99KB
返回 下载 相关 举报
程序、数据、变量和计算.ppt_第1页
第1页 / 共56页
程序、数据、变量和计算.ppt_第2页
第2页 / 共56页
程序、数据、变量和计算.ppt_第3页
第3页 / 共56页
程序、数据、变量和计算.ppt_第4页
第4页 / 共56页
程序、数据、变量和计算.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《程序、数据、变量和计算.ppt》由会员分享,可在线阅读,更多相关《程序、数据、变量和计算.ppt(56页珍藏版)》请在三一办公上搜索。

1、Java 程序设计,第二章 程序、数据、变量和计算,第二章 程序、数据、变量和计算,本章将介绍Java语言的基础知识,包括基本语言要素、基本数据类型、变量、数组、运算符等。扎实地掌握这些内容对后续学习是很有必要的。,标识符(Identifier)保留字(Reserved Word),1、Java语言基本元素,程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)包括:类名、变量名、常量名、方法名、Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。合法的标识符identifier userName Us

2、er_Name _sys_value$change非法的标识符2mailroom#class Java语言是一种区分大小写字母 republicanRepublican,1、Java语言基本元素标识符,具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word)。abstract break byte boolean catch case class char continue default double do else extends false final float for finallyif import implements int inter

3、face instanceof long length native new null package private protected public final return switch synchronized short static super try true this throw throws threadsafe transient void while,1、Java语言基本元素保留字,数据和返回值类型:int,void,return包/类/成员/接口:package,class,interface访问控制:public,private,protected循环及循环控制:if

4、,switch,break例外处理:throw,try,finally保留词(无含义但不能使用):goto,const,1、Java语言基本元素保留字:基本分类,在Java中,true、false和null都是小写的。区别于C+中大写的TRUE、FALSE和NULL。所有的数据类型所占用的字节数都是固定的,并且和实现无关的,因此在Java中没有sizeof操作符。,1、Java语言基本元素保留字:注意事项,2、Java数据类型,常量(Constant)变量(Variable)数据类型(Data Type)基本数据类型(Primary Data Types)复合数据类型(Composite Da

5、ta Types),Java中 的 常 量 值 是 用 文 字 串 表 示 的,它 区 分 为 不 同 的 类 型,如 整 型 常 量 123,实 型 常 量 1.23,字 符 常 量 a,布 尔 常 量 true、false以 及 字 符 串 常 量 This is a constant string.。与 C、C+不 同,Java中 不 能 通 过#define命 令 把 一 个 标 识 符 定 义 为 常 量,而 是 用 关 键 字 final来 定义,2、Java数据类型常量(Constant),定义常量的语法格式(C、C+#define命 令)final Type varName=v

6、alue,varName=value;关键字 类型 常量名 常量值final int globalAccount=100,nationalAccount=50;final double PI=3.14159 布尔常量 true false整型常量一般常量:32bit 长整型常量:64bit(88L)十进制数:非0开头的正负整数 105,-23八进制数:0开头的正负整数 017(15),-023(-19)十六进制:0 x开头的正负整数 0 x2F(47),-0 xa8(-168),2、Java数据类型常量(Constant),浮点常量一般浮点常量(32bit)3.14F 6.18E3F双精度浮点

7、数(64bit)7.56D 6.02E23(D可省)char型常量:用单引号界定,a采用Unicode码,从u0000-uFFFF,其中u00-uFF为ASCII码字符串常量:用双引号界定“HELLO,WORLD”+号的特殊用法“Hello”+“World”即“HelloWorld”若a=4,则“a=”+a 即“a=4”,2、Java数据类型常量(Constant),特殊字符 引用方法 对应Unicode码意义 b u0008退格 t u0009 横向跳格、水平制表符tab nu000a换行 ru000d回车”u0022双引号 u0027单引号 u005c反斜线,2、Java数据类型常量(Co

8、nstant),程序中的基本存储单元变量声明:先声明,后使用 声明变量的格式(包括变量名、变量类型和作用域几个部分)type variableName1,variableName2,;type variableName1=initValue,variableName2=initValue,;类型 变量名 变量初始值 如:double a,b,c;int nSecond=10;,2、Java数据类型变量,Java中变量的缺省初值都是确定的:布尔变量的初值为:false整数变量的初值为:0浮点数变量的初值为:0.0引用(复合)变量的初值为:null在方法实现中定义的变量必须显式的初始化。变量的作用

9、域 指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局部变量、类变量、方法参数、例外处理参数。在一定的作用域内,变量名必须唯一。,2、Java数据类型变量,Unicode 码字符集是一种标准字符集。开发Unicode 码字符集的目的是,使得它能对几乎所有语言所必需的字符进行编码例,2、Java数据类型变量名和Unicode码,2、Java数据类型数据类型,基本数据类型,复合数据类型,所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。所有基本类型的关键词都是小写的。,数据类型所占位数数的范围 缺省数值 char 160 65535 u0000 byte 8-27

10、27-1 0 short 16-215215-1 0 int 32-231231-1 0 long 64-263263-1 0 f loat 323.4e038 3.4e038 0.0F double 64 1.7e308 1.7e308 0.0D boolean 8 false or true false,2、Java数据类型基本数据类型,布尔型数据只有两个值true和false,且它们不对应于任何整数值布尔型变量的定义如:boolean b=true;布尔型数据只能参与逻辑关系运算:&|=!=!示例:Boolean.java,2、Java数据类型基本数据类型:布尔类型(boolean),注

11、意:boolean型变量不同于其他基本数据类型,它不能强制转换成其他基本数据类型,而且其他数据基本类型也不能转换成boolean型,char型变量存储一个字符,每个字符在内存中占用16位,两个字节。(Unicode)字符常量是用单引号括起来的一个字符a B n u0030说明和初始化字符变量:char myCharacter=X;这条语句用字母X的Unicode码字符表示初始化变量。,2、Java数据类型基本数据类型:字符类型(char),字符转义序列,通过指定转义序列中字符代码的十六进制表示,编程者可以定义Unicode码字符 表示转义序列开始。把u放在由4个十六进制数字表示的字符前,为该U

12、nicode码字符建立转义序列。例 由于字母X的Unicode编码为0 x0058,所以:char myCharacter=X;char myCharacter=u0058;,特殊字符的常量表示法:反斜线(Backslash)退格(Backspace)b回车(Carriage return)r进纸符(Form feed)f制表符(Form feed)t换行(New line)n单引号(Single quote)八进制数(0377)DDDUnicode字符 uHHHH,2、Java数据类型基本数据类型:字符类型(char),char型变量,内存分配给2个字节,占16位,最高位不是符号位,没有负数

13、的char。char型变量的取值范围是065536。要观察一个字符在Unicode表中的顺序位置,必须使用int类型显示转换,不可以使用short型转换,因为char的最高位不是符号位。同样,要得到一个0 65536之间的数所代表的Unicode表中相应位置上的字符也必须使用char型显示转换。下面的例子2中,分别用显示转换来显示一些字符在Unicode表中的位置,以及某些位置上的字符。,2、Java数据类型基本数据类型:字符类型(char),字符放入算数运算 char myCharacter=X;myCharacter+=1;Y,2、Java数据类型基本数据类型:字符类型(char),cha

14、r achar=0;char bchar=u0028;achar=(char)(2*bchar+8)X的代码值0 x0058,整型常量1.十进制整数如123,456,02.八进制整数以0开头,如0123表示十进制数83,011表示十进制数9。3.十六进制整数以0 x或0X开头,如0 x123表示十进制数291,0X12表示十进制数18。整型变量整型变量的定义如:int x=123;/指定变量x为int型,且赋初值为123 byte b=8;short s=10;long y=123L;long z=123l;,2、Java数据类型 基本数据类型:整数类型(byte,short,int,long

15、),64位长整数以l或L结尾:12l,-343L,0 xfffffffffL没有以l或L结尾的数字,根据其实际值所属范围,可以被用作byte,short,或int型整数以l或L结尾的数字,无论其实际值所属范围怎样,都被用作long型整数,2、Java数据类型 基本数据类型:整数类型(byte,short,int,long),实型常量1.十进制数形式由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.02.科学计数法形式如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。当编程者指定浮点型常量时,按照默认方式这些常量将是双精度类型。当编程

16、者希望指定单精度型数值时,只需在该数值后加后缀F或f.0.23f,1.23E-4f,.18F,2、Java数据类型 基本数据类型:浮点数类型,实型(float,double),实型变量类型为float或double,float在机器中占32位,double占64位。实型变量的定义如:double d1=127.0;赋初值为127double d2=127;赋初值为127float f1=127.0f;必须在数字后加f或Ffloat f2=4.0e38f;错误!32位浮点数不能超过 3.4028234663852886e38float f3=(float)d1;必须强制类型转换,2、Java数据

17、类型基本数据类型:浮点数类型,实型(float,double),同种数据类型转换:短类型 长类型:默认长类型 短类型:强制 例不同数据类型转换字符/数值:强制例:int a;long b;char c;b=a;a=(int)b;c=(char)a;a=(int)c布尔型与其他数据类型之间不能强制类型转换,byteshortintlongfloatdouble,2、Java数据类型基本数据类型:数据类型转换,import java.io.*;public class a public static void main(String args)int i=65;char c=a,cc=刘;Syst

18、em.out.println(i);65 System.out.println(char)i);A System.out.println(c);a System.out.println(int)c);97 System.out.println(cc);刘 System.out.println(int)cc);21016 System.out.println(char)29579);王,2、Java数据类型基本数据类型:数据类型转换,数据类型转换必须满足如下规则:不能对boolean类型进行类型转换。不能把对象类型转换成不相关类的对象。在把容量大的类型转换为容量小的类型时必须使用强制类型转换。,

19、2、Java数据类型基本数据类型:数据类型转换,例如 int x=(int)34.89;输出x将是34,强制转换运算可能导致精度的损失。当把一个整数赋值给一个byte、short、int或long型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算。下面我们看一个例子:,2、Java数据类型基本数据类型:数据类型转换,在Java中,引用(reference)指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的指针。当你声明某个类、接口或数组类型的变量时,那个变量的值总是某个对象的引用或者是null。指针就是简单的地址而已,引用除了表示地址而外,还是被引用的数据对

20、象的缩影,还提供其他信息。指针可以有+、-运算,引用不可以运算。引用型变量只支持有限的逻辑判断:相等判断(是否同一个对象的引用):=!=theObject=nullotherObject!=theObject,2、Java数据类型复合(引用)数据类型,运算符(Operator)和表达式(Expression)注释(Comment)语句(Statement)代码段(Code Block)作用域(Scope),3、Java语言的结构,(1)运算符算术运算符:+,*,/,%,+,关系运算符:,=,&,|,赋值运算符:=,及其扩展赋值运算符如+=,=,*=,/=等。条件运算符:?:,3、Java语言的

21、结构运算符和表达式,其它分量运算符,下标运算符,实例运算符 instanceof,内存分配运算符 new,强制类型转换运算符(类型),方法调用运算符()由于数据类型的长度是确定的,所以没有长度运算符sizeof。,3、Java语言的结构运算符和表达式,(2)表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。例:xnum1+num2a*(b+c)+d3.14x=(y+z)x&y|z,3、Java语言的结构运算符和表达式,(3)运算符的优先次序1).,()9)&2)

22、+,-,!,instanceof 10)3)new(type)11)|4)*,/,%12)&5)+,-13)|6),=,=,=,3、Java语言的结构运算符和表达式,举例:/单行注释,简单的解释语句含义./*多行注释,用来说明更多的内容,包括算法等.*/,3、Java语言的结构注释,一个由分号(;)结尾的单一命令是一条语句(Statement),一条语句一般是一行代码,但也可以占多行代码。int a=1;/变量定义及初始化语句用大括号()围起来的多条语句构成一个代码段(Code block);class Aclass for(int i=0;i=1;i+),3、Java语言的结构语句和代码段,

23、作用域(Scope)决定了变量可使用的范围成员变量(Global variables):变量可以在整个类中被访问;例本地变量(Local variables):变量只能在定义其的代码段中被访问。例作用域规则:在一个代码段中定义的变量只能在该代码段或者该代码段的子代码段中可见。,3、Java语言的结构作用域,class Scoping int x=0;void method1()int y;y=x;/OK.method1可以访问y.void method2()int z=1;z=y;/Error.y 在method2的作用域之外定义,3、Java语言的结构作用域,位运算符用来对二进制位进行操作,

24、分为左移位操作和右移位操作。(1)左移位运算符 左移位运算的符号为:,是双目运算符。左移位运算符左面的操作元称作被移位数,右面的操作数称作移位量,操作元必须是整型类型的数据。假设a是一个被移位的整型数据,n是位移量。an运算的结果是通过将a的所有位都左移n位,每左移一个位,左边的高阶位上的0或1被移出丢弃,并用0填充右边的低位。,3、Java语言的结构移位运算符,对于byte或short型数据,an的运算结果是int型精度。当进行 a2 运算时,计算系统首先将a升级为int型数据,对于正数将高位用0填充;负数用1填充,然后在进行移位运算。例如,对于 byte a=-8;1111 1000 在进

25、行a1运算时,首先将1111 1000生级为int型,将高位用1填充:1111 1111 1111 1111 1111 1111 1111 1000 然后在进行移位运算得到-16:1111 1111 1111 1111 1111 1111 1111 0000,3、Java语言的结构移位运算符,因此,如果把a1的结果赋值给一个byte型变量就必须进行强制转换运算:byte b=(byte)(a1);在进行an运算时,如果a是byte、short或int型数据,系统总是先计算出n%32的结果m,然后进行am运算。例如,a33的计算结果与a1相同。对于long型数据,系统总是先计算出n%64的结果m

26、,然后进行am运算。,3、Java语言的结构移位运算符,(2)右移位运算符 右移位运算的符号为:,是双目运算符。假设a是一个被移位的整型数据,n是位移量。an运算的结果是通过将a的所有位都右移n位,每右移一个位,右边的低阶位被移出丢弃,并用0或1填充左边的高位,a是正数用0填充,负数时用1填充。因此,a每右移一次,如果该数的每一计算有效位都没有从低位移出时,就相当于将a除以2并舍弃了余数。整数不断右移位的最后结果一定是0,而负数不断右移位的最后结果是-1。对于byte或short型数据,an的运算结果是int型精度。,3、Java语言的结构移位运算符,在进行an运算时,如果a是byte、sho

27、rt或int型数据,系统总是先计算出n%32的结果m,然后进行am运算,例如,a33的计算结果与a1相同。对于long型数据,系统总是先计算出n%64的结果m,然后进行am运算。在下面的例子中,用户输入移位运算的两个操作元,程序给出右移和左移后的结果。,3、Java语言的结构移位运算符,(1)“按位与”运算符“&”是双目运算符,对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。(2)“按位或”运算符“|”是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都

28、是0,则c的该位是0,否则是1。(3)“按位非”运算符“”是单目运算符。对一个整型数据a按位进行运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则是0。,3、Java语言的结构位运算符,(4)“按位异或”运算符“”是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。在下面的例子中,利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。,3、Java语言的结构位运算符,条件运算符是一个3目运算符,它的符号是:“?:”,需要连接3个操作元,用法如下:op1?op2:

29、op3 要求第一个操作元op1的值必须是boolean型数据。运算法则是:当op1的值是true时,op1?op2:op3运算的结果是op2的值;当op1的值是false时,op1?op2:op3运算的结果是op3的值。例如,128?100:200的结果是100;128?100:200的结果是200。,3、Java语言的结构条件运算符,运算符例移位,移位 带符号右移:左侧空出位全用符号位填充 2 30 00011110 01111000 00000111-17 11101111 10111100 11111011 1281 128/21=64 2564 256/24=16-2564-256/2

30、4=-16 128 1 128*21=256 16 2 16*22=64,运算符例,自运算符+、-j+、j-、+j、-j运算符的位置决定了自运算的顺序(在操作数变量之前或在操作数变量之后)a=3 b=5 c=(a+)*b a=4 c=15a=3 b=5 c=(+a)*b a=4 c=20三目条件运算符(?:)D=表达式A?表达式B:表达式CA为真,返回表达式BA为假,返回表达式C总是返回B,C中的长类型 例:int x=5,y=8;long z=2;long k=x3?y:z;/k=8,运算符例,有关自加和自减的综合实例有关关系运算符的综合实例 有关逻辑运算符的实例 有关异或运算符的实例 有关

31、带符号的移位运算符的实例 有关三元运算符的实例,4 数据的输入与输出,由于C语言出现的比较早,那个时候还没有图形用户界面的概念(Graphics User Interface),因此,C语言提供了许多用来输入、输出数据的函数,例如printf、scanf等。Java不象C,提供在命令行进行数据输入、输出的功能不多。关于输入、输出我们将在第九章详细介绍,现在只需知道它的作用是在命令行窗口(例如,MS-DOS窗口)输出数据即可。Sun公司新推出的SDK1.5又新增了一些在命令行进行数据输入、输出的功能。,4 数据的输入与输出,1数据输出:的功能完全类似C语言中的printf函数。pringf的一般

32、格式:printf(格式控制部分,表达式1,表达式2,表达式n);这里的用法与C语言相同,这里不再累述。下面我们看一个例子,来进一步了解 数据输出:,4 数据的输入与输出,2数据的输入:Scanner Scanner是SDK1.5新增的一个类,可以使用该类创建一个对象:Scanner reader=new Scanner(System.in);然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型,nextByte(),nextDouble(),nextFloat(),nextInt(),nextLine(),nextLong(),nextShort()。,4 数据的输入与输出,上述方法执行时都会堵塞,等待你在命令行输入数据回车确认。下面让我们来看一个例子,来更好的了解Scanner语句,在这个例子中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符结束整个的输入操作过程。程序将计算出这些数的和及平均值。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号