已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计,主讲:王建军 信息管理教研室,一、JAVA 概述,1.1 计算机语言历史和JAVA发展历史 1.2 JAVA特点 1.3 JAVA开发环境配置 1.4 JAVA环境体系 1.5 简单JAVA例程的开发 本章重点,1.1 计算机语言发展的历史: 第一代语言 0-1纯机器语言(打孔机) 第二代语言 汇编 第三代语言 C、C+、VB(面向过程)、Delphi、.NET(跨语言平台)、JAVA(跨平台语言) 第四代语言?,返回本章首页,一、JAVA 概述,语言?,计算机语言?,返回本章首页,(2) JAVA发展的历史: 源头:Sun Green项目 命名:Oak爪哇 发展:失败,转向Internet,成为Internet世界语。,一、JAVA 概述,1.2 JAVA特点 简单;面向对象;与平台无关;解释型;多线程,1.3 JAVA环境安装和配置 JDK下载,环境变量,path,classpath,返回本章首页,1.4 JAVA小例子 HelloWorld 看文件体系 .java; .class,一、JAVA 概述,二、JAVA 基本语法,2.1 标识符 2.2 关键字 2.3 数据类型 2.4 运算符 2.5 表达式和语句 2.6 分支、循环、方法 2.7 变量的作用域 2.8 递归调用,二、JAVA 基本语法,标识符、关键字; 数据类型分为两种:基本数据类型;引用数据类型 基本数据类型: 1、逻辑类型 boolean true/false 2、整数类型 int byte short long 32/8/16/64 3、字符类型 char 0-65536 4、浮点类型(实数类型) float double,提示:程序执行过程 (重点),返回本章首页,硬盘,程序,代码,内存,System代码,Code Segment,Data Segment,Stack,Heap,Load 到内存,系统代码调用,执行过程中的内存管理,对象,局部变量,静态变量,代码区,二、JAVA 基本语法,基本数据类型转换规则: boolean不可以转换。剩下的在混合运行中可以相互转换,转换规则为: 容量小的类型自动转换为容量大的数据类型; byte,short,char-int-long-float-double 大转小,强制转换,格式: (类型名)要转换的变量。,判断程序代码中的错误,或计算可能产生溢出的部分,void public method() int i=1,j; float f1=0.1; floatf2=123; long l1=12345678, l2=88888888; double d1=2e20,d2=124; byte b1=1,b2=2,b3=129; j = j+10; i = i/10; i = i*0.1;,char c1=a,c2=125; byte b = b1-b2; char c = c1+c2-1; float f3 = f1+f2; float f4 = f1+f2*0.1; double d = d1*i+j; float f = (float)(d1*5+d2); ,运算符,Java支持如下运算符: 算术运算符: +, -, *, /, %, +, - 例子 关系运算符:, =, , 例子 赋值运算符:= 扩展赋值运算符: +=,-=,*=, /= 字符串连接运算符:+,public class AddAdd public static void main(String args) int i1 = 10;int i2 = 20; int i = (i2+); System.out.print(“i=“ + i); System.out.println(“i2=“ + i2); i = (+i2); System.out.print(“i=“ + i); System.out.println(“i2=“ + i2); i = (-i1); System.out.print(“i=“ + i); System.out.println(“i1=“ + i1); i = (i1-); System.out.print(“i=“ + i); System.out.println(“i1=“ + i1);,i=20i2=21 i=22i2=22 i=9i1=9 i=9i1=8,逻辑运算符:,& 与 ,| 或 , !非,逻辑异或,&简洁与,|简洁或,public static void main(String args) int i=1,j=2; boolean flag1=(i3) ,逻辑运算符:,public static void main(String args) int i=1; boolean flag1=(i3) ,位运算符:,按位运算符: &(按位与)| (按位或) (按位非)( 按位异或 ) 移位运算符: (带符号右移),(不带符号右移),一般运算是把运算对象作为一个整体处理,而位运算是把整型数运算对象拆开,以位(bit)作为运算对象,位运算符:,移位 带符号右移:左侧空出位全用符号位填充 不带符号右移 :左侧空出位用0填充 2 x 2 30 00011110 01111000 00000111 00000111 -17 11101111 10111100 11111011 00111011 1281 128 / 21 = 64 128 4 256 / 24 = 16 16 4 -256 / 24 = -16,字符串连接运算符:,+除用于算术加法运算外,还可以用于字符串操作:,字符串可以和其他任意类型数据相加,其结果还是字符串类型 例:class A public static void main(String args) String s0=“Hello,“+“world!“; String s1=1+“1“; String s2=3.2+“4“; String s3=true+“false“; ,引用数据类型字符串:,构造方法(三种):,字符串类代表字符串,每一个字符串常量是该类的一个实例。 构造字符串的方法: 方法1: String s = “abc“;/直接使用字符串常量 方法2: String s = new String(“abc“);/使用对象初始化 方法3: char data= a, b, c; String s = new String(data); /利用数组,String s1 = new String(“abc“) ; String s2 = new String(“abc“) ;,0x01234567,0x12345678,s1 s2,“abc“,“abc“,s1 = = s2 false s1.equals(s2) true,注意:字符串的比较不能简单地用=来比较,而是要 通过以下形式: 字符串1.equals(字符串2) 如果需要忽略大小写,可以用如下形式: 字符串1. equalsIgnoreCase(字符串2),三目运算符(条件运算符):,+除用于算术加法运算外,还可以用于字符串操作:,三目条件运算符(?:) D=表达式A ?表达式B :表达式C A为真,返回表达式B A为假,返回表达式C 总是返回B,C中的长类型 例: int x=5, y=8; long z=2; long k=x3?y:z;,/k=8,System.out.print(输出表达式); 输出表达式可以是任意的数据类型表达式 数据输出后不换行 System.out.println(输出表达式); 该语句功能和上一个语句类似,但数据输出后会换行 System.out.printf(“格式字符串“, 表达式1, 表达式2, 表达式N); 该语句在JDK5.0中引入,在JDK5.0以下的版本不受支持 该语句功能和C的printf功能类似,格式字符串和C中相同,表达式和语句之输出语句:,Scanner类在JDK1.5中引入,位于java.util包中,用于从键盘读入各种类型数据: java.util.Scanner reader=new java.util.Scanner(System.in); reader.nextInt(); 从键盘读入一个整型数 reader.nextDouble(); 读入一个双精数 reader.nextFloat(); 读入一个单精数 reader.nextLine(); 读入一个字符串,表达式和语句之输入语句:,如果在程序的开始处通过import语句引入了java.util包,则可以直接使用Scanner类名,无需在前面加上java.util,Scanner使用示例,import java.util.Scanner; /引入Scanner类 class A public static void main(String args) Scanner reader=new Scanner(System.in); System.out.println(“请输入一个3位整数:“); int i=reader.nextInt(); int a=i%10; int b=i/100; int c=(i-b*100)/10; String r=a+“+c+“+b; System.out.printf(“倒序输出为:%s“,r); ,if ( 条件表达式 ) 语句块; else 语句块;,多重嵌套的if语句 if (条件1) 语句块1; else if (条件2) 语句块2; else if (条件3) else 语句块n;,表达式和语句之if条件语句:,switch(表达式) case 判断值1:语句组1 ; case 判断值2:语句组2 break ; default:语句组n; switch 的常量和表达式类型只能是int、short、char及byte 任何两个case常量不可以有相同的值。 根据表达式取值的不同转向不同的分支。 每个case分支中的语句块无须用花括号括起来。 每个case分支都只是入口点。 break 语句是转移语句(转出switch),小心case穿透,推荐使用。 多个case可以合并,default可以省略,但是不推荐省略。,java语句之switch条件语句:,Java语句之while&do while循环语句,Java语句之for循环语句,for ( 表达式1;表达式2;表达式3) 语句组; 表达式1:循环变量赋初值,可使用外部没有定义的循环变量 表达式2:循环条件 表达式3:循环变量修正 for ( 类型名 循环变量:数组变量 ) /JDK1.5引入 语句组;,Java中的for循环示例,public class Test public static void main(String args) long result = 0; long f=1; for(int i=1;i=10;i+) f=f*i; result = result +f; ,计算result=1!+2!+10!,JDK1.5引入的for循环示例,class Test public static void main(String args) int a=11,20,37,42,53,6,17; int i=0; for(int data:a) /for (int i=0; ilength(a); i+) /data=ai /变量data存储了本次循环对应的数组值 System.out.printf(“a%d=%dn“,i+,data); ,Java转移语句之break,没有goto语句 break 从一个封闭的语句,如switch 、循环中跳出来 break 标号 从包含本break语句的标号指示的封闭语句中跳出来。 while (e1) aaa: while (e1) while(e2) while(e2) break; break aaa; ,continue (用在循环体中) 提前结束本次循环,即跳过后面的循环体语句,回到循环的条件测试部分继续执行。 continue 标号 提前结束标号所指循环。通常是某外层循环。 continue不是goto 语句,标号不能指向与本循环并列的循环或其他循环,也不可指向非循环语句。,Java转移语句之continue,例:求2100的素数,每行打印5个数字,public class Prime public static void main(String args) First_Loop: for( int i = 2,k = 0; i 100; i+ ) for( int j = 2; j i; j+ ) if( i % j = 0) continue First_Loop; System.out.print( i + “t“ ); k+; if( k%5 = 0) System.out.print(“n“); ,局部变量 方法体内部声明的变量,包括形参(基本类型) 成员变量 方法体外声明的变量( 类中声明的),变量的作用域,全局变量不再是语言的组成部分(没有全局的方法与属性)。 所有的方法和属性都在类中定义,是类的组成部分。 每个类又是包的组成部分。 类的全限定名 : 包名 . 类名 import 一个包后 ,可直接使用该包中的类名。 在本类中,可以直接使用方法名及属性名。,递归是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。 例: (1)当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。 (2)老和尚和小和尚的故事。 (3)汉诺塔。 (4)阶乘 (5)Fibonacci Sequence(斐波那契数列),返回本节,递归,阶乘举例: 数学描述:n!=12n;计算机描述:n!=n*(n-1)!,返回本节,递归程序的举例,非递归 public static int m2(int n) int result = 1; if (n=0) return 1; else for (int i=1; i=n; i+) result = result * i; return re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 镇江市人民医院麻醉科住院医师规范化培训考核
- 上饶市中医院终端设备故障快速处理试题
- 淄博市人民医院内分泌疾病编码考核
- 盐城市中医院变应原检测技术操作考核
- 福州市中医院神经肌肉型脊柱侧凸治疗考核
- 露营展会活动策划方案
- 嘉兴市人民医院肺通气灌注显像考核
- 降压药销售活动方案
- 南平市中医院专科经营助理模式理论与实践试题
- 阀门公司策划方案
- 中央空调系统维护技术规范
- 三级安全教育考试试题与答案及答案
- 2025至2030中国扫描声学显微镜(SAM)行业项目调研及市场前景预测评估报告
- 固态相变原理及应用
- 脊柱损伤患者搬运课件
- 2025ESC心肌炎与心包炎管理指南要点解读课件
- 用户驻地网的、服务创新创业项目商业计划书
- 李清照的如梦令课件
- 急性心肌梗死的急救流程
- 近红外光谱法在纸张和纸质文物鉴定中的应用研究
- 化工设备维护与保养课件
评论
0/150
提交评论