




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计1.2Java语言基础,一、知识能力目标,1了解向量概念及使用方法;2熟悉Java语言基本成分(数据类型、常量、变量和表达式);3掌握包的创建和引入;4灵活运用三种流程控制结构;5掌握嵌套和递归的实现;6熟悉字符串的处理;7运用流程控制结构编写简单Java程序。,二、项目2判断一个数是否为回文数程序,用户从键盘输入一个1至99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。,回文数是指将该数含有的数字逆序排列后得到数和原数相同,1.程序代码,/Number.javaimportjavax.swing.JOptionPane;publicclassNumberpublicNumber()publicstaticvoidmain(Stringargs)intnumber=0,d1,d2,d3,d4,d5;Stringstr=JOptionPane.showInputDialog(请输入一个1至99999之间的数:);/弹出一个输入框number=Integer.parseInt(str);/将字符型数据转换成整型数据if(number=1,if(d5!=0)/判断number是5位数的条件System.out.println(number+是5位数);if(d5=d1,if(d3=d1)System.out.println(number+是回文数);elseSystem.out.println(number+不是回文数);elseif(d2!=0)/判断number是2位数的条件System.out.println(number+是2位数);if(d2=d1)System.out.println(number+是回文数);elseSystem.out.println(number+不是回文数);elseif(d1!=0)/判断number是1位数的条件System.out.println(number+是1位数);System.out.println(number+是回文数);,2.相关知识,分隔符注释非执行语句提高程序的可读性Java程序有两类注释:实现注释(implementationcomments):注释代码或者实现细节行注释:/注释内容多行注释:/*注释内容*/文档注释(documentcomments):描述Java的类、接口、构造器,方法,以及字段(field)/*注释内容*/一个注释对应一个类、接口或成员,空白符空格符、回车符、换行符和制表符等多个空白符与一个空白符的作用相同普通分隔符:具有确定的语法含义花括号“”,用于复合语句和数组的初始化以及定义类、方法等;分号“;”,用于语句结束;逗号“,”,用于在变量说明时分隔各个变量和方法中各个参数;冒号“:”,用于分隔标号和语句。,关键字和标识符,关键字:又称保留字,是Java语言本身使用的标识符,有特定的语法含义,关键字和标识符,标识符以字母、下划线“_”、美元符“$”开始后面跟字母、下划线、美元符和数字区分大小写关键字不能用来做标识符,见名知意约定类名StudentStringBufferURL方法名getStudentName(),数据类型,简单数据类型整数类型:byte,short,int,long实数类型:float,double字符类型:char布尔类型:boolean复合数据类型包括:数组类:class接口:interface,精度越来越高,运算符和表达式,运算符算术运算符:+-+-*/%关系运算符:=!=逻辑运算符:!charj=(char)i;,inti=10;longj=10,k=i+j;,Java的方法,运算符和表达式,数字转换成字符串Double.toString(double)Float.toString(Float)Long.toString(Long)Integer.toString(Integer)Short.toString(Short)Byte.toString(Byte),字符转换成数字Double.parseDouble(string)Float.parseFloat(string)Long.parseLong(string)Integer.parseInteger(string)Short.parseShort(string)Byte.parseByte(string),语句,方法调用语句表达式a=b+c;复合语句:用括起来的多条语句if(ab)a=1;b=0;流程控制语句:选择结构语句和循环控制结构语句package语句和import语句package声明包语句必须作为Java中的第一条可执行语句package包名;如果源程序中省略了package语句,源程序所定义命名的类被隐含地认为是无名包的一部分,即源程序中定义命名的类在同一包中Java包是由.class文件组成的一个集合,import语句引入包实现了在编译单元中使用外部类和接口的机制import语句只指明要用到的类所在的位置,以便能在用到时可以加载必须写在package语句和源程序其它语句之间Java包含了130多个包,如:java.lang:Java语言核心包,包含所有的基本语言类,这个包由编译器自动引入。java.applet:包含所有实现小程序的类。java.awt:包含抽象窗口工具集中的图形、文本、窗口GUI类。java.io:包含所有的输入输出类。:包含所有实现网络功能的类。java.util:包含有用的数据类型类。,选择控制语句,(1)if-else语句if(条件表达式)语句组1;else语句组2;,(2)switch语句switch(表达式)case值1:语句1;break;case值2:语句2;break;case值n:语句n;break;default:语句;,Switch语句switch提供了一个多路分支是一个特殊的if-elseif结构只允许比较一个元素switch中表达式类型只能是:char,byte,int,shortcase后面的值应该是常量,各case子句中的值应是不相同的。每一个case结尾的break:使解释器退出switch语句体如果没有break语句,switch语句会从表达式求出的值相同的case标签开始执行,直到switch语句体结束为止一般使用break语句,但return与throw也有相同的功能。,选择控制语句,三、求素数,本案例功能输入两个整数,求这两个整数之间的素数。,1.程序代码,/GetPrime.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassGetPrimeextendsJFrameimplementsActionListenerintmin,max;JTextFieldt1=newJTextField(8);JTextFieldt2=newJTextField(8);JButtonb1=newJButton(确定);publicGetPrime()ContainercontentPane=getContentPane();contentPane.setLayout(newFlowLayout();contentPane.add(t1);contentPane.add(t2);contentPane.add(b1);b1.addActionListener(this);/注册监听器对象,setTitle(求素数);setSize(300,200);setVisible(true);publicvoidactionPerformed(ActionEvente)if(e.getSource()=b1)/单击确定按钮时求素数inti,j,k=1;min=Integer.parseInt(t1.getText();max=Integer.parseInt(t2.getText();for(i=min;i=max;i+)for(j=2;j=i-1;j+)if(i%j=0)break;if(i=j)if(k+%4!=0)/每行输出4个System.out.print(+i);elseSystem.out.println(+i);,publicstaticvoidmain(Stringargs)GetPrimeprime=newGetPrime();prime.addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(0);/退出应用程序);,2.相关知识循环控制语句,for语句for(表达式1;表达式2;表达式3)循环体先执行表达式1进行初始化操作,然后计算机表达式2的值,表达式2的值必须是逻辑值,为真执行循环体,再计算表达式3的值,然后再判断表达式2的值,如此循环反复,直至表达式2的值为假跳出循环。表达式1、表达式2和表达式3都可以省略,但里面的两个分号不能省略。for语句一般用于循环次数确定的情况。,循环控制语句,while语句while(条件表达式)循环体先判断条件是否为真,如果为真就进入循环,如果为假可能一次循环也不执行do-while语句do循环体while(条件表达式);先执行循环体语句再进行判断,所以至少要执行一次循环,break、continue和return,break语句可用于switch多路分支语句和循环语句中,其作用是跳出switch或强行结束循环。continue语句只能用于循环语句中,其作用是结束本轮循环开始下一轮循环。return语句:return表达式;return结束方法的调用,并返回一个确定的值在一个方法中可以有多个return语句,但每次调用只可能有一个return语句被执行。,嵌套调用:在一个方法的调用中,该方法的实现部分又调用了另外的方法。递归调用:在一个方法中如果有调用该方法自身的情况时称为递归调用。将一个复杂的问题化简成解决方法相同但稍微简单的问题,即所谓“递”。问题化到最简时,再逆向回代,求出结果,即所谓“归”。递归设计两个要素:1确定递归步骤,将要求解的原问题分解为一个或多个与原问题性质相同但规模较小解决方法与原问题相同的子问题,使子问题越来越简单,越来越接近终止条件,以保证经过有限次递归步骤后子问题能达到递归出口。2确定递归出口,找出一个或多个无须分须再分解、可直接示解的最小子问题(递归终止条件)。,应用拓展,n!n!=(n-1)!*n(n-1)!=(n-2)!*(n-1),4!=3!*43!=2!*32!=1!*21!=1,递,归,将复杂问题化简成解决方法相同但稍微简单的问题,问题化到最简时,逆向回代,求出结果,一个或多个无须分须再分解、可直接示解的最小子问题,递归出口,递归终止条件,if(n=0|n=1)return1;elsereturnfact(n-1)*n;,(递归终止条件),递归终值,递归形式,递归举例:求n!,四、项目4随机生成学生数据并显示最低分学生信息,在随机生成的20个学生数据中,显示入学成绩分数最低的学生学号及成绩。,1.程序代码,/StudentArray.javaimportjava.io.*;importjava.util.*;publicclassStudentArraypublicStudentArray()publicstaticvoidmain(Stringargs)Studentmin=null;/入学成绩最小的学生Studentstu;stu=newStudent20;/创建学生数组对象System.out.println(学号+t+入学成绩);/显示表头for(inti=0;istu.length;i+)stui=newStudent();stui.setId(s07+(1000+i);/设置新生的学号,其编号从s071000开始stui.setScore(int)(Math.random()*750);/新生入学成绩其范围从0到750之间System.out.println(stui.getId()+t+stui.getScore();,min=stu0;for(inti=0;istui.getScore()min=stui;System.out.println(入学成绩最低的学生的学号是:+min.getId()+成绩为:+min.getScore();classStudentprivateStringname;/学生姓名privateStringid;/学生学号privateintscore;publicStringgetName()/获取学生姓名returnname;publicvoidsetName(Stringname)/设置学生姓名=name;,publicStringgetId()/获取学生学号returnid;publicvoidsetId(Stringid)/设置学生学号this.id=id;publicintgetScore()/获取学生成绩returnscore;publicvoidsetScore(intscore)/设置学生成绩this.score=score;,2.相关知识数组定义与使用,数组是Java语言中的一种复合数据类型是通过下标定位的同类型数据的集合一个数组中每个元素的数据类型相同基本类型对象类型数组类型数组要经过声明、分配内存及赋值后才能使用,(1)数组声明语法:数组元素类型数组名;数组元素类型数组名;数组元素类型数组名;数组元素类型数组名;(2)数组分配内存数组名=new数组元素类型数组元素个数;(3)数组元素初始化数组元素的类型是基本类型:可略数组元素的类型是对象类型:必须调用类的构造方法来初始化(4)数组元素的引用:下标下标从0开始,一个长度为n的数组,其下标范围是0n-1下标必须是整形的值,短整型、字节型和字符型的值也可以作为数组的下标越界检查,intscore;chara;,score=newint2;a=newchar23;,score=1,2;a=1,2,3,4,5,6;,Math类,Math类是一个最终类,它包含了常用的科学计算方法,这些方法都是静态方法(类方法),可以通过类名直接调用。staticfinaldoublecos(doublea):余弦函数staticfinaldoublesin(doublea):正弦函数staticfinaldoubleexp(doublea):以e为底的指数staticfinaldoublelog(doublea):以e为底的对数函数staticfinaldoublesqrt(doublea):平方根函数staticfinaldoublerandom():随机函数,返回0.0至1.0之间的值,五、项目5约瑟夫环问题(josephus),Josephus问题是建立在历史学家Josephus的一个报告的基础之上,该报告讲述了他和40个士兵在公元67年被罗马军队包围期间签定的一个自杀协定,Josephus建议每个人杀死他的邻居,他很聪明的使自己成为这些人中的最后一个,因此获得生还。,1,2,3,M,M-1,s,每隔N个出列,每隔N个出列,如此循环,直到最后剩下1个大王,项目5约瑟夫问题图解,有M个猴子围成一圈,每个有一个编号,编号从1到M。打算从中选出一个大王。经过协商,决定选大王的规则如下:从第S个猴子开始,每隔N个,数到的猴子出圈,最后剩下来的就是大王。,2.相关问题String类,String类用于表示Java中的字符串常量字符串一旦被创建,其值就不能再被改变用双引号引起来的一系列字符构造方法常用的有:String():新建一个空字符串对象,字符串长度为0。String(Stringoriginal):用一个已经存在的字符串常量创建一个新String对象,该对象内容与给出的字符串一致。String(charvalue):用指定字符数组value来创建一个字符串对象,字符串对象中的内容为字符数组中的内容。String(StringBufferbuffer):利用一个已经存在的StringBuffer对象来创建一个新的String对象。,访问字符串方法intlength():获得当前字符串中的字符个数。charcharAt(intindex):获取字符串指定index位置上的字符。Stringsubstring(intbeginIndex):获得从指定处开始到最后的子串。Stringsubstring(intbeginIndex,intendIndex):获得指定范围内的子串。voidgetChars(intsrcBegin,intsrcEnd,chardst,intdstBegin):将一个字符串从srcBegin到srcEnd位置子串复制到数组dst中。intindexOf(intch):查找给定的字符ch在字符串中第一次出现的位置。如果找不到返回-1。intlastindexOf(intch):查找给定的字符ch在字符串中最后一次出现的位置。如果找不到返回-1。intindexOf(Stringstr):查找给定的字符串str在字符串中第一次出现的位置。如果找不到返回-1。intlastindexOf(Stringstr):查找给定的字符串str在字符串中最后一次出现的位置。如果找不到返回-1。,String类,修改字符串方法Stringcontact(Stringstr):将当前字符串对象与给定的字符串str连接起来。Stringreplace(charoldChar,charnewChar):把字符串出现的所有oldChar字符全部用newChar替换。StringtoUpperCase():将字符串内的所有字符改为大写。StringtoLowerCase():将字符串内的所有字符改为小写。,其它方法booleanequals(Strings):将当前字符串与指定的s进行比较,如果长度和内容完全一致就返回true,否则返回false。booleanequalsIgnoreCase(Strings):将当前字符串与指定的s忽略大小写比较。intcompareTO(Stringstr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地产开发知识培训
- 消防安全培训宣传文案课件
- 消防安全培训好处课件
- 卫生保健汇报材料
- 门诊管理重点难点
- 消防安全培训反思总结课件
- 消防安全培训协议课件
- 免疫细胞课堂讲解
- 公诉第八集讲解
- 垂体瘤死亡的护理查房
- mh fg2000ab普通说明书使用服务及配件手册
- 疼痛科梯队建设聊城
- 骨关节健康氨糖氨糖疗法
- 面向航空制造过程排产的关键参数智能感知计算研究
- YS/T 921-2013冰铜
- GB/T 28121-2011非热封型茶叶滤纸
- 2023年廊坊市投资控股集团有限公司招聘笔试模拟试题及答案解析
- 苹果栽培学完整版课件
- 湿性愈合和新型敷料选择课件
- 软件生命周期与开发模型课件
- 实验动物从业人员上岗证考试题库(含近年真题、典型题)
评论
0/150
提交评论