Java语言编程基础(贾克).ppt

上传人:max****ui 文档编号:11496907 上传时间:2020-04-25 格式:PPT 页数:73 大小:415KB
返回 下载 相关 举报
Java语言编程基础(贾克).ppt_第1页
第1页 / 共73页
Java语言编程基础(贾克).ppt_第2页
第2页 / 共73页
Java语言编程基础(贾克).ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
第2章Java语言编程基础,主讲:贾克,复习与思考,1、举例说明什么是对象,什么是类,类和对象有什么不同?2、举例说明类的继承性。,2.1Java语言的基本组成,2.1.1分隔符1空白符:换行、回车、空格、tab2注释语句:例题参见P25/一行的注释内容/*一行或多行的注释内容*/*文档注释内容*/3普通分隔符:;,:共4种,2.1Java语言的基本组成,2.1.2关键字所有的关键字都是小写的。参见P25const和goto是java的保留字,但已经不再使用then和sizeof都不是java的关键字,大写的NULL不是java语言的关键字,String是java语言的一个封装类的类名,也不是关键字,使用时要注意。,2.1Java语言的基本组成,2.1.3Java语言标识符首字符必须是字母(大小写均可)、下划线或美元符$标识符可以由数字(0-9)、所有从A-Z的大写字母、a-z的小写字母和下划线、美元符$和所有在十六进制0 xc0前的ASCII码等构成长度不限,2.1Java语言的基本组成,2.1.4Java的编码规范包package:包名采用完整的英文描述符,全由小写字母组成类class和接口interface:类名采用完整的英文描述符,所有单词的第一个字母均大写组件/部件(Component):使用完整的英文描述来说明组件的用途,末端应接上组件类型,2.1Java语言的基本组成,2.1.4Java的编码规范异常(Exception):通常采用字母e表示异常的实例变量variable和方法method:采用完整的英文描述,第一个字母小写,后面任何单词的首字母大写静态常量字段(staticfinal):全部采用大写字母,单词之间用下划线分隔,2.2基本数据类型,数据类型,2.2基本数据类型,2.2.1基本数据类型1布尔型boolean也称为逻辑型,只有两个取值:true表示逻辑真,false表示逻辑假,这种变量称为boolean型变量2字符型charchar型是用来表示字母的,它仅能表示一个单一的Unicode字母,其值用16位无符号整数表示(2个字节,因此可以存放汉字),范围是065535,2.2基本数据类型,2字符型char例:下面分别输出什么?chara=a;System.out.println(a);inta=a;System.out.println(a);chara=a+1;System.out.println(a);,2字符型char在java中,对char进行运算的时候,就是将其当作其ASCII码对应的整数。,2.2基本数据类型,2.2.1基本数据类型3.整型在Java语言中,提供了4种整型数据类型:byte、short、int、long,它们都是定义了一个整数,但它们能够表示数据的范围不同。byte1个字节-128127-21*8-121*8-1-1short2个字节-22*8-122*8-1-1int4个字节-24*8-124*8-1-1long8个字节-28*8-128*8-1-1,2.2基本数据类型,2.2.1基本数据类型3.整型判断输出bytea=128;System.out.println(a);inta=077;System.out.println(a);inta=0X77;System.out.println(a);,2.2基本数据类型,2.2.1基本数据类型4浮点型在Java语言中有两种浮点数类型:float、double区别在于表示范围不一样。float4个字节double8个字节浮点数常量是double类型如果要求是float型实数,必须加上F标志,判断输出floata=3.4;System.out.println(a);问题:float也叫单精度,double双精度,他们表示的精度有什么差别吗?,2.2基本数据类型,2.2.2数据类型转换自动类型转换判断对错:inta=3.4;doublea=3.4;强制类型转换inta=(int)3.4;,2.2基本数据类型,2.2.2类型转换计算中类型转换:整型、实型、字符型数据可以进行混合运算。运算时,不同类型的数据先转换成同一类型后再参与运算,转换的原则是位数少的类型转换成位数多的类型,称为自动类型转换,例:下面会出现何种情况?inta=3;intb=a+3.4;inta=15;floatb=3.0f;System.out.println(a=+a+,b=+b+n);System.out.println(a/b=+a/b+n);,例:inta=7;intb=3;floatg,h;System.out.println(a=+a+,b=+b);g=a/b;System.out.println(a/b=+g+n);System.out.println(a=+a+,b=+b);h=(float)a/b;/若此处改为=(float)(a/b);System.out.println(a/b=+h);,2.3运算符与表达式,2.3.1算术运算符1.双目算术运算符双目算术运算符包括+、-、*、/和%(取模)五种运算符。例:用java编写程序计算两个数是否能够整除,publicclass$2publicstaticvoidmain(Stringargs)inta=3;intb=6;if(b%a=0)System.out.println(yes);elseSystem.out.println(no);,2.3运算符与表达式,2.3.1算术运算符2单目算术运算符+,+,-,-inti=10,j,k,m,n;j=+i;k=-i;m=i+;m=+i;n=i-;n=-i;,2.3运算符与表达式,2.3.2关系运算符=i+);System.out.println(i=+i);System.out.println(k=+k);,2.3运算符与表达式,2.3.4位运算符按位取反intj=2;intflag=i|j;System.out.println(flag=+flag);intflag=ij;,同的区别:最高位的填充-42;-1最高为填充与原最高位相同-42;1073721823最高位一律填充0,2.3运算符与表达式,2.3.5赋值运算符=1.赋值运算符赋值运算符“=”把一个数据赋给一个变量,在赋值运算符两侧的类型不一致的情况下,进行类型转换2.扩展赋值运算符在赋值符“=”前加上其它运算符,即构成扩展赋值运算符a+=3等价于a=a+3,2.3运算符与表达式,2.3.6条件运算符条件运算符?:为三目运算符,它的一般形式为:expression?statement1:statement2例:inta=2,b=3intmaxValue=ab?a:b,2.3.7表达式计算优先级大体上由高到低排列为:一元运算符算数运算符关系和逻辑运算符赋值运算符a=bcharb=k;Catcat1=newCat();内存cat1内存放的是堆cat1的首地址堆内存:存放由New运算符创建的对象和数组例:Catcat1=newCat();,2.4数组,2.4.1一维数组1.一维数组的定义inta;或inta;2一维数组元素的引用定义了一个数组,并用运算符new为它分配了内存空间后,就以引用数组中的每一个元素了。a=newint3;数组元素的引用方式为:数组的第一个元素:a0,二:a1,三:a2,2.4.1一维数组inta;a=newint3;inta=newint5;,2.4数组,2.4.1一维数组3一维数组的初始化对数组元素可以先声明再进行赋值。也可以在定义数组的同时进行初始化。inta=newint3;a0=1;a1=2;a2=3;如:intarr=2,4,6,8,4;但intarr5=2,4,6,8,4;非法,例:方老太养了6只鸡,体重分别1kg,2kg,3kg,3kg,4kg,5kg,求这些鸡的总体重,体重分别1kg,2kg,3kg,3kg,4.4kg,5.2kg,求平均体重。数组的定义,初始化,赋值,引用,inta;a=newint6;a0=1;a1=2;a2=3;a3=4;a4=5;a5=6;inti;intsum=0;for(i=0;ia.length;i+)sum=sum+ai;System.out.println(sum=+sum);,floata=1,2,3,3,4.4f,5.2f;inti;floatsum=0,aver=0;for(i=0;ia.length;i+)sum=sum+ai;aver=sum/6;System.out.println(aver=+aver);,数组不能越界inta=newint3;a3=4;如何知道数组的长度a.length,例2-8:求Fabonacci数组的前10项。intf;f1=1;f2=1;,intf,i;f=newint10;f0=1;f1=1;for(i=2;i10;i+)fi=fi-1+fi-2;for(i=0;i10;i+)System.out.println(f+i+=+fi);,既然int,float,double.都可以有数组,那么,可不可以有对象数组呢?养鸡厂有4只鸡,求这些鸡体重最大和最小那只的名字,classChickStringname;floatweight;publicclass$2publicstaticvoidmain(Stringargs)floatmaxweight=0,minweight=4.5f;intmaxnum=0,minnum=0;Chickchicks=newChick4;chicks0=newChick();/此行特别注意chicks0.name=小白;chicks0.weight=4.5f;chicks1=newChick();chicks1.name=小黑;chicks1.weight=5.5f;chicks2=newChick();chicks2.name=小花;chicks2.weight=4;chicks3=newChick();chicks3.name=小雪;chicks3.weight=5f;for(inti=0;imaxweight)maxweight=chicksi.weight;maxnum=i;elseif(chicksi.weightminweight)minweight=chicksi.weight;minnum=i;System.out.println(体重最大的鸡的名字为+chicksmaxnum.name+,体重最轻的鸡的名字为+chicksminnum.name);,上机练习要求:在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。如果已知每个评委的评分,求该选手的得分。该题实际上涉及到求数组的最大值、最小值,以及求数组中所有元素的和,也是数组方便统计的用途体现。实现思路:求出数组元素的最大值、最小值以及和,然后使用和减去最大值和最小值,然后除以8获得得分。,判断一个数组中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”。该题中如果需要判断数组中元素是否重复,则需要对数组中的元素进行两两比较,如果有任意一组元素相等,则该数组中的元素存在重复,如果任意一组元素都不想等,则表示数组中的元素不重复。实现思路:假设数组中的元素不重复,两两比较数组中的元素,使用数组中的第一个元素和后续所有元素比较,接着使用数组中的第二个元素和后续元素比较,依次类推实现两两比较,如果有一组元素相同,则数组中存储重复,结束循环。把比较的结果存储在一个标志变量里,最后判断标志变量的值即可。,要求:判断数组元素是否对称。例如1、1,2,0,2,1,1,2,3,3,2,1这样的都是对称数组。该题中用于判断数组中的元素关于中心对称,也就是说数组中的第一个元素和最后一个元素相同,数组中的第二个元素和倒数第二个元素相同,依次类推,如果比较到中间,所有的元素都相同,则数组对称。实现思路:把数组长度的一半作为循环的次数,假设变量i从0循环到数组的中心,则对应元素的下标就是数组长度-i-1,如果对应的元素有一组不相等则数组不对称,如果所有对应元素都相同,则对称。,考察题,要求:统计一个整数中出现最多的数字。如果数字个数一样,则以最大的数字为准,例如1输出1,121输出1,23231输出3。该题是一个综合的题目,在实际分析时可以分解成三个问题:1、把整数中的每个数字拆分出来,2、统计拆分出的数字中0-9每个的个数,3、获得数字个数的最大值。实现思路:1、拆分数字:整数和10取余可以获得该整数的个位值,然后用该整数除以10可以去掉个位(整数除法),按照这种结构实现循环,并把拆分出的数字(也就是余数)存储到数组中。2、统计数字:声明一个长度是10的整型数组,使用这个数组中的第一个元素保存数字0出现的次数,第二个元素保存数字1出现的次数,依次类推。使用循环实现数字个数的统计。3、获得最大值对应的数字:获得个数数组中最大值的下标,就是需要的数字。,2.4数组,2.4.2多维数组1二维数组的定义inta;a=newint34;直接分配每维空间:intarr=newint23;也可从高维开始,分别为每一维分配空间:intarr=newint2;arr0=newint3;/特别注意,此处要用new创建arr1=newint3;,2.4数组,2.4.2多维数组Java的二维数组和C的二维数组的区别在哪里?在C语言中定义一个二维数组,必须是一个m*n二维矩阵块,Java语言的多维数组不一定是规则的矩阵形式inta=newint2;arr0=newint2;arr1=newint3;,/定义第二维长度不同的二维数组inta=newint2;a0=newint2;a00=1;a01=2;a1=newint3;a10=3;a11=4;a12=5;for(inti=0;ia.length;i+)for(intj=0;jai.length;j+)System.out.print(aij+,);System.out.print(n);,2.4数组,2.4.2多维数组2二维数组的初始化直接对每个元素赋值如:inta=2,3,1,5,3,4;定义的同时初始化:intarr=3,4,7,1,-4,12;,2.4.2多维数组如何求多维数组的总元素个数一维数组a.length二维数组a.length表示数组a的行数,inta=2,3,4,5,6,7;intnum=0;for(inti=0;ia.length;i+)for(intj=0;jai.length;j+)num+;System.out.println(num);,实例2-10:矩阵的乘法运算,publicclassarraypublicstaticvoidmain(Stringargs)inta;a=newint32;a00=1;a01=1;a10=1;a11=1;a20=1;a21=1;for(inti=0;ia.length;i+)for(intj=0;jai.length;j+)System.out.print(a+i+j+=+aij+,);System.out.print(n);/*intb=newint2;b0=newint3;b1=newint3;b00=1;b01=2;b02=3;b10=4;b11=5;b12=6;*/上面注释部分等同于下面一行代码intb=1,2,3,4,5,6;System.out.println(下面是矩阵b:);for(inti=0;ib.length;i+)for(intj=0;jbi.length;j+)System.out.print(b+i+j+=+bij+,);System.out.print(n);intc;c=newint33;for(inti=0;i3;i+)for(intj=0;j3;j+)cij=0;for(intk=0;k2;k+)cij+=aik*bkj;System.out.println(下面是矩阵c:);for(inti=0;ic.length;i+)for(intj=0;jb?b:a;max=cmax?c:max;min=cmin?c:min;System.out.println(a=+a+,b=+b);,2.5控制结构,2.5.1分支语句2多分支选择语句switchswitch(expression)casevalue1:statement1;break;casevalue2:statement2;break;casevalueN:statemendN;break;default:defaultStatement;实例2:根据运算符输出结果,inta=1,b=2;floatr=0;charc=+;switch(c)case+:r=a+b;break;case-:r=a-b;break;case*:r=a*b;break;case/:r=(float)(a/b);break;default:r=0;System.out.println(resultis:+r);,2.5控制结构,2.5.1分支语句3break语句:在switch语中,break语句用来终止switch语句的执行,使程序从switch语句后的第一个语句开始执行。格式1:break/直接中止并退出格式2:breakblockLabel;/blockLabel:代码块4返回语句return格式1:returnexpression/返回一个值,相当于定义一个函数格式2:return/不返回任何值,用于void方法,2.5控制结构,/SwitchOp.java,对例2程序的修改publicclassSwitchOppublicstaticvoidmain(Stringargs)floata=9;floatb=3;floatresult;charop=+;switch(op)case+:result=a+b;break;case-:result=a-b;break;case*:result=a*b;break;case/:result=a/b;break;default:result=0;System.out.println(result=+result);,2.5控制结构,2.5.2循环语句1while语句格式:initializationwhile(terminationCondition)body;iteration;/反复执行或者返回结果,2.5控制结构,2.5.2循环语句2do-while语句格式:initializationdobody;iteration;while(terminationCondition);,2.5控制结构,2.5.2循环语句3for语句格式:for(initialization;terminationCondition;iteration)body;,2.5控制结构,2.5.2循环语句4continue语句格式1:continue;格式2:用continue跳转到括号指明的外层循环中:continueouterLable;outer:for(inti=0;ii)continueouter;,2.5控制结构,2.5.2循环语句实例3:输出120之内的单数publicclassContinueOppublicstaticvoidmain(Stringargs)intn;for(n=1;n=1);System.out.println(10!=+result);,long,n-,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!