欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第02章Java语言基础.ppt

    • 资源ID:3416373       资源大小:1.19MB        全文页数:68页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第02章Java语言基础.ppt

    第2章 Java语言基础,2.1 语言成分 2.2 流程控制语句 2.3 数组 2.4 静态方法 2.5 字符串,学习目标,掌握Java语言的基本语法成分,包括标识符与关键字、数据类型、运算符、表达式、变量声明等语言成分,掌握分支、循环等流程控制语句的语法和使用。特别注意与C/C+的不同之处。 掌握数组类型的声明和动态内存申请,掌握以基本数据类型和类的两种方式声明和使用字符串。 掌握Java语言的方法声明和调用规则,掌握基本类型和引用类型作为方法参数和返回值的传递规则。,2011-2012(1),2.1 语言成分,2.1.1 标识符与关键字 2.1.2 基本数据类型 2.1.3 变量与常量 2.1.4 运算符与表达式,2011-2012(1),2.1.1 标识符与关键字,Java采用USC-2字符集,即16位Unicode字符编码,前128个字符与ASCII字符集完全一致,后面的是其它语言文字。,关键字: 关键字是由Java语言定义的、具有特定含义的单词。例如:public、class、void等等。,2011-2012(1),标 识 符,表示指定给变量、方法和类的名称,以便编译器可唯一标识它们,Java中标识符的命名必须满足以下原则: 标识符必须以字母、下划线(_)或美元符($)开头,后面可以跟字母、数字、下划线或美元符 标识符可以包含数字,但不能以数字开头 除下划线“_”和“$”符号外,标识符中不包含任何特殊字符,如空格 标识符区分大小写,比如,“abc”和“Abc”是两个不同的标识符 对于标识符的长度没有限制 不能使用Java关键字作为标识符,2011-2012(1),分隔符,Java中分隔符分为两类: 没有意义的空白符 拥有确定含义的普通分隔符,分隔符用来分割和组合标识符,辅助编译程序阅读和理解Java源程序,包括空格、回车、换行和制表符(Tab),2011-2012(1),注释,注释增加代码的清晰度,尤其是复杂的程序中,加注释可增加程序的可读性,也有利于程序的修改、调试和交流,注释可出现在程序中任何出现分隔符的地方。 Java中的注释可分为行注释、块注释和文档注释。,2011-2012(1),注释,单行注释 单行注释使用“/”进行标记,用于对某行代码进行注释。可尾随在某行代码后,也可以单独成一行。,int i = 0;/ 定义变量i /定义变量j int j = 0;,2011-2012(1),块注释 块注释使用“/*/”进行标记,通常用于注释多行代码或用于说明文件、方法、数据结构等的意义与用途。,/* main方法负责输入hello */ public static void main(String args) /代码省略 ,注释,2011-2012(1),文档注释 文档注释使用“/*/”进行标记,并写入javadoc文档。注释文档将用来生成HTML格式的代码报告,所以注释文档必须书写在类、域、构造函数、方法,以及字段(field)定义之前。,/* * main方法负责输出Hello * param args * return */ public static void main(String args) int i = 0;/ 定义变量i /其余代码省略 ,注释,2011-2012(1),2.1.2 基本数据类型,什么是数据类型:数据类型定义了数据的性质,取值范围以及对数据所能进行的运算和操作。 Java的数据类型分为两大类:基本数据类型和引用类型,基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),基本数据类型 整数类型:byte,short, int,long 浮点类型:float,double 字符类型:char 布尔类型:boolean,引用类型 类(class) 接口(interface) 数组(如int ) 枚举(enum) 注解(annotation),2011-2012(1),基本数据类型容纳的值及其范围,2.1.2 基本数据类型,2011-2012(1),引用类型,2.1.2 基本数据类型,2011-2012(1),转义字符,使用一种特殊形式的字符常量值来表示一些难以用一般字符来表示的字符,以一个“”开头的字符序列,2.1.2 基本数据类型,2011-2012(1),2.1.3 变量与常量,1.变量:名字、类型、值和作用域 (1) 变量声明 变量必须先声明后使用。 修饰符 数据类型 变量 = 表达式 , 变量= 表达式 ,int count = 10; /声明了一个int型的变量,初始值为10 int i,j,k;/声明了三个int型变量,没有赋初始值,(2)变量参与的运算和操作,2011-2012(1),(3)变量的初始化,变量在使用之前必须被初始化,也就是至少被赋值一次。 可以声明的同时赋值: int i = 10; String s = “abcd”; 也可以声明以后再赋值: int i; String s; i = 99; s = “xyz”;,2011-2012(1),2.常量,Java中用final关键字来定义常量,常量被设定后,不允许再进行更改。 常量定义的格式如下所示:,final var_name=var_value;,关键字final表示这个变量只能赋值一次,Java语言的任意数据类型之一,常量名,要符合标识符命名规则,一般常量全部大写,用下划线分隔多个单词,常量值,示例,final double PI = 3.1416; /声明了一个double型的常量,值为3.1415,2011-2012(1),2.1.4 运算符与表达式,Java中的语句有很多种形式,表达式是其中一种语句。表达式是由操作数与运算符所组成;操作数可以是常量、变量甚至是函数,而运算符就是数学上的运算符号,如“+”、“-”、“*”、“/”等。以下面的表达式(a+10)为例,a与10都是操作数,而+则为运算符。,2011-2012(1),运算符,算术运算符 关系运算符 位运算符 逻辑运算符 强制类型转换符 条件运算符 括号运算符:()、,字符串连接运算符:+ 赋值运算符 点运算符 对象运算符 逗号运算符 new运算符,在Java语言中,运算符分为下面几类:,2011-2012(1),运算符-1,算术运算符,示例,public class MathOP public static void main(String args) int a = 13; / 声明int变量a,并赋值为13 int b = 4; / 声明int变量b,并赋值为4 System.out.println(“a+b=“ + (a + b); / 输出a/b的值 System.out.println(“a-b=“ + (a - b); / 输出a/b的值 ,程序输出: 17 9,2011-2012(1),运算符-2,关系运算符,示例,public class CompareOP public static void main(String args) int a = 10; int b = 20; System.out.println(“ab =“ + (a b); System.out.println(“ab =“ + (a b); ,输出: true false,2011-2012(1),运算符-3,逻辑运算符,示例,例2.2 判断一个月份是否为闰年。,2011-2012(1),运算符-4,位运算符,2011-2012(1),运算符-4,位运算符,2011-2012(1),运算符-5,赋值运算符 赋值运算符为一个单独的等于号“=”,它将值赋给变量 。如:,int i = 3;,此外赋值运算符可以与算术运算符结合成一个运算符。如:,i+=3; / 等效于i=i+3,类似的赋值运算符如下表所示:,2011-2012(1),运算符-6,条件运算符 条件运算符是三元运算符,语法格式为 :,?e1:e2,表达式值的类型为布尔类型,若表达式的值为真,则返回e1的值;表达式的值为假,则返回e2的值。,示例,public class ThreeOP public static void main(String args) int num1 = 3, num2 = 6; boolean result = (num1 num2) ? true : false; System.out.println(result); ,演示结果: false,2011-2012(1),强制类型转换符 “()”将一个表达式的数据类型强制转换为指定数据类型。 格式: (数据类型)表达式,运算符-7,括号运算符 圆括号“( )”用于改变表达式中运算符的优先级。 方括号“ ”用于表示数组元素。,字符串连接运算符 “+”用于连接两个字符串。当用“+”连接一个字符串与一个操作数时,Java自动将操作数的值转换为字符串。,2011-2012(1),点运算符 “.”用于分隔包、子包、类及类中成员。,运算符-8,对象运算符 instanceof判断一个对象是否属于指定类及其子类,运算结果是布尔类型。,逗号运算符 “,”用于分隔子表达式。,new运算符 new运算符用于申请数组和创建对象。,2011-2012(1),运算符优先级,优先级是指同一表达式中多个运算符被执行的次序,在表达式求值时,先按运算符的优先级由高到低的次序执行。Java中运算符优先级如下表所示。,2011-2012(1),2.1.4 运算符与表达式,表达式书写的注意事项 : 1.乘法运算符“*”不能省略; 2.数学运算的 必须写成!=、=、=。 3.数学中的分式必须写成除式。 4.只有()能改变运算次序。,2011-2012(1),2.1.4 运算符与表达式,5.运算的类型兼容原则 类型相容:是指两个不同的数据类型具有某些相同的性质,其数据能够参加相同的运算,运算结果的数据类型为范围大、精度高的那种数据类型。 Byte short int long float double char 赋值相容:是指一种数据类型的值可以通过赋值操作给另一数据类型的变量。Java自动将表达式转化为较长的数据类型后再赋值。,2011-2012(1),运算的正确性判断 byte b=127; b+; /b=-128,数据溢出 System.out.println(“b= “+b); /输出b=-128 System.out.println(1234567890+1234567890); /输出-1825831516,数据溢出 浮点数的结合律有时不成立,2011-2012(1),2.2 流程控制语句,2.2.1 流程控制结构 2.2.2 顺序结构语句 2.2.3 选择语句 2.2.4 循环语句 2.2.5 转移语句,2011-2012(1),2.2.1 流程控制结构,顺序结构、分支结构、循环结构,2011-2012(1),图2.4 不执行与死循环,2011-2012(1),2.2.2 顺序结构语句,表达式语句 表达式; 空语句 复合语句 变量声明或常量声明; 语句序列; ,2011-2012(1),2.2.3 选择语句,if语句 if语句的语法格式 if ( 布尔表达式 ) 语句1; else 语句2; 【例2.3】 求3个整数中的最大值。,2011-2012(1),1. if语句,复合条件 if (n=100) && (n=100) if (n=999) 【习题】 将3个整数按从小到大的顺序输出。,2011-2012(1),2. switch语句,switch (表达式) case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; default: 语句序列; 【例2.4】 求一个日期(年月日)对应的是星期几。,2011-2012(1),2.2.4 循环语句,while语句 while语句语法 while (布尔表达式) 语句; 【例2.5】 用while语句求1n的累加和。 while语句循环执行次数问题讨论 【例2.6】 用辗转相除法求两个整数的最大公因数。,2011-2012(1),2. do-while语句,do-while语句语法 do 语句; while (布尔表达式); do-while语句循环执行次数问题讨论 【例2.7】 计算Fibonacci序列。,2011-2012(1),图2.5 while与do-while语句执行流程,2011-2012(1),3. for语句,for语句语法 for (表达式1; 表达式2; 表达式3 ) 语句; 【例2.8】 用for语句求累加和并显示计算公式。 for语句循环执行次数问题讨论 使用for语句需要注意的问题,2011-2012(1),4. 多重循环,【例2.9】 输出九九乘法表。 演示for-for的两重循环结构。 【习题】 求100以内的素数。 演示while与do-while语句构成的二重循环结构。,2011-2012(1),2.2.5 转移语句,return语句 return 返回值; break语句和continue语句 break; /退出循环 continue; /继续循环,2011-2012(1),2.3 数组,2.3.1 一维数组 2.3.2 二维数组,2011-2012(1),2.3.1 一维数组,声明一维数组变量 数据类型 数组 或 数据类型 数组 int a ; 或 int a; 使用new为数组分配空间 数组 = new 数据类型长度 a = new int5; int a = new int5; 数组长度length 数组.length,2011-2012(1),2.3.1 一维数组,数组元素的表示及运算 数组下标 a0,a1,a2,a3,a4 ai = ai-2+ai-1;/数组元素能够参加运算 数组声明时赋初值 int a =1,2,3,4,5; 数组元素的初始化 【例2.10】 用一维数组计算Fibonacci序列值。 【习题】 “筛选法”求素数。,2011-2012(1),图2.8 一维数组,2011-2012(1),7. 数组的引用模型,基本数据类型变量的传值赋值,2011-2012(1),数组变量的引用赋值,2011-2012(1),2011-2012(1),数组的复制是指将源数组的元素一一做副本,赋值到目标数组的对应位置。常用的数组复制方法有如下三种。 (1) 使用循环语句进行复制 使用循环语句遍历源数组每个元素,赋值给目标数组对应位置。 (2) 使用clone()方法 在Java中,Object类是所有类的父类,其clone()方法一般用于创建并返回此对象 一个副本,Java中认为一切都是“对象”,所以使用该方法也可以实现数组的复制。,public class ArrayCopyClone public static void main(String args) int array1 = 1, 2, 3, 4, 5 ; /复制 int array2 = array1.clone(); /输出array2结果 for (int i = 0; i array2.length; i+) System.out.print(array2i+“,“); ,演示结果: 1,2,3,4,5,8. 复制数组,2011-2012(1),8. 复制数组,public static void arraycopy(Object src, int srcPos, Object dest,int destPos,int length) 例如: int a =1,2,3,4,5; int b ; arraycopy(a,0,b,1,4); /将a数组的前4个元素复制到b数组中,(3) 使用System.arraycopy方法 arraycopy()方法是System类的一个静态方法(并且是本地方法,效率非常高),其可以方便的实现数组拷贝功能,System.arraycopy()方法的结构如下:,2011-2012(1),2.3.2 二维数组,声明二维数组 int mat = new int 34; int mat = 1,2,3,4,5,6 ; 二维数组元素表示格式如下: 二维数组下标1下标2 matij /表示第i行第j列的数组元素,2011-2012(1),2. 二维数组的引用模型,2011-2012(1),【例2.11】 幻方,2011-2012(1),3. 不规则的二维数组,图2.15 多次申请二维数组存储空间,2011-2012(1),2.4 静态方法,2.4.1 方法声明与调用 2.4.2 参数传递 2.4.3 方法重载 2.4.4 递归方法,2011-2012(1),2.4.1 方法声明与调用,方法声明 修饰符 返回值类型 方法(参数列表) 语句序列; return 返回值; 方法调用 方法(参数列表) 声明main方法 public static void main(String args) 【例2.12】 输出指定范围内的素数。,2011-2012(1),2.4.2 参数传递,方法调用时的参数传递原则 基本数据类型参数传递值; 引用数据类型参数传递引用。 【例2.13】 交换两个变量值问题讨论。 【例2.14】 合并两组数。,2011-2012(1),【例2.15】 杨辉三角。,2011-2012(1),2.4.3 方法重载,void print(boolean b) void print(char c) void print(int i) void print(double d),重载的含义,Math.abs()方法声明有4种: int abs(int a) long abs(long a) float abs(float a) double abs(double a),2011-2012(1),2.4.4 递归方法,递归定义 递归算法 【例2.16】 求n!的递归方法。 f(n) = n*f(n-1) 5!=5*4*3*2*1=5*4! 0! = 1 或 1! = 1 n! = n*(n-1)!,2011-2012(1),【例2.17】 求Fibonacci数列第n项的递归方法。,0,1,1,2,3,5,8,,2011-2012(1),2.5 字符串,2.5.1 字符串的基本数据类型特性 字符串常量 “abc” 字符串变量及运算 赋值运算 String str = “abc“; String str2 = str; 连接运算 str = “abc“ + “xyz“; /str的值为“abcxyz“ 3. 字符串不是字符数组,2011-2012(1),2.5.2 字符串的类特性,字符串变量.方法(参数列表) String类的主要方法,例如: String str = “abc“; int n = str.length(); /n获得str的长度 char ch = str.charAt(0); /ch获得str的第1个字符'a' 【例2.18】 判断标识符。,2011-2012(1),实验2 Java程序设计基础,目的:掌握Java语言的基本语法。 要求:掌握使用流程控制语句、数组、静态方法和字符串。掌握Eclipse的程序调试技术。 重点:数组的引用模型,基本类型和引用类型作为方法参数和返回值的传递规则。 难点:Eclipse的程序调试技术。,

    注意事项

    本文(第02章Java语言基础.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开