Java编程语言基础.ppt

上传人:max****ui 文档编号:6363616 上传时间:2020-02-23 格式:PPT 页数:67 大小:422.31KB
返回 下载 相关 举报
Java编程语言基础.ppt_第1页
第1页 / 共67页
Java编程语言基础.ppt_第2页
第2页 / 共67页
Java编程语言基础.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
第2章Java编程语言基础 学习目标 1 熟练掌握Java数据类型 常量及变量 运算符 2 熟练掌握数组 3 熟练掌握Java的面向对象概念及应用 4 能够应用面向对象程序设计方法按照现实世界的特点 把复杂的事物抽象为对象 2 1Java概述 Java语言是一个简单的 面向对象的 分布的 易于解释的 健壮的 安全的 与平台无关的 可移植的 高性能的 多线程的 动态的计算机程序设计语言 2 2Java数据类型 常量及变量 2 2 1基本数据类型Java的基本数据类型包括整型 byte short int long 字符型 char 布尔型 boolean 和浮点型 float double 2 2 2常量及变量1 常量常量是指在程序运行过程中其值不会发生变化的量 Java中常用的常量有整型常量 字符常量 字符串常量 布尔常量及浮点常量 假如在程序中经常使用某一个符号常量 如圆周率等 可使用final关键字声明符号常量 语法格式如下 final 例如 finalfloatPI 3 1415926f 2 变量1 声明变量Java中的变量在使用之前需要声明变量的类型 变量声明通常包括两部分 变量类型及变量名 语法格式如下 变量类型变量名 2 变量初始化方法中声明的变量在使用前必须先初始化 否则编译时将发生错误 例如 intabc 10 3 使用变量 例2 1 Java中变量的使用示例 importjava io publicclassChapters2 1 publicstaticvoidmain String args inta1 100 声明整型变量doublea2 34 56 声明双精度浮点型变量chara3 y 声明字符型变量System out println a1的值为 a1 输出System out println a2的值为 a2 System out println a3的数据为 a3 Chapters2 1 java代码如下 2 3运算符 2 3 1算术运算符算术运算符 如表2 2所示 用来执行算术运算 表2 2算术运算符 2 3 2比较运算符比较运算符又称为关系运算符 如表2 3所示 用来比较运算符两边的变量或常量 返回的值为True或Flase 表2 3比较运算符 2 3 3逻辑运算符逻辑运算符 如表2 4所示 用于判断某个表达式的值是True还是False 表2 4逻辑运算符 2 3 4位运算符 位运算符 如表2 5所示 是对二进制位进行操作 表2 5位运算符 例2 3 Java中位运算符的使用示例 Chapters2 3 java代码如下 classChapters2 3 publicstaticvoidmain String args inta 14 intb 5 System out println a 2 3 5其他运算符 除前面介绍的运算符外 Java还包含一些其他的运算符 如表2 6所示 表2 6其他运算符 2 3 6表达式及运算符的优先级 1 表达式表达式是由常量 变量或其他操作数与运算符所组成的 表达式用来执行程序中的数据运算 并返回运算结果 Java还有一些将算术运算符与赋值运算符结合而成的新运算符 如表2 7所示 表2 7将算术运算符与赋值运算符结合而成的新运算符 2 运算符的优先级 表2 8运算符的优先级 2 4注释 注释能够使人们更好地理解代码 注释对程序本身没有任何意义 在Java程序中 可以使用单行注释及多行注释 单行注释使用 多行注释使用 和 在 与 之间能够有任意多行的注释说明 2 5流程控制 2 5 1条件语句若要根据判断的结果来执行不同的语句时 条件语句if是一个很好的选择 if语句的基本格式如下 if 条件表达式 语句块1 else 语句块2 例2 5 声明一个整数a 为其赋初值9 在程序中判断a是奇数还是偶数 并将判断的结果输出 Chapters2 5 java代码如下 classChapters2 5 publicstaticvoidmain String args inta 9 if a 2 1 System out println a 是一个奇数 elseSystem out println a 是一个偶数 2 5 2循环语句 循环结构是在一定条件下反复执行某程序段的流程结构 被反复执行的程序段称为循环体 Java中共有三种循环语句 for while和do while 1 for循环语法格式如下 for 初始化表达式 判断条件 赋值增减量 循环体 初始化表达式 只在循环开始时执行一次 判断条件 决定循环执行的条件 每次循环开始时对其进行判断 当 判断条件 为true时 执行循环 否则 循环结束 而 赋值增减量 是在每次循环结束时用以改变 判断条件 中变量的值 结果返回给 判断条件 如果 判断条件 为false 退出循环 否则 继续执行语句块 例2 6 使用for循环计算1 2 3 4 100的和 Chapters2 6 java代码如下 classChapters2 6 publicstaticvoidmain String args inta sum 0 for a 1 a 100 a sum a 计算sum sum a System out println 1 2 3 100 sum 将结果输出 2 while语句若条件表达式的结果为true时 执行while循环中的语句 否则执行while后面的语句 语法格式如下 while 条件表达式 循环体 classChapters2 7 publicstaticvoidmain String args inta 1 sum 0 while a 100 sum a 计算sum sum aa 改变循环变量 System out println 1 2 3 100 sum 将结果输出 例2 7 使用while语句计算1 2 3 4 100的和 Chapters2 7 java代码如下 3 do while语句Do while语句与while语句相似 不同的是while语句是先计算条件表达式的值 而do while语句则是无条件地先执行一遍循环体 再对条件表达式进行判断 如果表达式的值为true 则运行循环体 否则跳出do while循环 语法格式如下 do 循环体 while 条件表达式 例2 8 使用do while语句计算1 2 3 4 100的和 Chapters2 8 java代码如下 classChapters2 8 publicstaticvoidmain String args inta 1 sum 0 do sum a a while a 100 System out println 1 2 3 100 sum 将结果输出 2 5 3跳转语句1 continue语句使用continue语句能够越过当前循环体中该语句后面的其他语句 转至循环开始 并继续判断条件表达式的值 以决定是否继续循环 classChapters2 9 publicstaticvoidmain String args inti intsum 0 for i 1 i 100 i if i 2 0 判断i 2是否为0continue sum sum i System out println 2 4 6 100 sum 输出最后结果 例2 9 使用continue语句计算2 4 6 100的和 Chapters2 9 java代码如下 2 break语句在循环语句中 break语句用于跳出当前循环体 并继续执行循环后面的语句 classChapters2 10 publicstaticvoidmain String args intx Integer parseInt args 0 intsum 1 设置积的初值为1for inti 1 i x i 设置索引i的初值为1 条件为i x 增量为1 sum i if i 5 break 若i 5则跳至下一步骤 System out println x x sum sum 将结果输出 例2 10 从命令行中输入一个整数x 若x小于等于5则计算1 2 n的值 否则仅计算至5 Chapters2 10 java代码如下 2 6数组 数组是数据的有序集合 数组中的各个元素具有相同的数组名 数组名及下标用来唯一地确定数组中的元素 在使用前 必须要声明数据类型及分配存储空间 1 一维数组1 一维数组的定义一维数组的定义方式有两种 数组的数据类型数组名 数组的数据类型 数组名 2 一维数组的存储空间的分配定义了一个数组后 使用new运算符为数组分配内存空间 语法格式如下 数组名 new数组的数据类型 数组长度 例如 为包含4个元素的整型数组firstArray分配内存空间 firstArray newint 4 通常 数组的声明与存储空间的分配这两部分能够合并在一起 语法格式如下 数组的数据类型数组名 new数组的数据类型 数组长度 例如 intfirstArray newint 4 3 一维数组元素的引用声明数组并使用运算符new为数组分配完内存空间后 即可引用数组中的每一个元素 数组元素的引用方式如下 数组名 数组下标 例2 11 数组的应用实例 Chapters2 11 java代码如下 classChapters2 11 publicstaticvoidmain String args intx intfirstArray newint 4 for x 0 x 0 x System out println firstArray x firstArray x 4 一维数组的初始化数组元素不仅可以按照上述方式进行赋值 并且可以在定义数组的同时进行初始化 例如 intfirstArray 101 102 103 104 105 106 使用逗号 分隔数组中的元素 系统自动为数组分配一定的空间 例2 12 整数数组x有五个元素 其值分别为10 20 33 45 56 设计一个程序求该数组的和及平均值 Chapters2 12 java代码如下 classChapters2 12 publicstaticvoidmain String args intx 10 20 33 45 56 doubleavg x 0 0 sum x 0 0 for inti 0 i x length i sum x sum x x i avg x sum x x length System out println 和为 long sum x n平均数为 avg x 2 二维数组Java中的多维数组被看做是数组的数组 例如 二维数组为一个特殊的一维数组 其每个元素又是一个一维数组 下面 以二维数组为例来进行说明 1 二维数组的定义二维数组的定义方式为 数组的数据类型数组名 2 二维数组的存储空间的分配二维数组定义完成后 使用new运算符为数组分配内存空间 其语法格式如下 数组名 new数组的数据类型 行的个数 列的个数 数组的声明与存储空间的分配合并在一起的其语法格式如下 数组的数据类型数组名 new数据类型 行的个数 列的个数 3 二维数组的引用二维数组中各元素的引用方式为 数组名 index1 index2 其中 index1 index2为数组下标 可以是整型常数或表达式 如x 1 2 等 同样 每一维的下标均从0开始 4 二维数组的初始化二维数组的初始化有两种方式 分别为 直接对各个元素进行赋值 在定义数组的同时进行初始化 例如 intx 1 2 3 4 5 6 定义一个2 3的数组 同时对数组初始化 例2 13 设x y z均为2行2列的矩阵 已知x y 求z x y Chapters2 13 java代码如下 classChapters2 13 publicstaticvoidmain String args doublex 1 2 3 4 doubley 10 11 12 13 doublez x for inti 0 i 2 i for intj 0 j x i length j z i j x i j y i j System out print z i j System out println 2 7面向对象概念 2 7 1类的创建 Java中的类由类的声明与类体二部分构成 类中定义的成员变量和方法的数量不受限制 1 类的声明类的声明定义的格式如下 修饰符 class类名 extends父类名 implements接口名 接口名 类体 2 类体类体中定义了类的成员变量 属性 和成员函数 方法 例2 14 定义一个学生类 包括三个成员变量 学号sNo 姓名sName及专业sMajors 及二个成员函数 Accept 用于接收学生信息 为成员变量赋值 Display 用于显示学生信息 显示成员变量的数据 Student java代码如下 importjava io classStudent 声明一个类Student 声明私有成员变量privateStringsNo privateStringsName privateStringsMajors 声明公有成员函数publicvoidAccept 定义Accept函数 try BufferedReaderinObj newBufferedReader newInputStreamReader System in System out println 请输入学生学号 sNo inObj readLine System out println 请输入学生姓名 sName inObj readLine System out println 请输入学生专业 sMajors inObj readLine catch IOExceptioner System out println er publicvoidDisplay 定义Display函数 System out println 学号为 sNo System out println 姓名为 sName System out println 专业为 sMajors 2 7 2成员变量 成员变量 又称为属性 域 描述了类及对象的状态 实例2 14中有三个成员变量 sNo 表示学生学号 sName 表示学生姓名 sMajors 表示专业 其类型均为String 成员变量的定义方法为 修饰符 类型名称成员变量 初值 变量名 初值 例如 intsResults 2 7 3方法方法是类的动态属性 标志了类所具有的功能及操作 用于将类和对象的数据封装在一起 1 方法的声明方法的声明格式如下 修饰符 返回值类型方法名称 参数表 方法体 其中 参数表的形式如下 参数类型参数名1 参数类型参数名2 例2 15 方法isSmallStudent用于判断学生的年龄是否比某个值 csAge 大 csAge是参数 返回值为boolean类型 代码如下 booleanisSmallStudent intcsAge booleansFlag if sAge csAge sFlag true elsesFlag false retrunsFlag 2 构造方法构造方法 也称为构造函数 是一种特殊类型的方法 与类同名 用于创建对象 完成初始化工作 例2 16 构造方法的应用 CCircle java代码如下 classCCircle 定义CCircle类 doublepi 3 14159 doubleradius 定义构造方法 主要是把radius成员赋值为bj 即构造方法所接收的参数 构造方法没有返回值 虽然没有返回值 但定义构造函数时不能加上void 否则编译时将出错 publicCCircle doublebj radius bj publicvoidshow System out println 半径为 radius 周长为 2 pi radius 面积为 pi radius radius publicstaticvoidmain String args CCirclecircle1 newCCircle 3 5 circle1 show 2 7 4对象1 创建对象以圆形类来说 从定义类到创建新的对象 可以将其看为 先打造一个圆形的模版 即定义类 再用此模版制造圆 即创建对象 可通过以下步骤创建对象 1 声明指向 由类所创建的对象 的变量 2 对象的实例化 返回对此对象的一个引用 用new能够为一个类实例化多个不同的对象 各对象分别占用不同的内存空间 所以改变其中一个对象的状态不会影响其他对象 3 执行构造函数 进行初始化 可以对构造函数进行重写 因此 通过给出不同类型或数量的参数能调用不同的构造函数 例2 17 创建圆形类的对象CCirclecircle1 声明指向对象的变量circle1Circle1 newCCircle 使用new创建新的对象也可将上面的两个步骤改写为 CCirclecircle1 newCCircle 声明并创建新的对象 2 对象成员变量的引用可通过以下语法格式访问对象的某个成员变量 对象名称 成员变量名例如 对象circle1的半径可通过下列语句来指定 circle1 radius 圆对象circle1的半径 3 对象方法的调用对象的行为是通过方法表现出来的 对象方法的调用格式如下 对象名称 方法名称 例2 18 计算圆的面积与周长 CCircle01 java代码如下 classCCircle01 定义CCircle01类 privatedoublepi 3 14159 privatedoubleradius publicCCircle01 doublebj 定义构造方法 radius bj doubleArea show 定义方法Area show 用于计算面积 returnpi radius radius doublePerimeter show 定义方法Perimeter show 用于计算周长 return2 pi radius publicstaticvoidmain String args CCircle01circle1 newCCircle01 3 5 创建新的对象 并为其赋值System out println 圆的面积为 circle1 Area show 调用成员方法System out println 圆的周长为 circle1 Perimeter show 2 7 5继承继承是面向对象的重要特性 继承能够以现有的类为基础 进而派生出新的类 通过该方式 能快速的开发新的类 而不需要编写相同程序的代码 在Java中使用关键字extends继承一个父类 或称超类 例2 19 设计一个硬币类CCoins 能够用来创建各种不同半径及不同面值的硬币 已知在圆形类 CCircle类中已包含了radius pi成员与setRadius show 等方法 在创建硬币类时 通过继承的方式来利用这些数据成员及方法 classCCircle 定义类CCircle doublepi 3 14 doubleradius publicCCircle 定义CCircle构造方法 System out println 调用CCircle 构造方法 publicvoidsetRadius doublenewr radius newr System out println 圆的半径为 radius publicvoidshow System out println 圆的面积为 pi radius radius 定义硬币类CCions 子类 该类继承自圆形类CCircle 父类 classCCoinsextendsCCircle privateintPayValue publicCCoins CCoins 构造方法 System out println 调用CCoins 构造方法 publicvoidsetValue intnewPV PayValue newPV System out println 面值为 PayValue publicclassChapters2 19 publicstaticvoidmain String args CCoinscoin1 newCCoins 创建CCoins对象coin1 setRadius 1 8 调用父类的setRadius 方法coin1 show 调用父类的show 方法coin1 setValue 1 调用子类的setValue 方法 2 7 6多态 在面向对象程序设计中 当程序要实现多个相似的功能时 给相应的方法命名相同的名字 用不同的参数代表不同的功能 在使用方法时 无论传递哪种参数 只要能被程序识别 就能够得到相应的结果 Java通过覆盖及重载来实现多态 重载 是指在相同类内 定义名称相同 而参数个数或类型不同的方法 Java能够依据参数的个数或类型 调用对应的方法 覆盖 是指在子类当中 定义名称 参数个数与类型都与父类相同的方法 用来改写父类中的方法 例2 20 重载的应用 为了绘制出不同的形状 使用给出相应参数的draw 方法 如图2 14所示 图2 14重载的应用 classShapeDraw doubler protectedstaticdoublepi 3 14 intweight inthight doubleHemline publicShapeDraw doubler1 r r1 System out println 这是圆形 圆形的面积为 2 pi r publicShapeDraw intx inty weight x hight y System out println 这是矩形 面积为 weight hight publicShapeDraw doubledi intgao Hemline di hight gao System out println 这是三角形 面积为 Hemline hight 2 publicclassChapters2 20 publicstaticvoidmain String args ShapeDrawsd1 newShapeDraw 3 2 10 调用绘制三角形的ShapeDraw方法ShapeDrawsd2 newShapeDraw 3 2 调用绘制圆的ShapeDraw方法ShapeDrawsd3 newShapeDraw 5 10 调用绘制矩形的ShapeDraw方法 例2 21 覆盖的应用 在父类CCircle中定义一个不带参数的displayResult 方法 并且在子类CCoins中也定义一个不带参数的displayResult 方法 父类及子类均有相同名称 并且都不带参数的方法 利用CCoins子类声明的对象调用displayResult 方法 观察是父类的displayResult 方法被调用 还是子类displayResult 方法被调用 Chapters2 21 java代码如下 classCCircle protecteddoubler protectedstaticdoublepi 3 14 publicCCircle doubler1 r r1 publicvoiddisplayResult 父类中的displayResult 方法 System out println 父类中的r r classCCoinsextendsCCircle 子类CCoins privateintvalue publicCCoins doubler1 intv super r1 value v publicvoiddisplayResult 子类中的displayResult 方法 System out println 子类中的r r value value publicclassChapters2 21 publicstaticvoidmain String args CCoinscoin1 newCCoins 3 2 10 coin1 displayResult 本章小结 Java数据类型 常量及变量的定义和使用 Java的运算符有算术运算符 比较运算符 逻辑运算符 位运算符及其他运算符等 Java的流程控制有条件语句 循环语句及跳转语句 数组是数据的有序集合 数组中的每个元素具有相同的数组名 Java作为面向对象程序设计语言 在程序设计中涉及对象 类 方法 成员变量的定义及使用 写出程序的运行结果 1 importjava io publicclassxt1 publicstaticvoidmain String args intx1 66 doublex2 14 78 charx3 a System out println x1的值为 x1 System out println x2的值为 x2 System out println x3的数据为 x3 习题 2 classxt2 publicstaticvoidmain String args intx 50 inty 6 System out println x y x y System out println x y x y System out println x y x y System out println x y x y System out println x y x y System out println x x System out println x x 3 classxt3 publicstaticvoidmain String args doublex 33 44 55 66 doubley 12 14 15 16 doublez x for inti 0 i 2 i for intj 0 j x i length j z i j x i j y i j System out print z i j System out println 4 classXt4 privatedoublepi 3 14 privatedoubleradius publicXt4 doublebj doublegao radius bj vhight gao doubleZtV show returnpi radius radius vhight doubleYztV show returnpi radius radius vhight 3 publicstaticvoidmain String args Xt4wt newXt4 2 2 创建新的对象 并为其赋值System out println 圆柱体的体积为 wt ZtV show System out println 圆锥体的体积为 wt YztV show THEEND
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!