最新Java语言程序设计2课件_第1页
最新Java语言程序设计2课件_第2页
最新Java语言程序设计2课件_第3页
最新Java语言程序设计2课件_第4页
最新Java语言程序设计2课件_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计2Java语言程序设计2上章回顾Java开发平台有几种?Java是如何实现跨平台运行?开发和运行Java程序的步骤是什么?12/13/20222上章回顾Java开发平台有几种?12/10/20222最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件Java关键字关键字是指具有特殊含义的字符序列例如:public、static和class

具有特殊用途,不能作为变量名、方法名和类名12/13/20229Java关键字关键字是指具有特殊含义的字符序列12/10/2Java关键字(48个)abstract default if package thisboolean do implements private throwbreak double import protected throwsbyte else instanceof publictransientcase extends int return trycatch final long static voidchar finally native super volatileclass float new switch whileconst goto strictfp shortcontinue for interface synchronized12/13/202210Java关键字(48个)abstract default i本章总体纲要第一部分:标识符和关键字第二部分:数据类型、常量和变量第三部分:运算符和表达式12/13/202211本章总体纲要第一部分:标识符和关键字12/10/202211数据类型12/13/202212数据类型12/10/202212数据类型 基本数据类型是由一种简单数据组成的数据类型,其数据是不可分解的。基本数据类型已由Java预定义,类型名是关键字,如int,float,char和boolean等。基本数据的变量中保存数据值,而引用数据类型的变量保存地址。12/13/202213数据类型 基本数据类型是由一种简单数据组成的数据类型,其数基本的数据类型有8个基本的数据类型:整数类型:byte,short,int,long浮点类型:double,float文本类型:char逻辑类型:boolean12/13/202214基本的数据类型有8个基本的数据类型:12/10/202214

数据类型所占字节表示范围long(长整形)8-9223372036854775808~9223372036854775807int(整型)4-2147483648~2147483647short(短整型)2-32768~32767byte(位)1-128~127char(字符)10~256boolean(布尔)1true或falsefloat(单精度)4-3.4E38~3.4E38double(双精度)8-1.7E308~1.7E308Java基本类型表12/13/202215数据类型所占字节表示范围long(长整形)8-9223整数类型:byte,short,int,long整数类型有:字节(byte)短整数(short)整数(int)长整数(long)Java提供三种进制的整数表示形式十进制数:0—9之间的数字表示的数八进制数:0—7之间的数字表示的数十六进制数:0--9,a--f(A--F)之间的字母表示的数,以0x或0X作为前缀。12/13/202216整数类型:byte,short,int,long整数类型有:数值的表示例如:2---十进制2077---八进制0xBAAC----十六进制对一个数值,系统自动将它设为int类型,如要将它设为long类型,要在后面加“l”或“L”例:2L,077L,0XBAACL12/13/202217数值的表示例如:12/10/202217浮点类型:float,double有两类浮点数:单精度浮点数(float):32位双精度浮点数(double):64位浮点数的表示:6.836D----双精度浮点数2.718F---单精度浮点数6.02E23---大数值的双精度浮点数5.682E20F---大数值的单精度浮点数12/13/202218浮点类型:float,double有两类浮点数:12/10/文本类型:charchar类型表示一个16位的Unicode字符.字符有如下的表示方式:‘a’,‘字’‘\n’:换行(Enter),‘\b’:退格(Backspace)‘\u0061’:Unicode十六进制码12/13/202219文本类型:charchar类型表示一个16位的Unicod文本类型:String字符串(String)不是基本的数据类型,而是一个类。字符串用双引号来表示:“Thisisastring!”“这是字符串!”null表示空串12/13/202220文本类型:String字符串(String)不是基本的数据类文本类型:char和String例子:定义并初始化一个字符变量:charch=‘A’;定义两个字符变量:charch1,ch2;定义两个字符串变量并初始化它们:Stringgreeting=“GoodMorning!\n”;StringerrorMessage=“RecordNotFound!”;12/13/202221文本类型:char和String例子:12/10/20222逻辑类型:booleanboolean用来定义逻辑变量,它的取值为:true或false例如:booleantruth=true;定义变量truth为boolean型变量,并将其值赋为true.12/13/202222逻辑类型:booleanboolean用来定义逻辑变量,它的引用数据类型除8个基本数据类型外,其它的数据类型称为引用数据类型(ReferenceTypes)对象变量就是一种引用数据类型

