【文档说明】java基本程序设计课件.ppt,共(68)页,689.023 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45162.html
以下为本文档部分文字说明:
第二章Java基本程序设计单击此处添加副标题TheBasedProgramminginJava第二章Java基本程序设计2.1基本知识2.2基本数据类型2.3表达式2.4Java语句2.1基本知识•2.1.1字符集•Java语言采用unicode字符集,含有65535个字符,所以字母包
括下面几种:•A---Z,a---z•汉字、日文片假名、平假名和朝鲜文Unicode字符格式:\uddddd是一位十六进制数例:\u03c0表示希腊字母‚π”\u0030----\u0039表示0---9Unicode的网页地址:http:/www.stonehan
d.com/unicod.html2.1.2标识符•标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。下列都是合法标识符:•Hello、$1234、程序名、www_123•标识符中不能含有:‟+‟,
@和空格等符号•标识符可用作:•类名、变量名、方法名、数组名、文件名等2.1.3关键字•关键字就是Java语言中已经被赋予特定意义的一些单词。常见有:•abstract、class、public、try、catch、if、float、import、void等2.1.4常量•在Java中,利
用关键字final声明常量.例:•FinaldoubleCM_PER_INCH=2.54;•关键字final表示这个变量只能被赋值一次•一但被赋值之后,就不能再改变了•习惯上,常量名采用大写2.1.5注释Java有三种注释的方式:1。//注释内容由//一直到此行结束
2。/*和*/定义一个注释块3。/**开始,*/结束这种注释方法可用来自动产生文档2.1.5注释•/*这是一个Java的小例子*/•publicclassHello//定义一个类•{publicstaticvoidmain(St
ringargs[])•{•System.out.println(“你好!”);//输出•}•}Java中数据类型分为四种:•基本数据类型(primitivetype)•数组类型(arraytype)•类(classtype)•接口类型(interfacetype)任何常量和变量都
是上述四种数据类型之一。2.2基本数据类型2.2基本数据类型•Java是强类型语言(stronglytypedlanguage)•Java一共有8种基本类型(primitivetype):•4个整型•2个浮点•1个char(表示Unicode编码的字符)•1个boolean
2.2.1整数类型•常量:•十进制:123,6000•八进制:077,065•十六进制:0x234,0xab12•整形变量的定义分为四种:intbyteshortlongInt型•变量定义•intx;•inttom_12,jafei,年令•定义同时可赋值:•inttom_1
2=100,jafei,年令=20;•对于int型变量,内存分配为4个字节,占32位,取值范围-231~231-1-2147483648-2147483647Byte型•变量定义•bytew;•bytex,y,z;•定义同时可赋值:•bytex=12,y=24,z=36
;•对于byte型变量,内存分配1个字节,占8位,取值范围-27~27-1-128--127Short型•变量定义•shorth;•shortm,$12,_aort;•定义同时可赋值:•shortm=12,$12=20;•对于short型变量
,内存分配2个字节,占16位,取值范围-215~215-1-32768--32767Long型•变量定义•long长型•longI,j,k;•定义同时可赋值:•long长型;•对于long型变量,内存分配8个字节,占64位,取值范围-263~263-1-9223372
0368477808---92233720368477807补充例1publicclassIntTest{publicstaticvoidmain(Stringargsp[]){byteb1=0x12;byteb2=0x123;shorts1=0x1234;shorts2=0
x12345;inti1=0x12345678;inti2=0x123456789;inti3=0x123456789L;}}思考:编译时会出现怎样的结果?补充例1说明•第一遍编译时,语句inti2=0x123456789;提示
‚过大的整数‛错误,把该语句加注释或删除后,进行第二遍编译,对于语句byteb2=0x123;shorts2=0x12345;inti3=0x123456789L;都出现了错误提示‚可能损失精度‛。2.2.2浮点类型•Float型•常量:12.
23f,32.00F,2e40f•变量的定义:•floatx;•floatx1,x2,x3;•定义时赋初值:•floatx1=12.23f,x2=32.00f,x3;对于float型变量,内存分配4个字节
,占32位.有效位6-7位Double型•常量:12.23d,32.00D,123.0,6e-120•变量定义:•doubled;•doubled1,d2,d3;•定义时可以赋初值:•doubled1=1223.f,d2=32.00d,d3;•内存分配8个字节,占
64位有效位15位•常量:true、false•变量的定义:•booleanx;•booleanx,y,tom;•定义同时可赋值:•booleanx=true,tom=false;2.2.3逻辑型2.2.4字符类型•常量:‘a‟、‘A‟、‘8‟、‘?’•变量定义:•
charq;•charc,type,cat;•定义同时可赋值:•charc=„a‟,type,cat;补充例2publicclassCharTest{publicstaticvoidmain(Stringargsp[]){charch1='A';charch2='\u0041';charch3=0
X41;charch4=65;intx='A';System.out.println(ch1);System.out.println(ch2);System.out.println(ch3);System.out.println(ch4);System.out.pri
ntln(x);}}思考:字符常量的不同表示方式。(4)字符类型——char与StringString•不是基本数据类型,而是一个类•字符在双引号(“”)内‚Hello,World!”•使用如下:Stringstr1,str2;//声
明两个String变量Stringgreeting=“GoodMorning!!\n”;StringerrorMessage=“RecordNotFound!”;//声明两个String变量并且初始化它们2.2.5默认初值为了可靠性起见,Jav
a会自动为没有给定初值的变量设置标准的初值,如下表:基本数据类型预设值booleanfalsechar‘\u0000‟byte(byte)0short(short)0int0long0Lfloat0.0fdouble0.0d类型转换byte→short→int→longch
ar↓float↓double→↓↙↘类型转换•在上图中,6个白色箭头,表示无数据丢失的转换•3个红箭头,表示可能有精度损失的转换•例:•Intn=123456789;•Floatf=n;•结果:f=1.23456792E8造型
(强转类型)•大多数的数值转换是遵循优先级的关系自动完成的•而有些转换则是通过造型来完成的•语法:(转换后类型)被转换的变量名•例:doublex=9.987;•intnx=(int)x;•转换后nx=9•强转时,当心丢失数据造型•若要把一个浮点数转换成与其最接近的数(即进行四舍五入)需使用Ma
th.round()方法•例:doublex=9.987;•intnx=(int)Math.round(x);•结果:nx=10补充:封装类(Wrapper类)基本数据类型Wrapper类booleanBooleanby
teBytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDoubleWrapper类•通过将值传递给相应的构造器,可以构建Wrapper类对象•例如:intpInt=500;IntegerwInt=newInteger(pInt
);intp2=wInt.intValue();Wrapper类•当转换基本数据类型时Wrapper类很有用,因为可以使用很多Wrapper类方法(查API)。•例如:Stringstr=“365”;intx=Integer.parseInt(s
tr);或intx=Integer.valueOf(str).intValue();枚举类型•有时变量的取值仅在一个有限的集合内•例如:人民币的面值只有:100,50,20,10,5,2,1元的,可以采用枚举型•enumMoney{100,50,20,10,5,2,
1};•Moneym=Money.50;2.3表达式表达式是由变量、常量、对象、方法调用和操作符组成的式子。例:a+b*c/2-max(x,y)表达式的值就是对它运算后所得的结果。若a=4,b=5,c=6,x=7,y=9,则上述表达
式的结果为:10组成表达式的Java操作符有很多种,代表了多种的丰富的操作运算,包括赋值运算、算术运算、关系运算等。赋值运算符赋值运算符对应了赋值运算,即赋予程序里的变量或对象一定的内容。简单的赋值运算
是把一个表达式的值直接赋给一个变量或对象,使用的赋值运算符是‚=”,其格式为:变量或对象=表达式;其中赋值号右边的表达式可以是常量、另一变量或对象以及方法的返回值。简单例子•i=0;•j=i;•k=i+j*5;•MyFirstString=MyDoub
le.toString();•MySecondString=MyFirstString;算术运算符运算符用法描述双目运算符+Op1+op2加-Op1-op2减*Op1*op2乘/Op1/op2除%op1%op2取模(求余)单目运算符++op正值++++op,op++加1--
op负值----op,op--减1关系运算符运算符用法返回true的情况>op1>op2op1大于op2>=op1>=op2op1大于或等于op2<op1<op2op1小于op2<=op1<=op2op1小于或等于op2==op1==op2op1与op2相等!
=op1!=op2op1与op2不等布尔逻辑运算符op1op2op1&&op2op1||op2!op1falsefalsefalsefalsetruefalsetruefalsetruetruetrue
falsefalsetruefalsetruetruetruetruefalse位运算符运算符描述>>带符号右移运算<<左移运算>>>无符号右移运算(右移后零填充)&按位与|按位或^按位异或~按位取补运算条件运算符?:条件运算符也称三目运算符,其格式为:Expression?st
atement1:statement2;它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面:前面)或者是第三个运算量(放在:后面)。X>y?1:-1条件运算符的结合顺序是由右向左,也就是说,当我们写
a?b:c?d:e?f:g的时候,Java会将其解释为(a?b:(c?d:(e?f:g)))。例:x=5;x>0?1:x<0?-1:0其它运算符•分量运算符.•内存分配运算符new•方法调用运算符()•下标运算符[]•实例运算符instanceof运算符•优先级描述
运算符结合性•1分隔符[]().,;•2自增自减、逻辑非++--!右到左•3算术乘除*/%左到右•4算术加减+-左到右•5移位<<>>左到右•6大小关系运算<<=>>=左到右•7相等关系运算==!=左到右•8按位与运算&左到右优先级•优先级描述运算符结合性•9按位异或^左到右•10按位或|左到右
•11逻辑与&&左到右•12逻辑或||左到右•13三目条件运算?:左到右•14赋值运算=右到左运算符这是一个用来创建对象的运算符•Java提供一个特别的运算符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有两种类型的条件语句•if•switchIf语句•if语句
•一般形式:•if(表达式)•{语句序列1}•else•{语句序列2}•例:y={-1x<=0•publiccalssY•{publicstaticvoidmain(Stringargs[])•intx=6;•if(x>0)•{y=1;}
•else•{y=-1;}•System.out.println(“我在学习IF语句‛);}•1x>0if的扩充形式•if(表达式1)•语句1•elseif(表达式2)•语句2•……•elseif(表达式n)•语句n•e
lse•语句n+1switch语句•switch{表达式)•{case常量1:•语句序列1•break;•case常量2:•语句序列2•break;•…….•case常量n:•语句序列n•break;•default:•语句序列n•}
•几点注意:•表达式值、常量i的值为整形•常量i<>常量j•执行:先计算表达式值•若与常量i相同,则执行语句序列i•若都不相同,则执行语句序列n+1•例.根据考试成绩的等级打印出百分制分数段。•publ
icclassGradeLevel{publicstaticvoidmain(Stringargs[]){System.out.println("\n**firstsituation**");chargrade='C';
//normaluse•switch(grade){case'A':System.out.println(grade+"is85~100");break;case'B':System.out.println(grade+"is70~84");br
eak;case'C':System.out.println(grade+"is60~69");break;case'D':System.out.println(grade+"is<60");break
;default:System.out.println("inputerror");}}循环语句•分为三种:•for•while•do-while•格式:•for(表达式1;表达式2;表达式3)•{若干语句}•表达式1负责变量初始化•表达式2称为循环条件•表达式3用来改变循环条
件•{若干语句}称为循环体•执行如右:for语句例:1-100之和•importjava.applet.*;•importjava.awt.*;•publicclassForSum100extendsApplet•{publicvoidpaint(Graphicsg)•{ints
um=0;•for(inti=1;i<=100;i++)•{sum=sum+i;}•g.drawString("sum="+sum,10,20);}}PerfectNum.javawhile与do-while语句•while一般格式:•whil
e(表达式)•{若干语句}•do-while一般格式:•do•{语句序列}•while(表达式)转移语句•continue•作用:结束本次循环,开始下一次循环例:求100个数中的正数的和•publicclassForSum100•{publicstaticvoidmain(Stringar
gv[])•{intsum=0,a;•for(inti=1;i<=100;i++)•{System.in.read(a);•if(a<0)continue;•sum=sum+i;}•System.out.pri
ntln("sum="+sum);}}•break•作用:结束整个循环的执行,转到下一语句•publicclassForSum100•{publicstaticvoidmain(Stringargv[])•{intsum=0,a;•for(inti=1;i<=100
;i++)•{System.in.read(a);•if(a<0)break;•sum=sum+i;}•System.out.println("sum="+sum);}}例:求100个数的和,遇负数结
束返回语句•Java的返回语句与Java的方法紧密相关•当程序执行到此语句时,将立即返回上一级方法•格式:return[value]Java是第一个没有goto的流行语言!package语句•用于指明源
文件定义的类所在的包•一般格式:•package包名•例:packageexam;•package一定是源文件的第一条语句例:packagehorst.comm.packclassA{……}classB{……}classC{……}import语句•用于引入所需要的类•Java程序中可
以有多个import语句,它们必须位于package语句之后,类定义语句之前。•java.awt抽象窗口工具集,包含了图形、文本、窗口GUI类•Java提供了60个包,常用的包如下:•Java.applet实现JavaApplet的类Java常
用包•java.awt.image抽象窗口工具集中的图象处理类•java.lang基本语言类•java.io输入输出类•java.net所有实现网络功能的类•java.util有用的数据类型类•java.awt.peer平
台无关的GUI工具集界面Java常用包•从一个包中引入多个类,则可用*表示:•importjava.awt.*;•引入一个类,则需指出具体类名:•importjava.awt.Button;•Java.lang包是Java语言的核心类库,它包含了运行Ja
va程序必不可少的系统类。•系统自动引入Java.lang包