




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA 语言,第2讲 JAVA语言基础,2019年7月12日,上一讲回顾,Java发展 Java特点 面向程序设计基本概念 Java程序结构 Java体系结构 JDK及Java程序编译与运行方法,2019年7月12日,学习要点,掌握各种简单数据类型的使用 掌握运算符和表达式的使用 掌握流程控制语句 分支语句 循环语句 掌握Java程序简单的输入输出方法 Java数组的使用方法,2019年7月12日,2. 1 数据类型,Java数 据类型,基本数据类型,字符型(char),布尔类型(boolean),复合数 据类型,类(class),接口(interface),数组,空类型(null),数值类型,整数 类型,实数 类型,短整型(short),整型(int),单精度浮点型(float),双精度浮点型(double),长整型(long),字节型(byte),2019年7月12日,2.1.1数据类型,数据类型 关键字 占用比特数 缺省数值 布尔型 boolean 8 false 字节型 byte 8 0 字符型 char 16 u0 短整型 short 16 0 整型 int 32 0 长整型 long 64 0 浮点型 float 32 0.0F 双精度型 double 64 0.0D,2019年7月12日,2.1.2变量,变量声明:先声明,后使用 int nSecond = 10 ; 基本数据类型 JAVA 标识符(区分大小写) 字母、数字、_、$组成,字母、_、$开头,2019年7月12日,2.1.3常量,整型常量: 32位(一般)和 64位(长型L/l) 255(十),0377(八),0XFF(十六) 浮点常量: 32位(一般F/f)和 64位(双精度D/d) 19.4(一般表示) 2.4E-4(指数表示) boolean常量:true,false 不能转化为 int 型,2019年7月12日,常量(续),char型常量:用单引号界定 , x20 采用Unicode码,从u0000uFFFF,其中u00uFF为ASCII码 字符串常量:用双引号界定 “HELLO,WORLD“ +号的特殊用法 “Hello“+“World“ 即“HelloWorld“ 若a=4, 则“a=“+a 即 “a=4“,2019年7月12日,常量(续),特殊字符 引用方法 对应Unicode码 意义 b u0008 回退 t u0009 水平制表符tab n u000a 换行 r u000d 回车 “ u0022 双引号 u0027 单引号 u005c 反斜线,2019年7月12日,2.1.4变量类型转换,短类型 - 长类型:默认 长类型 - 短类型:强制转换 例: int a ; long b ; b = a ; a = ( int ) b ;,2019年7月12日,2.2 JAVA的运算符,算术运算符 关系运算符 逻辑运算符 位运算符 其他 三目条件;合并 运算符的优先级 注释,2019年7月12日,JAVA的运算符(续),2.2.1 算术运算符 双目运算符 +,/,%(取余) +号:可连接字符串 “He“+“llo“为“Hello“ 单目运算符(自运算符) +,- -,运算符的位置决定自运算的顺序 a=3,b=5; c=(a+)*b; a=?,c=? -,求相反数,2019年7月12日,JAVA的运算符(续),2.2. 2 关系运算符 对两运算量大小关系的比较,结果是布尔量 ,=, B | f(A) 简洁运算符:&,| A B | f(A) 单目:!(否),2019年7月12日,注意区别简洁与,&,如果其前面的表达式为假,则不再计算其后面的表达式,(a=7,b=8,c=10,d=12,x=false),boolean x=+ab+,(a=7,b=8,c=10,d=12,x=false),&,不管其前面的表达式是什么,都计算其后面表达式,2019年7月12日,2.2.4 位运算符,按位取反,01010101=10101010。 按位与&,11111001&10001111=10001001。 按位或|,11111001|10001111=11111111。 按位异或,1111100110001111=01110110。 左移,101010112=11101010。 无符号右移,101010112=00101010。,2019年7月12日,JAVA的运算符(续),2.2. 5 三目条件运算符(?:) D=表达式A?表达式B:表达式C A为真,返回表达式B A为假,返回表达式C 例: int x=5, y=8; long z=2; long k=x3?y:z; /8 总是返回B,C中的长类型,2019年7月12日,JAVA的运算符(续),2.2.6 合并运算符 二元运算符=,a=b即a=ab a+=b a = a + b; 运算符的优先级 括号最优先,参见p33表2-8所示。,2019年7月12日,2.3 JAVA的流程控制语句,结构化程序设计的三种基本控制语句 顺序 分支 循环,按语句书写的先后顺序执行,在若干路径中有条件地择一执行,当某条件成立时,反复执行一段代码,2019年7月12日,2.3.1 分支(选择)语句,IF语句 if(条件表达式)语句组; if(条件表达式)语句组1; else 语句组2; 语句组 用大括号括起的语句集合 else与最近的if配合,用来消除二义性,If 条件A If 条件B 1 else 2 ,2019年7月12日,分支(选择)语句(续),嵌套的if-else-if if (expression) statement; else if (expression) statement; else if (expression) . else statement;,2019年7月12日,2.3.2 多分支开关语句,SWITH语句 switch(表达式) case 判断值1:语句组1; case 判断值2:语句组2; default:语句组n; 根据表达式取值的不同转向不同的分支 每个case分支都只是入口点:break 语句,2019年7月12日,2.3.3 JAVA的循环语句,1. while语句 当型循环:while(表达式) 语句组; 执行过程: 先计算表达式 若为真则执行语句组,并转回再计算表达式 若为假 则跳出循环,执行后面的语句。,2019年7月12日,JAVA的循环语句(续),2. do-while语句 直到型循环: do 语句 while(表达式); 执行过程: 先执行语句,再计算表达式 若为真则转回再执行语句,若假则跳出循环 循环体至少执行一次。,2019年7月12日,JAVA的循环语句(续),3. for 语句 当型循环,功能最强、使用最多、最灵活 for ( 表达式1;表达式2;表达式3) 语句组; 表达式1:循环变量赋初值,可使用外部没有定义的循环变量 表达式2:循环条件 表达式3:循环变量修正,2019年7月12日,JAVA的循环语句(续),2019年7月12日,4. 循环语句中途退出,Java没有goto语句 break语句: 不带标号break 语句 从循环体内跳出至后面语句,结束当前循环。 跳出当前循环体,不是跳出当前大括号对。 循环嵌套时,break 语句只跳出当前循环。 带标号的break语句 采用 label: 的形式定义标号 跳出标号标志的循环体,2019年7月12日,循环语句中途退出(续),continue 语句 不带标号的continue 跳过本轮循环剩余语句,直接进入当前循环体 的下一轮。 带标号的continue 跳过循环剩余语句,直接进入标号所指的循环 体的下一轮循环。 循环的正常退出途径:符合结束条件,2019年7月12日,循环语句中途退出(续),label1: outer-iteration inner-iteration /. break; / 1 /. continue; / 2 /. continue label1; / 3 /. break label1; / 4 示 例:breakloop.java,2019年7月12日,示例:Prime.java,求2100的素数,每行打印5个数字,First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; /end of inner-iteration System.out.print(i+“t“); k+; if(k%5=0) System.out.println(); /end of outer-iteration,/i不是素数,First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; /end of inner-iteration System.out.print(i+“t“); k+; if(k%5=0) System.out.println(); /end of outer-iteration,First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; /end of inner-iteration System.out.print(i+“t“); k+; if(k%5=0) System.out.println(); /end of outer-iteration,for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; /end of inner-iteration,for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; /end of inner-iteration,int i=2,int i=2,int i=2,k=0,k=0,k=0,First_Loop: continue First_Loop;,First_Loop: continue First_Loop;,First_Loop: continue First_Loop;,2019年7月12日,2.4 简单的输入输出,输出:使用System.out对象进行输出。 println():输出文本并换行。 print():输出文本不换行。 输入: 1、使用System.in对象输入。 try-catch与read或readLine方法。 throws IOException与read或readLine方法。 2、使用命令行参数main()方法的args。,2019年7月12日,字符界面输入输出示例,import java.io.*; class inout public static void main(String args)throws IOException byte buf=new byte50; double num, mul=1d; int n=Integer.parseInt(args0); for(int i=0;in;i+) System.out.print(“Please input the NO.“+(i+1)+“ data:“); try System.in.read(buf); num=Double.parseDouble(new String(buf).trim(); catch(NumberFormatException e ) System.out.println(“Input Error!.“); mul=mul*num; System.out.println(“The multi is: “+mul); ,命令行参数,标准输入 System.in对象,标准输出,2019年7月12日,字符界面输入输出(2),import java.io.*; /输入一个字符串 public class ApplicationLineIn public static void main(String args) String s = “; System.out.print(“Please enter a string:“); try BufferedReader in = new BufferedReader(new InputStreamReader(System.in); s = in.readLine(); catch(IOException e) ; System.out.println(“Youve entered string: “ + s ); ,2019年7月12日,Java Applet图形界面输入输出(1-1),import java.applet.*; import java.awt.*; import java.awt.event.*; public class AppletInOut extends Applet implements ActionListener Label prompt; TextField input,output;,2019年7月12日,Java Applet图形界面输入输出(1-2),public void init() prompt = new Label(“请输入您的名字:“); input = new TextField(6); output = new TextField(20); add(prompt); add(input); add(output); input.addActionListener(this); public void actionPerformed(ActionEvent e) output.setText(input.getText()+“,欢迎你“); ,2019年7月12日,Java Application图形界面输入输出(1-1),import javax.swing.JOptionPane; /导入Swing包 public class swingDemo public static void main( String args) String firstNumber; String secondNumber; int number1,number2,sum; firstNumber = JOptionPane.showInputDialog(“Enter first integer“); secondNumber = JOptionPane.showInputDialog(“Enter second integer“);,2019年7月12日,Java Application图形界面输入输出(1-2),number1 = Integer.parseInt(firstNumber); number2 = Integer.parseInt(secondNumber); sum = number1 + number2; JOptionPane.showMessageDialog(null,“The sum is “ + sum, “Results“, JOptionPane.PLAIN_MESSAGE); System.exit(0); ,可能会出错!,2019年7月12日,Java Application图形界面输入输出(2-1),import java.awt.*; /导入AWT包 import java.awt.event.*; public class ApplicationGraphicsInOut public static void main(String args) new FrameInOut(); class FrameInOut extends Frame implements ActionListener Label prompt; TextField input,output; Button btnOK,btnClose;,2019年7月12日,Java Application图形界面输入输出(2-2),FrameInOut() super(“图形界面的Java Application程序“); prompt = new Label(“请输入您的名字:“); input = new TextField(6); output = new TextField(20); btnOK = new Button(“OK“); btnClose = new Button(“关闭“); setLayout(new FlowLayout(); add(prompt); add(input); add(output);add(btn); input.addActionListener(this); btn.addActionListener(this); setSize(300,200); show(); ,2019年7月12日,Java Application图形界面输入输出(2-3),public void actionPerformed(ActionEvent e) if (e.getSource() = btnOK) output.setText(input.getText()+“,欢迎你“); if (e.getSource() = btnClose) dispose(); System.exit(0); ,2019年7月12日,2.5 数组,2.5.1 一维数组的定义 1. 一维数组的定义 type arrayName ; 类型(type)可以为Java中任意的数据型,包括简单类型和复合类型。 例: int intArray ; Date dateArray;,2019年7月12日,2、一维数组的初始化 静态初始化 int intArray=1,2,3,4; String stringArray=“abc“, “How“, “you“; 动态初始化 1)简单类型的数组 int intArray; intArray = new int5;,2019年7月12日,2)复合类型的数组 String stringArray ; String stringArray = new String3; /为数组中每个元素开辟引用 空间(32位) stringArray0= new String(“How“); /为第一个数组元素开辟空间 stringArray1= new String(“are“); /为第二个数组元素开辟空间 stringArray2= new String(“you“); / 为第三个数组元素开辟空间,2019年7月12日,3、一维数组元素的引用 数组元素的引用方式为: arrayNameindex index为数组下标,它可以为整型常数或表达式,下标从0开始。 每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。,2019年7月12日,4、数组拷贝,拷贝一个数组到另一个数组。 System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length); 5、访问(遍历)数组元素 for(type varName : arrayName) System.out.print(varName);,2019年7月12日,数组应用举例,1、数组的基本操作: BasicArray.java 2、选择排序: SequenceSorting.java 3、快速排序:(自学) Sort.java,2019年7月12日,2.5.2 多维数组,1、二维数组的定义 type arrayName ; type arrayName; 2、二维数组的初始化 静态初始化 int intArray =1,2,2,3,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025保健品区域独家销售代理合同范本
- 2025版双方新能源汽车研发生产合同协议
- 2025版片石石材开采与运输一体化合同协议书范本
- 2025版商业承兑汇票居间服务与乡村振兴战略合作合同
- 2025年度新能源发电项目电力改造合同范本
- 2025版体育产业新员工保密及赛事信息保护合同范例
- 2025办公场所租赁合同:全包式办公场所租赁管理合同
- 2025年售楼部环境绿化养护合同
- 2025大客户在线教育平台合作合同
- 2025年度道路施工围挡定制安装服务协议
- 烟草香味化学
- 院感培训试题及
- 电气照明系统课件
- 临时用水施工专项方案
- 北京市各县区乡镇行政村村庄村名明细
- GB∕T 9286-2021 色漆和清漆 划格试验
- DB35∕T 1844-2019 高速公路边坡工程监测技术规程
- 720全景照片制作方案及发布流程
- 工作责任心主题培训ppt课件(PPT 26页)
- 除尘器基础知识培训资料(54页)ppt课件
- 完整解读新版《英语》新课标2022年《义务教育英语课程标准(2022年版)》PPT课件
评论
0/150
提交评论