1.2Java语言基础.ppt

上传人:本田雅阁 文档编号:2128361 上传时间:2019-02-19 格式:PPT 页数:43 大小:383.01KB
返回 下载 相关 举报
1.2Java语言基础.ppt_第1页
第1页 / 共43页
1.2Java语言基础.ppt_第2页
第2页 / 共43页
1.2Java语言基础.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《1.2Java语言基础.ppt》由会员分享,可在线阅读,更多相关《1.2Java语言基础.ppt(43页珍藏版)》请在三一文库上搜索。

1、Java程序设计 1.2 Java语言基础,主讲教师:董婷,一、知识能力目标,1了解向量概念及使用方法; 2熟悉Java语言基本成分(数据类型、常量、变量和表达式); 3掌握包的创建和引入; 4灵活运用三种流程控制结构; 5掌握嵌套和递归的实现; 6熟悉字符串的处理; 7运用流程控制结构编写简单Java程序。,二、项目2 判断一个数是否为回文数程序,用户从键盘输入一个1至99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。,回文数是指将该数含有的数字逆序排列后得到数和原数相同,1.程序代码,/Number.java import javax.swing.JOptionPan

2、e; public class Number public Number() public static void main(String args) int number=0,d1,d2,d3,d4,d5; String str=JOptionPane.showInputDialog(“请输入一个1至99999之间的数:“);/弹出一个输入框 number=Integer.parseInt(str);/将字符型数据转换成整型数据 if(number=1 ,if(d5!=0) /判断number是5位数的条件 System.out.println(number+“是5位数“); if(d5=d

3、1,if(d3=d1) System.out.println(number+“是回文数“); else System.out.println(number+“不是回文数“); else if(d2!=0) /判断number是2位数的条件 System.out.println(number+“是2位数“); if(d2=d1) System.out.println(number+“是回文数“); else System.out.println(number+“不是回文数“); else if(d1!=0) /判断number是1位数的条件 System.out.println(number+“

4、是1位数“); System.out.println(number+“是回文数“); ,2.相关知识,分隔符 注释 非执行语句 提高程序的可读性 Java程序有两类注释: 实现注释(implementation comments):注释代码或者实现细节 行注释:/注释内容 多行注释:/* 注释内容 */ 文档注释(document comments):描述Java的类、接口、构造器,方法,以及字段(field) /*注释内容 */ 一个注释对应一个类、接口或成员,空白符 空格符、回车符、换行符和制表符等 多个空白符与一个空白符的作用相同 普通分隔符:具有确定的语法含义 花括号“”,用于复合语句

5、和数组的初始化以及定义类、方法等; 分号“;”,用于语句结束; 逗号“,”,用于在变量说明时分隔各个变量和方法中各个参数; 冒号“:”,用于分隔标号和语句。,关键字和标识符,关键字:又称保留字,是Java语言本身使用的标识符,有特定的语法含义,关键字和标识符,标识符 以字母、下划线“_”、美元符“$”开始 后面跟字母、下划线、美元符和数字 区分大小写 关键字不能用来做标识符, 见名知意 约定 类名 Student StringBuffer URL 方法名 getStudentName( ),数据类型,简单数据类型 整数类型:byte,short,int,long 实数类型:float,doub

6、le 字符类型:char 布尔类型:boolean 复合数据类型包括: 数组 类:class 接口:interface,精度越来越高,运算符和表达式,运算符 算术运算符:+ - + - * / % 关系运算符: = = != 逻辑运算符:! & | 位运算符: & | 赋值运算符:= += -= *= /= %= &= |= = = = 条件运算符:?: 分量运算符: . 下标运算符: 实例运算符: instanceof 方法调用运算符: () 内存分配运算符: new 强制类型运算符:(类型),运算符和表达式,表达式 由操作数和运算符按一定的语法形式组成的符号序列。 表达式的值:运算后产生的

7、确定的值。 表达式的类型:表达式的值的类型。 常量或变量是最简单的表达式,其值即该常量或变量的值。 表达式的运算按照运算符的优先级顺序从高到低进行。 不同的类型的数据进行混合运算时:Java会将不同的类型的数据转换成相同的类型,再进行运算,运算符和表达式,自动类型转换,强制类型转换,占用内存较少 短数据类型 (低精度),占用内存较多 长数据类型 (高精度),int i=10; char j=(char)i;,int i=10; long j=10,k=i+j;,Java的方法,运算符和表达式,数字转换成字符串 Double.toString(double) Float.toString(Flo

8、at) 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=

9、0; 流程控制语句:选择结构语句和循环控制结构语句 package语句和import语句 package声明包语句 必须作为Java中的第一条可执行语句 package 包名; 如果源程序中省略了package语句,源程序所定义命名的类被隐含地认为是无名包的一部分,即源程序中定义命名的类在同一包中 Java包是由.class文件组成的一个集合,import语句引入包 实现了在编译单元中使用外部类和接口的机制 import语句只指明要用到的类所在的位置,以便能在用到时可以加载 必须写在package语句和源程序其它语句之间 Java包含了130多个包,如: java.lang:Java语言核心包

10、,包含所有的基本语言类,这个包由编译器自动引入。 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

11、提供了一个多路分支 是一个特殊的if- -else if结构 只允许比较一个元素 switch中表达式类型只能是:char,byte,int,short case后面的值应该是常量,各case子句中的值应是不相同的。 每一个case结尾的break:使解释器退出switch语句体 如果没有break语句,switch语句会从表达式求出的值相同的case标签开始执行,直到switch语句体结束为止 一般使用break语句,但return与throw也有相同的功能。,选择控制语句,三、求素数,本案例功能输入两个整数,求这两个整数之间的素数。,1.程序代码,/GetPrime.java import

12、 java.awt.*; import java.awt.event.*; import javax.swing.*; public class GetPrime extends JFrame implements ActionListener int min,max; JTextField t1=new JTextField(8); JTextField t2=new JTextField(8); JButton b1=new JButton(“确定“); public GetPrime() Container contentPane=getContentPane(); contentPan

13、e.setLayout(new FlowLayout(); contentPane.add(t1); contentPane.add(t2); contentPane.add(b1); b1.addActionListener(this);/注册监听器对象,setTitle(“求素数“); setSize(300,200); setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=b1)/单击确定按钮时求素数 int i,j,k=1; min=Integer.parseInt(t1.getTex

14、t(); 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); else System.out.println(“ “+i); , public static void main(String args) GetPrime prime=new GetPrime(); prime.addWindowListener(new WindowAdapter() public

15、void windowClosing(WindowEvent e) System.exit(0);/退出应用程序 ); ,2.相关知识 循环控制语句,for语句 for(表达式1;表达式2;表达式3) 循环体 先执行表达式1进行初始化操作,然后计算机表达式2的值,表达式2的值必须是逻辑值,为真执行循环体,再计算表达式3的值,然后再判断表达式2的值,如此循环反复,直至表达式2的值为假跳出循环。 表达式1、表达式2和表达式3都可以省略,但里面的两个分号不能省略。 for语句一般用于循环次数确定的情况。,循环控制语句,while语句 while(条件表达式) 循环体 先判断条件是否为真,如果为真就进

16、入循环,如果为假可能一次循环也不执行 do-while语句 do 循环体 while(条件表达式); 先执行循环体语句再进行判断,所以至少要执行一次循环,break、continue和return,break语句可用于switch多路分支语句和循环语句中,其作用是跳出switch或强行结束循环。 continue语句只能用于循环语句中,其作用是结束本轮循环开始下一轮循环。 return语句:return 表达式; return结束方法的调用,并返回一个确定的值 在一个方法中可以有多个return语句,但每次调用只可能有一个return语句被执行。,嵌套调用:在一个方法的调用中,该方法的实现部分

17、又调用了另外的方法。 递归调用:在一个方法中如果有调用该方法自身的情况时称为递归调用。 将一个复杂的问题化简成解决方法相同但稍微简单的问题,即所谓“递”。 问题化到最简时,再逆向回代,求出结果,即所谓“归”。 递归设计两个要素: 1确定递归步骤,将要求解的原问题分解为一个或多个与原问题性质相同但规模较小解决方法与原问题相同的子问题,使子问题越来越简单,越来越接近终止条件,以保证经过有限次递归步骤后子问题能达到递归出口。 2确定递归出口,找出一个或多个无须分须再分解、可直接示解的最小子问题(递归终止条件)。,应用拓展,n! n!=(n-1)!*n (n-1)!=(n-2)!*(n-1),4!=3

18、!*4 3!=2!*3 2!=1!*2 1!=1,递,归,将复杂问题化简成解决方法相同但稍微简单的问题,问题化到最简时,逆向回代,求出结果,一个或多个无须分须再分解、可直接示解的最小子问题,递归出口,递归终止条件,if(n=0|n=1) return 1; else return fact(n-1)*n;,(递归终止条件),递归终值,递归形式,递归举例:求n!,四、项目4 随机生成学生数据并显示最低分学生信息,在随机生成的20个学生数据中,显示入学成绩分数最低的学生学号及成绩。,1.程序代码,/ StudentArray.java import java.io.*; import java.u

19、til.*; public class StudentArray public StudentArray() public static void main(String args) Student min=null;/入学成绩最小的学生 Student stu; stu=new Student20;/创建学生数组对象 System.out.println(“学号“+“t“+“入学成绩“);/显示表头 for(int i=0;istu.length;i+) stui=new Student(); stui.setId(“s07“+ (1000+i);/设置新生的学号,其编号从s071000开始

20、 stui.setScore(int)(Math.random()*750);/新生入学成绩其范围从0到750之间 System.out.println(stui.getId()+“t“+stui.getScore(); ,min=stu0; for(int i=0;istui.getScore() min=stui; System.out.println(“入学成绩最低的学生的学号是:“+min.getId()+“ 成绩为:“+min.getScore(); class Student private String name;/学生姓名 private String id;/学生学号 pri

21、vate int score; public String getName()/获取学生姓名 return name; public void setName(String name)/设置学生姓名 this.name=name; ,public String getId()/获取学生学号 return id; public void setId(String id)/设置学生学号 this.id=id; public int getScore()/获取学生成绩 return score; public void setScore(int score)/设置学生成绩 this.score=sc

22、ore; ,2.相关知识 数组定义与使用,数组是Java语言中的一种复合数据类型 是通过下标定位的同类型数据的集合 一个数组中每个元素的数据类型相同 基本类型 对象类型 数组类型 数组要经过声明、分配内存及赋值后才能使用,(1) 数组声明语法: 数组元素类型 数组名; 数组元素类型 数组名; 数组元素类型 数组名; 数组元素类型 数组名; (2) 数组分配内存 数组名=new 数组元素类型数组元素个数; (3)数组元素初始化 数组元素的类型是基本类型:可略 数组元素的类型是对象类型:必须调用类的构造方法来初始化 (4)数组元素的引用:下标 下标从0开始,一个长度为n的数组,其下标范围是0n-1

23、 下标必须是整形的值,短整型、字节型和字符型的值也可以作为数组的下标 越界检查,int score ; char a ;,score=new int2; a=new char23;,score =1,2; a =1,2,3,4,5,6;,Math类,Math类是一个最终类,它包含了常用的科学计算方法,这些方法都是静态方法(类方法),可以通过类名直接调用。 static final double cos(double a):余弦函数 static final double sin(double a):正弦函数 static final double exp(double a):以e为底的指数 s

24、tatic final double log(double a):以e为底的对数函数 static final double sqrt(double a):平方根函数 static final double random():随机函数,返回0.0至1.0之间的值,五、项目5 约瑟夫环问题(josephus),Josephus问题是建立在历史学家Josephus的一个报告的基础之上,该报告讲述了他和40个士兵在公元67年被罗马军队包围期间签定的一个自杀协定,Josephus建议每个人杀死他的邻居,他很聪明的使自己成为这些人中的最后一个,因此获得生还。,1,2,3,M,M-1,s,每隔N个出列,每

25、隔N个出列,如此循环,直到最后剩下1个大王,项目5 约瑟夫问题图解,有M个猴子围成一圈,每个有一个编号,编号从1到M。打算从中选出一个大王。经过协商,决定选大王的规则如下:从第S个猴子开始,每隔N个,数到的猴子出圈,最后剩下来的就是大王。,2.相关问题 String类,String类用于表示Java中的字符串常量 字符串一旦被创建,其值就不能再被改变 用双引号引起来的一系列字符 构造方法常用的有: String ():新建一个空字符串对象,字符串长度为0。 String (String original):用一个已经存在的字符串常量创建一个新String对象,该对象内容与给出的字符串一致。 S

26、tring (char value):用指定字符数组value来创建一个字符串对象,字符串对象中的内容为字符数组中的内容。 String (StringBuffer buffer):利用一个已经存在的StringBuffer对象来创建一个新的String对象。,访问字符串方法 int length():获得当前字符串中的字符个数。 char charAt(int index):获取字符串指定index位置上的字符。 String substring(int beginIndex):获得从指定处开始到最后的子串。 String substring(int beginIndex,int endIn

27、dex):获得指定范围内的子串。 void getChars(int srcBegin,int srcEnd,char dst,int dstBegin):将一个字符串从srcBegin到srcEnd位置子串复制到数组dst中。 int indexOf(int ch):查找给定的字符ch在字符串中第一次出现的位置。如果找不到返回-1。 int lastindexOf(int ch):查找给定的字符ch在字符串中最后一次出现的位置。如果找不到返回-1。 int indexOf(String str):查找给定的字符串str在字符串中第一次出现的位置。如果找不到返回-1。 int lastinde

28、xOf(String str):查找给定的字符串str在字符串中最后一次出现的位置。如果找不到返回-1。,String类,修改字符串方法 String contact(String str):将当前字符串对象与给定的字符串str连接起来。 String replace(char oldChar,char newChar):把字符串出现的所有oldChar字符全部用newChar替换。 String toUpperCase():将字符串内的所有字符改为大写。 String toLowerCase():将字符串内的所有字符改为小写。,其它方法 boolean equals(String s):将当

29、前字符串与指定的s进行比较,如果长度和内容完全一致就返回true,否则返回false。 boolean equalsIgnoreCase(String s):将当前字符串与指定的s忽略大小写比较。 int compareTO(String str):将当前字符串与指定的str按字典顺序比较大小,相等返回0,如果该字符串按字典顺序小于参数字符串把返回值小于0,否则大于0。 int compareTOIgnoreCase (String str):将当前字符串与指定的str按字典顺序忽略大小写进行比较。,与运算符“=”的比较不同 “=”比较两个对象是否引用同一个实例 equals()和equals

30、IgnoreCase()比较两个字符串对应的每个字符值是否相同,String类,StringBuffer类,(1)构造方法 StringBuffer():创建一个不包含字符且初始容量为16个字符的StringBuffer对象。 StringBuffer(int capacity):创建一个不包含字符且初始容量为capacity的StringBuffer对象。 StringBuffer(String str):创建一个StringBuffer对象,该对象包含str字符串。,(2)访问字符串方法 int length():返回StringBuffer对象当前的字符个数。 int capacity(

31、):不需要另外分配内存的情况下,StringBuffer对象可以存储的字符个数。 void ensureCapacity(int minCapacity):允许指定StringBuffer对象的最小容量。 void setLength(int newLength):允许指定StringBuffer对象可以增加或减少的容量。 char charAt(int index):返回StringBuffer对象中指定位置index上的字符。 (3)修改字符串方法 void setCharAt(int index,char ch):将StringBuffer对象中指定位置index上的字符设置为ch。 stringBuffer append(String str):在已有字符串末尾添加字符串str。 stringBuffer insert(int offset,String str):在指定位置处插入str。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1