12/13/202223引用数据类型除8个基本数据类型外,其它的数据类型称为引用数据引用数据类型publicclassMydate{privateintmyDay;privateintmyMonth;privateintmyYear;

publicMyDate(intday,intmonth,intyear){…..}}publicclassTestMydate{

Mydatetoday=newMydate(28,2,2009);}today是引用数据类型,它指向一个对象12/13/202224引用数据类型publicclassMydate12/10创建对象的过程当用new来创建对象时:Mydatetoday=newMydate(28,2,2009);系统将执行如下操作:为对象today分配内存空间,并将所有变量初始化为0和null;执行构造方法;引用变量today的值为该对象的地址。12/13/202225创建对象的过程当用new来创建对象时:12/10/20222创建对象的过程Mydatetoday=newMydate(28,2,2009);Mydatetoday:todaynew:todaymyDaymyMonthmyYear????????00012/13/202226创建对象的过程Mydatetoday=newMydate创建对象的过程Mydate(28,2,2009)todaymyDaymyMonthmyYear????220092812/13/202227创建对象的过程Mydate(28,2,2009)????22创建对象的过程设置引用变量:todaymyDaymyMonthmyYear0x01abcdef220092812/13/202228创建对象的过程设置引用变量:0x01abcdef220092常量常量是指在程序运行过程中其值始终保持不变的量。Java常量包括基本数据类型常量、字符串(String)常量和null

类型占用位数初始值boolean8falsechar16‘\u0000’byte8(byte)0short16(short)0int320long640Lfloat320.0fdouble640.0d12/13/202229常量常量是指在程序运行过程中其值始终保持不变的量。Java常常量可以用标识符表示常量,称为符号常量。符号常量必须先声明,后使用。符号常量的声明方式如下:final[修饰符]类型标识符常量名=(直接)常量;修饰符是表示该常量使用范围的权限修饰符:public,private,protected或缺省。如:finalfloatPI=3.14159;finalcharSEX='M';finalintMAX=100;12/13/202230常量可以用标识符表示常量,称为符号常量。符号常量必须常量声明符号常量的优点如下:增加了程序的可读性,从常量名可知常量的含义。增强了程序的可维护性,只要在常量的声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值。12/13/202231常量声明符号常量的优点如下:12/10/202231变量 变量是指在程序运行过程中其值可以改变的量。变量必须先定义后使用。其格式为:[修饰符]类型标识符变量名[=常量];12/13/202232变量 变量是指在程序运行过程中其值可以改变的量。变变量变量在计算机内部对应着一个存储单元,变量具有数据类型:基本数据类型引用数据类型变量总是具有与其数据类型相对应的值每个变量均具有:名字、类型、一定大小的存储单元以及值变量名对应内存的位置12/13/202233变量变量在计算机内部对应着一个存储单元,变量具有数据类型:1例题例2-1使用整数型变量:Integers.java例2-2使用单精度和双精度型变量:Floats.java例2-3使用字符类型变量:Characters.java例2-4使用字符串类型数据:Samp2_5.java例2-5使用逻辑类型变量:Logic.java12/13/202234例题例2-1使用整数型变量:Integers.java12例2-1Integers.javapublicclassIntegers{ publicstaticvoidmain(Stringargs[]) { inta=015; //八进制数 intb=20; //十进制数 intc=0x25; //十六进制数 shortx=30; longy=123456L; System.out.println("a="+a);//输出a的值 System.out.println("b="+b); System.out.println("c="+c); System.out.println("x="+x); System.out.println("y="+y); }}12/13/202235例2-1Integers.javapublicclass例2-2Floats.javapublicclassFloats{ publicstaticvoidmain(Stringargs[]) { floata=35.45f; doubleb=3.56e18; System.out.println("a="+a); System.out.println("b="+b); }}12/13/202236例2-2Floats.javapublicclassF例2-3Characters.javapublicclassCharacters{ publicstaticvoidmain(Stringargs[]) { charch1='a'; charch2='B'; System.out.println("ch1="+ch1); System.out.println("ch2="+ch2); }}12/13/202237例2-3Characters.javapubliccla例2-4Samp2_5.javapublicclassSamp2_5{ publicstaticvoidmain(Stringargs[]) { Stringstr1="abc"; Stringstr2="\n"; Stringstr3="123"; System.out.println("str1="+str1+str2+"str3="+str3); }}12/13/202238例2-4Samp2_5.javapublicclass例2-5Logic.javapublicclassLogic{ publicstaticvoidmain(Stringargs[]) { booleaninstance1=true; booleaninstance2=false; System.out.println("逻辑状态1="+instance1+""+"逻辑状态2="+instance2); }}12/13/202239例2-5Logic.javapublicclassLo本章总体纲要第一部分:标识符和关键字第二部分:数据类型、常量和变量第三部分:运算符和表达式12/13/202240本章总体纲要第一部分:标识符和关键字12/10/202240运算符和表达式对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。根据操作数的个数,可以将运算符分为单目、双目和多目运算符。单目运算符只对1个操作数运算,双目运算符对2个操作数运算。根据操作数和运算结果,运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符。12/13/202241运算符和表达式对数据进行加工和处理称为运算,表示各种运1、Java运算符(Operator)算术运算符关系运算符逻辑运算符位运算符赋值运算符条件运算符括号运算符12/13/2022421、Java运算符(Operator)算术运算符12/10/(1)算术运算符算术运算符分为: 1、单目运算符(一元运算符) “++”,“--” 例如:x=a++;y=b-- 2、双目运算符(二元运算符) +,-,*,/ 3、三目运算符(三元运算符) ?: 例如: a=2; z=(a>3)?a+1:a-1;12/13/202243(1)算术运算符算术运算符分为:12/10/202243算术运算符+,-,*,/,%,++,--,inti,j;doublek;i=3+6;j=30-i;//j=21i=3*3; //i=9

k=j/i; //k=21/9=2k=21%9; //k=3k=21/9; //k=2.0k=21.0/9; //k=2.33333312/13/202244算术运算符+,-,*,/,%,++,--,12算术运算符i+=4;//i=i+4j-=8;//j=j-8i++;//i=i+1i--;//i=i-1++j;//j=j+1--j;//j=j-1intn=7,m=7;inta=2*++m;//a=16,m=8intb=2*n++;//b=14,n=8y=Math.pow(x,a);//y=xa12/13/202245算术运算符i+=4;//i=i+412/10/20课堂练习-7/5=?-7%5=?7%-5=?5.5%1.0=?10.0/3=?intx=10;x+=11;//x=?inty=x++;//y=?,x=?intz=--x;//z=?,x=?x=Math.pow(5,2);//x=?-1-220.53.333333333333333521212221212512/13/202246课堂练习-7/5=?-1-220.53.3333333(2)关系运算符关系运算是2个操作数之间的比较运算。关系运算符有:>、<、>=、<=、==和!=。“==”和“!=”还可用于布尔类型及字符串类型操作数。字符类型操作数的比较依据是其Unicode值,字符串从左向右依此对每个字符比较。关系运算的运算结果是布尔类型值。如果关系成立,结果的值为true;否则,结果的值为false。12/13/202247(2)关系运算符关系运算是2个操作数之间的比关系运算符六个关系运算符:<、>、<=、>=、==和!=booleanb=(1>2);//false booleanb=(3.5!=1);//true

booleanb=(51.5>=23.0);//true booleanb=(540<=654);//true booleanb=(24==3*8);//true booleantest1=(10<10);//false12/13/202248关系运算符六个关系运算符:<、>、<=、>=、==和课堂练习inti=20,j=15;booleanb=(i>=10);//b=?booleanb=(i<j);//b=?booleanb=(i==(j+5));//b=?booleanb=(i!=j++);//b=?booleanb=(i>j*2);//b=?falsefalsetruetruetrue12/13/202249课堂练习inti=20,j=15;falsefalset(3)逻辑运算符逻辑运算是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然是布尔类型值。12/13/202250(3)逻辑运算符逻辑运算是对布尔类型操作数进逻辑运算符六个布尔逻辑运算符:& (逻辑与AND)| (逻辑或OR)^ (逻辑异或XOR)! (逻辑非NOT)单目运算符,即只有一个操作数&& (条件与AND)|| (条件或OR)12/13/202251逻辑运算符六个布尔逻辑运算符:12/10/202251逻辑运算符booleana,b,c;c=(a&b);//c=true,如果a,b为true.c=(a&&b);//若a为false,b不计算,c=falsec=(a|b);//c=true,如果a,b有一个为true.c=(a||b);//若a为true,b不计算,c=truec=(a^b);//c=true,如果a,b一个为true,一个为false.c=!a;//c=true,如果a=false.12/13/202252逻辑运算符booleana,b,c;12/10/2022逻辑运算符inti=20,j=28;booleanb=((i==20)&(j==28));//b=truebooleanb=((i<30)|(j>40));//b=truebooleanb=((i>=20)^(j<=40));//b=falsebooleana=!b;//a=truebooleanb=((i==30)&&((j*2+1)>50));//b=falsebooleanb=((i<30)||((j/3+10)<30));

//b=true12/13/202253逻辑运算符inti=20,j=28;12/10/2022课堂练习inti=100,j=25;booleanb=(((i+j)<=126)&(i*j>2000));

//b=truebooleanb=((i>120)|(j<=20)|!((i+j)>200));

//b=truebooleanb=((i<150)^(j>20));//b=falsebooleanb=true,a=false;booleanc=(b&&a);//c=falsebooleanc=(a||b);//c=true12/13/202254课堂练习inti=100,j=25;12/10/2022(4)位运算符位运算是对整数类型的操作数(byte,short,int,long)按二进制的位进行运算,其运算结果仍然是整数类型值。12/13/202255(4)位运算符位运算是对整数类型的操作数(byte,shor位运算符位运算符包括:&(与)、|(或)、~(非)、^(异或)、>>(带符号右移)、>>>(不带符号右移)和<<(左移)12/13/202256位运算符位运算符包括:12/10/202256位运算符bytec=0x4f;//c=01001111c=~c;//c=10110000=0xb0c=c&0x2d;//c=10110000&00101101=00100000=0x20c=c|0x2d;//c=00100000|00101101=00101101=0x2dc=c^0x4f;//c=00101101^01001111=01100010=0x6212/13/202257位运算符bytec=0x4f;//c=0100111位运算符bytec=(byte)64;//c=0x40=01000000c=c>>1;//c=00100000=0x20=32=64/21

c=64>>4;//c=00000100=0x4=4=64/24c=-64>>4;//c=-64/24=-4c=130>>>5;//c=130/25=4c=64<<1;//c=64*21=128c=17<<2;//c=17*22=6812/13/202258位运算符bytec=(byte)64;//c=0x40课堂练习intx=0x80;x=x&0x40;//x=?x=0x80|0x40;//x=?x=~0x80;//x=?x=0x80^0x40;//x=?

x=128>>2;//x=?x=30<<3;//x=?0192-1291923224012/13/202259课堂练习intx=0x80;0192-129192322(5)赋值运算符赋值运算用于给变量赋值,形式如下:

变量名=表达式;

赋值运算的次序是从右向左的,即先计算表达式的值,再将表达式的值赋予变量。例如:

inti=3,j;//i的初始值是3j=i+2;//结果,j的值是5i=2*j;//结果,i的值是10j=j+4;//结果,j的值是9

12/13/202260(5)赋值运算符赋值运算用于给变量赋值,形式如复合赋值运算符赋值类运算符包括:=、+=、-=、*=、/=、&=、|=、%=、<<=、>>=和>>>=x+=10;//x=x+10x*=10;//x=x*10x>>=2;//x=x>>212/13/202261复合赋值运算符赋值类运算符包括:=、+=、-=、*=、/=、(6)条件运算符条件运算格式如下:

表达式1?表达式2:表达式3“?:”称为条件运算符,它是三目运算符。如果“表达式1”的值是true,“表达式2”的值是最终表达式的值;如果“表达式1”的值是false,“表达式3”的值是最终表达式的值。12/13/202262(6)条件运算符条件运算格式如下:12/10/202262条件运算符例如:intmin,x=4,y=20;min=(x<y)?x:y;//结果使min取x和y中的较小值,即min的值是4inti=1;intk=((i>=0)?1:-1);//k取112/13/202263条件运算符例如:12/10/202263(7)括号运算符圆括号运算符“()”用于改变表达式中运算符的运算次序。先进行括号内的运算,再进行括号外的运算;在有多层括号的情况下,优先进行最内层括号内的运算,再依次从内向外逐层运算。12/13/202264(7)括号运算符圆括号运算符“()”用于改变其它运算符串级联运算符:+Stringsalutation=“Dr.”;Stringname=“Peter”+“”+“Wu”;Stringtitle=salutation+“”+name;//title=“Dr.PeterWu”12/13/202265其它运算符串级联运算符:+12/10/202265其它运算符类型转换(casting)longbigValue=99L;intsquashed=(int)bigValue;12/13/202266其它运算符类型转换(casting)12/10/2022662、表达式表达式是用运算符将操作数连接起来的符合语法规则的运算式。

例如:inti=5,j=10,k;k=(24+3*i)*j;

12/13/2022672、表达式表达式是用运算符将操作数连接起来的符合运算符的优先级运算符描述优先级结合性.[]()域,数组,括号1从左至右++---!~一元运算符2从右至左*/%乘,除,取余3从左至右+-加,减4从左至右<<>>>>>位运算5从左至右<<=>>=逻辑运算6从左至右==!=逻辑运算7从左至右&按位与8从左至右^按位异或9从左至右12/13/202268运算符的优先级运算符描述优先级结合性.[]()

续前表运算符描述优先级结合性|按位或10从左至右&&逻辑与11从右至左||逻辑或12从左至右?:条件运算13从左至右=*=/=%=+=-=<<=>>=>>>=&=^=|=位运算14从左至右12/13/202269续前表运算符描述优先级结合性|按位或10从左至右&&逻辑与运算符的优先顺序x=3+4*5;//x=23fruits=oranges+++apples;//fruits=(oranges++)+applesa=b+c+10;//a=(b+c)+10inta=1,b=1,c=1;a+=b=c+=d=10;/*a+=(b=(c+=(d=10))),d=10,c=11,b=11,a=12*/在程序中,最好用()来区分优先.12/13/202270运算符的优先顺序x=3+4*5;//x=2312/10表达式的数据类型表达式的数据类型由运算结果的数据类型决定。例如:

inti=3,j=21,k;booleanf;k=(i+3)*4;//(i+3)*4是算术表达式f=(i*2)>j;//(i*2)>j是布尔表达式12/13/202271表达式的数据类型表达式的数据类型由运算结果的数据类型决定。数据类型的转换各个数据类型之间有强弱关系:弱的数据类型可以直接转换成强的数据类型:doubled=10;//d=10.0强的数据类型要通过强制转换成弱的数据类型:byteb=(byte)10;inti=102;shorts=(short)i;byte<shortchar<int<long<float<double12/13/202272数据类型的转换各个数据类型之间有强弱关系:byte<shor例题例2-6单目操作符实例:OOperator.java例2-7整数相除:使用单精度和双精度型变量:Floats.java12/13/202273例题例2-6单目操作符实例:OOperator.java1例2-6单目操作符实例:OOperator.javapublicclassOOPerator{ publicstaticvoidmain(Stringargs[]) { inti=15,j1,j2,j3,j4; j1=i++; //在操作数的右面 System.out.println("i++="+j1); j2=++i; //在操作数的左面 System.out.println("++i="+j2); j3=--i; System.out.println("--i="+j3); j4=i--; System.out.println("I--="+j4); System.out.println("i="+i); }}12/13/202274例2-6单目操作符实例:OOperator.javapub例2-7整数相除:Floats.javapublicclassDivide{ publicstaticvoidmain(Stringargs[]) { inti=15,j=4,k; floatf1,f2; k=i/j; f1=i/j; f2=(float)i/j; System.out.println("k="+k); System.out.println("f1="+f1); System.out.println("f2="+f2); }}12/13/202275例2-7整数相除:Floats.javapubliccl本章小结第一部分:标识符和关键字第二部分:数据类型、常量和变量第三部分:运算符和表达式12/13/202276本章小结第一部分:标识符和关键字12/10/202276学习目标标识符和关键字能够区分有效和无效的标识符;掌握Java的关键字;数据类型掌握8个基本的数据类型;掌握引用数据类型;运算符掌握运算符的使用;掌握表达式的组成;12/13/202277学习目标标识符和关键字12/10/202277作业一:实验题:1、设计一个银行帐户管理类Account属性:用户名,帐户余额方法:构造方法:设置用户名,余额getBalance:显示用户名字和余额deposit(amt):在帐户上存入amt的钱withdraw(amt):从帐户上取出amt的钱12/13/202278作业一:实验题:12/10/202278作业一:2、设计一个TestAccount类创建一个用户的帐户,余额为1000元显示用户名和余额存入200元取出500元显示用户名和余额12/13/202279作业一:2、设计一个TestAccount类12/10/20作业解析://filename:Account.javapublicclassAccount{Stringname;doublebalance;publicAccount(Stringn,doubleb){name=n;balance=b;}

12/13/202280作业解析://filename:Account.javapublicvoidgetBalance(){System.out.println(name+“”+balance);}publicvoiddeposit(doubleamt){balance=balance+amt;}publicvoidwithdraw(doubleamt){balance=balance-amt;}}12/13/202281publicvoidgetBalance()1//filename:TestAccount.javapublicclassTestAccount{publicstaticvoidmain(Stringargs[]){Accountpeter=newAccount(“peter”,1000);peter.getBalance();peter.deposit(200);peter.withdraw(500);peter.getBalance();}}12/13/202282//filename:TestAccount.java

结束语谢谢大家聆听!!!83

结束语谢谢大家聆听!!!83Java语言程序设计2Java语言程序设计2上章回顾Java开发平台有几种?Java是如何实现跨平台运行?开发和运行Java程序的步骤是什么?12/13/202285上章回顾Java开发平台有几种?12/10/20222最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件最新Java语言程序设计2课件Java关键字关键字是指具有特殊含义的字符序列例如:public、static和class

具有特殊用途,不能作为变量名、方法名和类名12/13/202292Java关键字关键字是指具有特殊含义的字符序列12/10/2Java关键字(48个)abstract default if package thisboolean do implements private throwbreak double import protected throwsbyte else instanceof publictransientcase extends int return trycatch final long static voidchar finally native super volatileclass float new switch whileconst goto strictfp shortcontinue for interface synchronized12/13/202293Java关键字(48个)abstract default i本章总体纲要第一部分:标识符和关键字第二部分:数据类型、常量和变量第三部分:运算符和表达式12/13/202294本章总体纲要第一部分:标识符和关键字12/10/202211数据类型12/13/202295数据类型12/10/202212数据类型 基本数据类型是由一种简单数据组成的数据类型,其数据是不可分解的。基本数据类型已由Java预定义,类型名是关键字,如int,float,char和boolean等。基本数据的变量中保存数据值,而引用数据类型的变量保存地址。12/13/202296数据类型 基本数据类型是由一种简单数据组成的数据类型,其数基本的数据类型有8个基本的数据类型:整数类型:byte,short,int,long浮点类型:double,float文本类型:char逻辑类型:boolean12/13/202297基本的数据类型有8个基本的数据类型:12/10/202214

数据类型所占字节表示范围long(长整形)8-9223372036854775808~9223372036854775807int(整型)4-2147483648~2147483647short(短整型)2-32768~32767byte(位)1-128~127char(字符)10~256boolean(布尔)1true或falsefloat(单精度)4-3.4E38~3.4E38double(双精度)8-1.7E308~1.7E308Java基本类型表12/13/202298数据类型所占字节表示范围long(长整形)8-9223整数类型:byte,short,int,long整数类型有:字节(byte)短整数(short)整数(int)长整数(long)Java提供三种进制的整数表示形式十进制数:0—9之间的数字表示的数八进制数:0—7之间的数字表示的数十六进制数:0--9,a--f(A--F)之间的字母表示的数,以0x或0X作为前缀。12/13/202299整数类型:byte,short,int,long整数类型有:数值的表示例如:2---十进制2077---八进制0xBAAC----十六进制对一个数值,系统自动将它设为int类型,如要将它设为long类型,要在后面加“l”或“L”例:2L,077L,0XBAACL12/13/2022100数值的表示例如:12/10/202217浮点类型:float,double有两类浮点数:单精度浮点数(float):32位双精度浮点数(double):64位浮点数的表示:6.836D----双精度浮点数2.718F---单精度浮点数6.02E23---大数值的双精度浮点数5.682E20F---大数值的单精度浮点数12/13/2022101浮点类型:float,double有两类浮点数:12/10/文本类型:charchar类型表示一个16位的Unicode字符.字符有如下的表示方式:‘a’,‘字’‘\n’:换行(Enter),‘\b’:退格(Backspace)‘\u0061’:Unicode十六进制码12/13/2022102文本类型:charchar类型表示一个16位的Unicod文本类型:String字符串(String)不是基本的数据类型,而是一个类。字符串用双引号来表示:“Thisisastring!”“这是字符串!”null表示空串12/13/2022103文本类型:String字符串(String)不是基本的数据类文本类型:char和String例子:定义并初始化一个字符变量:charch=‘A’;定义两个字符变量:charch1,ch2;定义两个字符串变量并初始化它们:Stringgreeting=“GoodMorning!\n”;StringerrorMessage=“RecordNotFound!”;12/13/2022104文本类型:char和String例子:12/10/20222逻辑类型:booleanboolean用来定义逻辑变量,它的取值为:true或false例如:booleantruth=true;定义变量truth为boolean型变量,并将其值赋为true.12/13/2022105逻辑类型:booleanboolean用来定义逻辑变量,它的引用数据类型除8个基本数据类型外,其它的数据类型称为引用数据类型(ReferenceTypes)对象变量就是一种引用数据类型

12/13/2022106引用数据类型除8个基本数据类型外,其它的数据类型称为引用数据引用数据类型publicclassMydate{privateintmyDay;privateintmyMonth;privateintmyYear;

publicMyDate(intday,intmonth,intyear){…..}}publicclassTestMydate{

Mydatetoday=newMydate(28,2,2009);}today是引用数据类型,它指向一个对象12/13/2022107引用数据类型publicclassMydate12/10创建对象的过程当用new来创建对象时:Mydatetoday=newMydate(28,2,2009);系统将执行如下操作:为对象today分配内存空间,并将所有变量初始化为0和null;执行构造方法;引用变量today的值为该对象的地址。12/13/2022108创建对象的过程当用new来创建对象时:12/10/20222创建对象的过程Mydatetoday=newMydate(28,2,2009);Mydatetoday:todaynew:todaymyDaymyMonthmyYear????????00012/13/2022109创建对象的过程Mydatetoday=newMydate创建对象的过程Mydate(28,2,2009)todaymyDaymyMonthmyYear????220092812/13/2022110创建对象的过程Mydate(28,2,2009)????22创建对象的过程设置引用变量:todaymyDaymyMonthmyYear0x01abcdef220092812/13/2022111创建对象的过程设置引用变量:0x01abcdef220092常量常量是指在程序运行过程中其值始终保持不变的量。Java常量包括基本数据类型常量、字符串(String)常量和null

类型占用位数初始值boolean8falsechar16‘\u0000’byte8(byte)0short16(short)0int320long640Lfloat320.0fdouble640.0d12/13/2022112常量常量是指在程序运行过程中其值始终保持不变的量。Java常常量可以用标识符表示常量,称为符号常量。符号常量必须先声明,后使用。符号常量的声明方式如下:final[修饰符]类型标识符常量名=(直接)常量;修饰符是表示该常量使用范围的权限修饰符:public,private,protected或缺省。如:finalfloatPI=3.14159;finalcharSEX='M';finalintMAX=100;12/13/2022113常量可以用标识符表示常量,称为符号常量。符号常量必须常量声明符号常量的优点如下:增加了程序的可读性,从常量名可知常量的含义。增强了程序的可维护性,只要在常量的声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值。12/13/2022114常量声明符号常量的优点如下:12/10/202231变量 变量是指在程序运行过程中其值可以改变的量。变量必须先定义后使用。其格式为:[修饰符]类型标识符变量名[=常量];12/13/2022115变量 变量是指在程序运行过程中其值可以改变的量。变变量变量在计算机内部对应着一个存储单元,变量具有数据类型:基本数据类型引用数据类型变量总是具有与其数据类型相对应的值每个变量均具有:名字、类型、一定大小的存储单元以及值变量名对应内存的位置12/13/2022116变量变量在计算机内部对应着一个存储单元,变量具有数据类型:1例题例2-1使用整数型变量:Integers.java例2-2使用单精度和双精度型变量:Floats.java例2-3使用字符类型变量:Characters.java例2-4使用字符串类型数据:Samp2_5.java例2-5使用逻辑类型变量:Logic.java12/13/2022117例题例2-1使用整数型变量:Integers.java12例2-1Integers.javapublicclassIntegers{ publicstaticvoidmain(Stringargs[]) { inta=015; //八进制数 intb=20; //十进制数 intc=0x25; //十六进制数 shortx=30; longy=123456L; System.out.println("a="+a);//输出a的值 System.out.println("b="+b); System.out.println("c="+c); System.out.println("x="+x); System.out.println("y="+y); }}12/13/2022118例2-1Integers.javapublicclass例2-2Floats.javapublicclassFloats{ publicstaticvoidmain(Stringargs[]) { floata=35.45f; doubleb=3.56e18; System.out.println("a="+a); System.out.println("b="+b); }}12/13/2022119例2-2Floats.javapublicclassF例2-3Characters.javapublicclassCharacters{ publicstaticvoidmain(Stringargs[]) { charch1='a'; charch2='B'; System.out.println("ch1="+ch1); System.out.println("ch2="+ch2); }}12/13/2022120例2-3Characters.javapubliccla例2-4Samp2_5.javapublicclassSamp2_5{ publicstaticvoidmain(Stringargs[]) { Stringstr1="abc"; Stringstr2="\n"; Stringstr3="123"; System.out.println("str1="+str1+str2+"str3="+str3); }}12/13/2022121例2-4Samp2_5.javapublicclass例2-5Logic.javapublicclassLogic{ publicstaticvoidmain(Stringargs[]) { booleaninstance1=true; booleaninstance2=false; System.out.println("逻辑状态1="+instance1+""+"逻辑状态2="+instance2); }}12/13/2022122例2-5Logic.javapublicclassLo本章总体纲要第一部分:标识符和关键字第二部分:数据类型、常量和变量第三部分:运算符和表达式12/13/2022123本章总体纲要第一部分:标识符和关键字12/10/202240运算符和表达式对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。根据操作数的个数,可以将运算符分为单目、双目和多目运算符。单目运算符只对1个操作数运算,双目运算符对2个操作数运算。根据操作数和运算结果,运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符。12/13/2022124运算符和表达式对数据进行加工和处理称为运算,表示各种运1、Java运算符(Operator)算术运算符关系运算符逻辑运算符位运算符赋值运算符条件运算符括号运算符12/13/20221251、Java运算符(Operator)算术运算符12/10/(1)算术运算符算术运算符分为: 1、单目运算符(一元运算符) “++”,“--” 例如:x=a++;y=b-- 2、双目运算符(二元运算符) +,-,*,/ 3、三目运算符(三元运算符) ?: 例如: a=2; z=(a>3)?a+1:a-1;12/13/2022126(1)算术运算符算术运算符分为:12/10/202243算术运算符+,-,*,/,%,++,--,inti,j;doublek;i=3+6;j=30-i;//j=21i=3*3; //i=9

k=j/i; //k=21/9=2k=21%9; //k=3k=21/9; //k=2.0k=21.0/9; //k=2.33333312/13/2022127算术运算符+,-,*,/,%,++,--,12算术运算符i+=4;//i=i+4j-=8;//j=j-8i++;//i=i+1i--;//i=i-1++j;//j=j+1--j;//j=j-1intn=7,m=7;inta=2*++m;//a=16,m=8intb=2*n++;//b=14,n=8y=Math.pow(x,a);//y=xa12/13/2022128算术运算符i+=4;//i=i+412/10/20课堂练习-7/5=?-7%5=?7%-5=?5.5%1.0=?10.0/3=?intx=10;x+=11;//x=?inty=x++;//y=?,x=?intz=--x;//z=?,x=?x=Math.pow(5,2);//x=?-1-220.53.333333333333333521212221212512/13/2022129课堂练习-7/5=?-1-220.53.3333333(2)关系运算符关系运算是2个操作数之间的比较运算。关系运算符有:>、<、>=、<=、==和!=。“==”和“!=”还可用于布尔类型及字符串类型操作数。字符类型操作数的比较依据是其Unicode值,字符串从左向右依此对每个字符比较。关系运算的运算结果是布尔类型值。如果关系成立,结果的值为true;否则,结果的值为false。12/13/2022130(2)关系运算符关系运算是2个操作数之间的比关系运算符六个关系运算符:<、>、<=、>=、==和!=booleanb=(1>2);//false booleanb=(3.5!=1);//true

booleanb=(51.5>=23.0);//true booleanb=(540<=654);//true booleanb=(24==3*8);//true booleantest1=(10<10);//false12/13/2022131关系运算符六个关系运算符:<、>、<=、>=、==和课堂练习inti=20,j=15;booleanb=(i>=10);//b=?booleanb=(i<j);//b=?booleanb=(i==(j+5));//b=?booleanb=(i!=j++);//b=?booleanb=(i>j*2);//b=?falsefalsetruetruetrue12/13/2022132课堂练习inti=20,j=15;falsefalset(3)逻辑运算符逻辑运算是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然是布尔类型值。12/13/2022133(3)逻辑运算符逻辑运算是对布尔类型操作数进逻辑运算符六个布尔逻辑运算符:& (逻辑与AND)| (逻辑或OR)^ (逻辑异或XOR)! (逻辑非NOT)单目运算符,即只有一个操作数&& (条件与AND)|| (条件或OR)12/13/2022134逻辑运算符六个布尔逻辑运算符:12/10/202251逻辑运算符booleana,b,c;c=(a&b);//c=true,如果a,b为true.c=(a&&b);//若a为false,b不计算,c=falsec=(a|b);//c=true,如果a,b有一个为true.c=(a||b);//若a为true,b不计算,c=truec=(a^b);//c=true,如果a,b一个为true,一个为false.c=!a;//c=true,如果a=false.12/13/2022135逻辑运算符booleana,b,c;12/10/2022逻辑运算符inti=20,j=28;booleanb=((i==20)&(j==28));//b=truebooleanb=((i<30)|(j>40));//b=truebooleanb=((i>=20)^(j<=40));//b=falsebooleana=!b;//a=truebooleanb=((i==30)&&((j*2+1)>50));//b=falsebooleanb=((i<30)||((j/3+10)<30));

//b=true12/13/2022136逻辑运算符inti=20,j=28;12/10/2022课堂练习inti=100,j=25;booleanb=(((i+j)<=126)&(i*j>2000));

//b=truebooleanb=((i>120)|(j<=20)|!((i+j)>200));

//b=truebooleanb=((i<150)^(j>20));//b=falsebooleanb=true,a=false;booleanc=(b&&a);//c=falsebooleanc=(a||b);//c=true12/13/2022137课堂练习inti=100,j=25;12/10/2022(4)位运算符位运算是对整数类型的操作数(byte,short,int,long)按二进制的位进行运算,其运算结果仍然是整数类型值。12/13/2022138(4)位运算符位运算是对整数类型的操作数(byte,shor位运算符位运算符包括:&(与)、|(或)、~(非)、^(异或)、>>(带符号右移)、>>>(不带符号右移)和<<(左移)12/13/2022139位运算符位运算符包括:12/10/202256位运算符bytec=0x4f;//c=01001111c=~c;//c=10110000=0xb0c=c&0x2d;//c=10110000&00101101=00100000=0x20c=c|0x2d;//c=00100000|00101101=00101101=0x2dc=c^0x4f;//c=00101101^01001111=01100010=0x6212/13/2022140位运算符bytec=0x4f;//c=0100111位运算符bytec=(byte)64;//c=0x40=01000000c=c>>1;//c=00100000=0x20=32=64/21

c=64>>4;//c=00000100=0x4=4=64/24c=-64>>4;//c=-64/24=-4c=130>>>5;//c=130/25=4c=64<<1;//c=64*21=128c=17<<2;//c=17*22=6812/13/2022141位运算符bytec=(byte)64;//c=0x40课堂练习intx=0x80;x=x&0x40;//x=?x=0x80|0x40;//x=?x=~0x80;//x=?x=0x80^0x40;//x=?

x=128>>2;//x=?x=30<<3;//x=?0192-1291923224012/13/2022142课堂练习intx=0x80;0192-129

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论