




已阅读5页,还剩229页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA程序设计实例教程 主编 关忠制作 李晓新2011年3月 JAVA程序设计实例教程 第1章你好 Java第2章比较大小第3章车辆信息显示第4章计算器第5章文本编辑器第6章赛马游戏第7章网络即时通讯 第1章你好 Java 1 1基础实例1 2基础知识 Java程序设计基础1 3扩展知识 常用的Java集成开发环境1 4扩展实例 引言 Java是一种简单易用 完全面向对象 安全可靠 主要面向Internet且具有最棒的跨平台可移植性的开发工具 从现在开始 Java将带领读者进入一个全新的领域 本章将主要通过一些比较简单的实例 使读者对于Java能有一个初步的认识 掌握Java程序设计中最基础的知识 1 1基础实例 1 1 1编写步骤首先 执行 开始 所有程序 附件 记事本 然后 在记事本中输入以下内容 1 MyFirstJavaApplication java2publicclassMyFirstJavaApplication 3publicstaticvoidmain Stringargs 4System out println 你好 Java 5 6 1 1基础实例 1 1 2运行结果执行 开始 运行 在弹出的 运行 对话框中 输入 cmd 单击 确定 按钮或执行 开始 所有程序 附件 命令提示符 在命令窗口中 使用JDK中的javac命令编译源文件MyFirstJavaApplication java 语句如下 javacMyFirstJavaApplication java 1 1基础实例 编译完成后 在源文件所在的文件夹下 会生成一个名为 MyFirstJavaApplication class 的字节码文件 然后 使用JDK中的java命令运行字节码文件MyFirstJavaApplication class 命令如下 javaMyFirstJavaApplication该Java程序运行后 会在命令窗口中输出相应信息 1 1基础实例 MyFirstJavaApplication程序的运行结果 1 2基础知识 Java程序设计基础 1 2 1Java的开发运行环境SUN公司提供了自己的一套Java开发环境 通常称之为JDK JavaDevelopmentKit 并且提供了多种操作系统下的JDK 随着时间的推移和技术的进步 JDK的版本也在不断的升级 如JDK1 2 JDK1 3 JDK1 4等 目前最新版本是JDK6 也就是JDK1 6 不同操作系统下的JDK的各种版本在使用上基本相似 大家可以根据自己的使用环境 从SUN公司的网站上下载相应的版本 本书中所使用的都是基于Windows平台下的JDK6 1 2基础知识 Java程序设计基础 安装完成后 这个工具包中的所有内容都会放在JDK安装文件夹下 其中的bin文件夹中包含了所有相关的可执行文件 在bin文件夹中 javac exe是Java的编译工具 Java源文件的扩展名为 java 源文件被编译后会在其所在的文件夹中生成相应的字节码文件 字节码文件的扩展名为 class java exe是Java的解释工具 负责解释执行Java字节码文件 1 2基础知识 Java程序设计基础 1 2 2Java程序的基本结构1 Java应用程序2 Java小应用程序 1 2基础知识 Java程序设计基础 Java应用程序的执行过程 1 2基础知识 Java程序设计基础 Java小应用程序的执行过程 1 2基础知识 Java程序设计基础 1 2 3Java的基本语法格式1 标识符在Java语言中 标识符用于为各种变量 数组 方法 类 对象 接口 包等命名 Java标识符的命名规则是 Java标识符由字母 数字 下划线 和美元符号 组成 长度不限 Java标识符的第一个字母必须是字母 下划线 或美元符号 尽可能避免使用含 符号的标识符 因为它们常被编译器用来创建标识符的名字 Java标识符严格区分大小写 用户不能直接使用Java语言中的关键字作为标识符 但是它可以包含关键字作为它名字的一部分 1 2基础知识 Java程序设计基础 在同一作用域内 一般不允许有同名的标识符 为了提高程序的可读性 标识符的命名最好能够做到 见名知义 而且规范大小写的使用方式 通常情况下 对于标识符有以下一些风格约定 和 一般不作为变量名 方法名的开头 包名 全部小写 例如java applet awt等 接口名 类名 每个单词的首字母都要大写 例如MyFirstJavaApplication System Graphics等 变量名 对象名 方法名 第一个单词全部小写 其余单词只有首字母大写 例如anyVariableWorld drawString等 常量名 全部大写 例如PI MAX VALUE等 1 2基础知识 Java程序设计基础 2 关键字关键字是由Java语言定义的 具有特殊含义的字符序列 每个关键字都有一种特定的含义 不能将关键字作为普通标识符来使用 所有的Java关键字一律用小写字母表示 1 2基础知识 Java程序设计基础 Java关键字 1 2基础知识 Java程序设计基础 3 分隔符Java程序的分隔符用于区分Java源程序中的基本成分 分为注释 空白符和普通分隔符三种 1 2基础知识 Java程序设计基础 注释在程序中适当地加入注释是一种良好的编程习惯 这样会增加程序的可读性 注释不能放在一个标识符或关键字之中 也就是说 要保证程序中最基本元素的完整性 注释不会影响程序的执行结果 编译器将忽略注释 在Java中 主要有以下三种注释形式 单行注释 注释部分 只对当前行有效多行注释 注释部分 文档注释 注释部分 1 2基础知识 Java程序设计基础 空白符空白符包括空格 回车 换行和制表符 Tab键 各种Java基本成分之间的多个空白符与一个空白符的作用相同 在编译过程中 编译器会忽略空白符 在程序中适当的使用空白符 可以增强程序的可读性 1 2基础知识 Java程序设计基础 普通分隔符普通分隔符具有确定的含义 不能用错 它主要包括四种分隔符 大括号 用于定义语句块 例如 定义类体 方法体和复合语句以及数组的初始化等 分号 用于作为语句结束的标志 逗号 用于区分方法的各个参数 区分变量说明的各个变量 冒号 用于作为语句的标号 1 3扩展知识 常用的Java集成开发环境 1 3 1JCreatorJCreator是一个小巧灵活的Java程序开发工具 也是一个Java集成开发环境 它可将Java程序的编写 编译 运行和调试集成进自身的环境中直接进行开发 且无需进行环境变量的设置 在功能上与SUN公司所公布的JDK等文字模式开发工具相较之下来得容易 还允许使用者自定义操作窗口界面及无限Undo Redo等功能 1 3扩展知识 常用的Java集成开发环境 JCreator操作界面 1 3扩展知识 常用的Java集成开发环境 1 3 2JBuilderJBuilder主要的特点有 JBuilder支持最新的Java技术 包括Applets JSP Servlets JavaBean以及EJB EnterpriseJavaBeans 的应用 用户可以自动地生成基于后端数据库表的EJBJava类 JBuilder同时还简化了EJB的自动部署功能 JBuilder支持各种应用服务器 JBuilder能用Servlet和JSP开发 调试动态Web应用 利用JBuilder可以创建 没有专有代码和标记 纯Java2应用 JBuilder拥有专业化的图形调试界面 支持远程调试和多线程调试 调试器支持各种JDK版本 包括J2ME J2SE和J2EE 1 3扩展知识 常用的Java集成开发环境 JBuilder操作界面 1 3扩展知识 常用的Java集成开发环境 1 3 3Eclipse和MyEclipse1 Eclipse 概述Eclipse是著名的跨平台的自由集成开发环境 IDE Eclipse是一个开放源代码的 基于Java的可扩展开发平台 Eclipse的前身是IBM的VisualAgeforJava Eclipse是可扩展的体系结构 可以集成不同软件开发供应商开发的产品 将他们开发的工具和组件加入到Eclipse平台中 1 3扩展知识 常用的Java集成开发环境 Eclipse的结构和内核Eclipse本身作为一个开放源码的软件项目 它主要包含3个子项目 平台子项目 Java开发工具 JDT java 子项目和插件开发环境 PDE plug in 子项目 Eclipse目前的最新版本为Eclipse3 5 2 1 3扩展知识 常用的Java集成开发环境 2 MyEclipseMyEclipse是一个十分优秀的用于开发Java J2EE的Eclipse插件集合 MyEclipse目前支持JavaServlet AJAX JSP JSF Struts Spring Hibernate EJB3 JDBC数据库链接工具等多项功能 可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具 MyEclipse企业级工作平台 MyEclipseEnterpriseWorkbench 简称MyEclipse 是对EclipseIDE的扩展 利用它我们可以在数据库和J2EE的开发 发布 以及应用程序服务器的整合方面极大的提高工作效率 它是功能丰富的J2EE集成开发环境 包括了完备的编码 调试 测试和发布功能 完整支持HTML Struts JSF CSS Javascript SQL Hibernate 1 3扩展知识 常用的Java集成开发环境 在结构上 MyEclipse的特征可以被分为7类 J2EE模型 WEB开发工具 EJB开发工具 应用程序服务器的连接器 J2EE项目部署服务 数据库服务 MyEclipse整合帮助 1 3扩展知识 常用的Java集成开发环境 MyEclipse操作界面 1 4扩展实例 在本节中 将使用Eclipse来开发一个简单的Java应用程序 通过实例 请读者熟悉一下Eclipse开发环境 本书后面都会使用Eclipse来进行相应的开发 1 4扩展实例 1 启动Eclipse启动介面 1 4扩展实例 2 创建Java项目执行 文件 新建 Java项目 在弹出的 新建Java项目 对话框中 设置 项目名 并在内容中设置项目的保存位置 然后 单击 完成 按钮 完成Java项目的创建工作 系统会在项目的保存位置上创建相应的文件夹 1 4扩展实例 3 创建Java类执行 文件 新建 类 在弹出的 新建Java类 对话框中 设置类名 然后 单击 完成 按钮 完成Java类的创建工作 系统会自动在项目文件夹中创建相应的文件 1 4扩展实例 4 编写Java类在编辑窗口中 输入以下Java程序代码 1 MyFirstJavaApplication1 java2importjavax swing JOptionPane 3publicclassMyFirstJavaApplication1 4publicstaticvoidmain Stringargs 5JOptionPane showMessageDialog null 你好 Java 6 7 输入完成后 执行 文件 保存 即可完成在Eclipse下第一个Java程序的编写工作 1 4扩展实例 1 4 2运行结果执行 运行 运行 或 运行 运行方式 Java应用程序 即可执行程序 如果程序尚未保存 Eclipse会询问在执行前是否要保存文档 然后执行程序 该Java程序运行后 执行结果如图 1 4扩展实例 MyFirstJavaApplication的运行结果 第2章比较大小 2 1基础实例2 2基础知识 Java基本语2 3扩展知识 数组法2 4扩展实例 引言 通过上一章的学习 读者对于Java已经有了一个初步认识 掌握了Java程序设计的基础知识 本章中 将通过一个比较数值大小的实例来进一步学习Java语言的基本语法规则 从而让读者能够使用Java开发工具编写出一个具备数值比较功能的Java程序 2 1基础实例 现在将编写一个Java应用程序 主要用于实现两个数大小的比较 并给出比较结果 通过实例 读者将进一步学习Java语言的基本语法规则 2 1基础实例 2 1 1编写步骤1 启动Eclipse2 创建Java项目3 创建Java类4 编写Java类 2 1基础实例 在编辑窗口中 输入以下Java程序代码 1 Compare java2importjavax swing JOptionPane 装载JOptionPane类3publicclassCompare 4publicstaticvoidmain Stringargs 5Strings1 s2 6s1 JOptionPane showInputDialog 请输入第一个整数 7 s1接收来自输入文本框的第一个整数8s2 JOptionPane showInputDialog 请输入第二个整数 9 s2接收来自输入文本框的第二个整数10intfirstNumber secondNumber 11firstNumber Integer parseInt s1 12 将字符串s1转换成整数赋值给firstNumber13secondNumber Integer parseInt s2 14 将字符串s2转换成整数赋值给secondNumber 2 1基础实例 15 比较两个数的大小16if firstNumber secondNumber 17JOptionPane showMessageDialog null firstNumber 大于 secondNumber 18 19elseif firstNumber secondNumber 20JOptionPane showMessageDialog null firstNumber 等于 secondNumber 21 22else 23JOptionPane showMessageDialog null firstNumber 小于 secondNumber 24 25 26 输入完成后 执行 文件 保存 即可完成在Eclipse下Java程序的编写工作 2 1基础实例 2 1 2运行结果执行 运行 运行 即可执行程序 如果程序尚未保存 Eclipse会询问在执行前是否要保存文档 然后执行程序 该Java程序运行后 按对话框提示操作 2 2基础知识 Java基本语 Java是基于C 语言开发出来的 因此其语法规则与C C 非常相似 但是又有所不同 接触过C C 的读者 学习时要特别注意Java与C C 的区别 下面详细介绍Java的基本语法 2 2基础知识 Java基本语 2 2 1数据类型 2 2基础知识 Java基本语 1 整数类型 2 2基础知识 Java基本语 2 浮点数类型 2 2基础知识 Java基本语 3 字符类型在Java中 利用关键字char来定义字符类型的数据 字符型数据是用单引号括起来的单个字符 例如 charc A Java中的字符型数据是基于16位的Unicode字符集 每个字符占两个字节 Java中的字符型数据属于整型数据 但是无符号的整型数据 其取值范围为0 216 1 2 2基础知识 Java基本语 4 逻辑类型逻辑类型 又称为布尔类型 用关键字boolean来表示 例如 booleanb false 2 2基础知识 Java基本语 2 2 2常量与变量1 常量常量是不能被程序修改的固定值 在程序运行之前 其值就已经确定了 在Java中 定义常量时需要使用final关键字 定义基本数据类型的常量的基本语法格式为 修饰符 final基本数据类型常量名1 数值1 常量名2 数值2 2 2基础知识 Java基本语 Java中的常量 主要有 整型常量整型常量分为单字节整型 短整型 整型和长整型4种 它们均可以用十进制 八进制和十六进制三种方式表示 十进制整数 十进制整数的第一位数字不能为0 例如 123 456 23L 八进制整数 要求必须以0为前导 例如 0123 011 0377L 十六进制整数 要求必须以0 x或0X作为前导 例如 0 x123 0X1A2D 0XFFFL 2 2基础知识 Java基本语 实型常量实型常量分为单精度和双精度两种类型 实型数据只采用十进制数表示 有小数形式和指数形式两种不同的表示 小数形式 标准形式 由数字和小数点组成 且必须有小数点 例如 0 123 1 23D 0 9901F 指数形式 科学计数法形式 用指数幂的形式表示 要求必须有指数部分 例如 123e3 123E 3 其中e或E之前必须有数字 且e或E后面的指数必须为整数 2 2基础知识 Java基本语 字符常量字符常量是用单引号括起来的一个字符 例如 a A Java中还允许使用转义字符 来将其后的字符转变为其他的含义 2 2基础知识 Java基本语 Java中常用的转义序列 2 2基础知识 Java基本语 逻辑常量逻辑常量只有两个值 true和false 分别代表布尔逻辑中的 真 和 假 在Java中 逻辑常量不能转换成任何其他类型的数据 true和false只能赋值给声明为boolean类型的变量 或者用于逻辑运算表达式中 2 2基础知识 Java基本语 2 变量变量是在程序运行过程中可以赋值并能够对其值进行更改的数据 变量是Java程序中的基本存储单元 它的定义包括变量名 变量值 变量类型和作用域几个部分 变量根据其所属的数据类型划分 基本数据类型变量和引用数据类型变量 复合数据类型变量 根据变量被声明的位置划分为 局部变量 成员变量 2 2基础知识 Java基本语 变量的定义与初始化 变量的赋值与类型转换 变量的作用域 2 2基础知识 Java基本语 成员变量的默认初始化原则 2 2基础知识 Java基本语 2 2 3运算符和表达式表达式是由变量 常量和各种运算符组成的式子 是程序的基本组成单位之一 表达式可以是程序语句的一部分 也可以是一个单独的程序语句 表达式的值就是表达式中的各变量 常量经过运算所得到的结果 而这些运算就主要是由表达式中的运算符来规定 2 2基础知识 Java基本语 1 运算符 算术运算符 2 2基础知识 Java基本语 自增 自减运算符 2 2基础知识 Java基本语 关系运算符 2 2基础知识 Java基本语 逻辑运算符 2 2基础知识 Java基本语 位运算符 2 2基础知识 Java基本语 赋值运算符 2 2基础知识 Java基本语 条件运算符条件运算符是Java语言中唯一的一个三目运算符 其一般形式为 表达式 语句1 语句2 在计算条件表达式时 先计算表达式 如果值为true 就执行语句1 并将其结果作为条件表达式的值 否则执行语句2 并将其结果作为条件表达式的值 其中表达式的运行结果必须是布尔型数据 语句1和语句2返回的数据的数据类型必须保持一致 2 2基础知识 Java基本语 其他运算符 2 2基础知识 Java基本语 2 表达式 表达式的值和类型 表达式的运算顺 2 2基础知识 Java基本语 运算符的优先顺序 2 2基础知识 Java基本语 2 2 4流程控制1 顺序结构程序从上至下一行一行执行的结构 中间没有分支和跳转 直到程序结束 一般情况下 程序中的语句都是按程序设计时所确定的次序一个语句接一个语句地顺序执行的 2 2基础知识 Java基本语 2 选择结构选择结构提供了一种控制机制 使得程序的执行可以跳过某些语句不执行 而转去执行特定的语句 在Java中 选择语句包括if语句 单选 if else语句 双选 和switch语句 多选 2 2基础知识 Java基本语 3 循环结构循环语句的作用是反复执行一段代码 直到满足终止循环的条件为止 Java语言中提供的循环语句有 while语句do while语句for语句 2 2基础知识 Java基本语 4 跳转语句在使用循环语句时 只有循环条件表达式的值为false时才能结束循环 想要提前中断循环 则需要使用break语句 还可以在循环语句块中添加continue语句 来跳过本次循环要执行的剩余语句 然后开始执行下一轮循环 2 3扩展知识 数组法 Java中 数组是一种最简单的复合数据类型 数组是有序数据的集合 数组中的每个元素都具有相同的数据类型 可以用一个统一的数组名和下标来唯一地确定数组中的元素 这些数据在内存中的存放是连续的 数组分为一维数组和多维数组 2 3扩展知识 数组法 2 3 1一维数组1 一维数组的声明在Java中 一维数组的定义形式为 数组元素类型数组名 数组元素类型 数组名 2 3扩展知识 数组法 2 一维数组的初始化可以在定义数组的同时为数组元素分配空间并赋值 也就是对数组进行静态初始化 例如 intintArray 1 2 3 4 StringstringArray abc How you 2 3扩展知识 数组法 3 一维数组元素的引用只有完成了对所有数组元素的创建和初始化工作之后 才可以在程序中引用数组元素 修改其属性和调用其方法 Java中数组元素的引用是通过数组下标来实现的 其引用方式为 数组名 数组下标 其中数组下标可以为整型常数或表达式 下标从0开始 到数组元素个数值减1为止 每个数组都有一个属性length来指明它的长度 即数组元素的个数 2 3扩展知识 数组法 2 3 2多维数组1 二维数组的定义在Java中 二维数组的定义形式为 数组元素类型数组名 数组元素类型 数组名 2 3扩展知识 数组法 2 二维数组的初始化静态初始化Java语言中 由于把二维数组看作是数组的数组 数组空间不是连续分配的 所以不要求二维数组每一维的大小相同 例如 intintArray 1 2 2 3 3 4 5 动态初始化直接为每一维分配空间 具体语法格式如下 数组名 new数组元素类型 arrayLength1 arrayLength2 从最高维开始 分别为每一维分配空间 数组名 new数组元素类型 arrayLength1 数组名 0 new数组元素类型 arrayLength20 数组名 1 new数组元素类型 arrayLength21 数组名 arrayLength1 1 new数组元素类型 arrayLength2n 2 3扩展知识 数组法 3 二维数组元素的引用与一维数组相同 二维数组元素可以通过指定数组元素下标的方式进行引用 对二维数组中的每个元素 引用方式为 数组名 index1 index2 需要注意的是 在数组的每一维中 数组元素的编号均从0开始 到该维的数组元素个数减1结束 2 4扩展实例 2 4 1编写步骤首先 通过双击Eclipse文件夹中的名为Eclipse的可执行文件 就可以启动Eclipse了 然后 开始进行Java程序的开发 1 创建Java项目执行 文件 新建 Java项目 在弹出的 新建Java项目 对话框中 设置 项目名 并在内容中设置项目的保存位置 然后 单击 完成 按钮 完成Java项目的创建工作 系统会在项目的保存位置上创建相应的文件夹 2 4扩展实例 2 创建Java类执行 文件 新建 类 在弹出的 新建Java类 对话框中 设置类名 然后 单击 完成 按钮 完成Java类的创建工作 系统会自动在项目文件夹中创建相应的文件 2 4扩展实例 3 编写Java类在编辑窗口中 输入以下Java程序代码 1 BubbleSort java2publicclassBubbleSort 3publicstaticvoidmain Stringargs 4inta 27 6 4 8 10 12 89 68 45 37 5System out println 排序前的数据序列 6printArray a 7System out println 选择排序的各趟结果 8sortBubble a 9printArray a 10 1112 数组排序的方法 2 4扩展实例 13publicstaticvoidsortBubble inta 14inthold 15for intpass 1 passa i 1 18hold a i 19a i a i 1 20a i 1 hold 21 22printArray a 23 2 4扩展实例 24 2526 打印数组的方法27publicstaticvoidprintArray intb 28for inti 0 i b length i 29System out print b i 30System out println 31 32 输入完成后 执行 文件 保存 即可完成在Eclipse下Java程序的编写工作 2 4扩展实例 2 4 2运行结果执行 运行 运行方式 Java应用程序 即可执行程序 如果程序尚未保存 Eclipse会询问在执行前是否要保存文档 然后执行程序 在Eclipse下运行Java程序时 通常会将在命令窗口中显示的结果显示在 控制台 中 2 4扩展实例 冒泡排序运行结果 第3章车辆信息显示 3 1基础实例3 2基础知识 面向对象程序设计基础3 3扩展知识 面向对象程序设计高级3 4扩展实例 引言 本章介绍了如何使用java语言实现面向对象程序设计的基本概念 包括类和对象的关系 类的实例化 类的派生和继承 多重继承的功能接口以及包等概念 并综合运用上述知识给出了两个简单的车辆信息显示的实例 3 1基础实例 本实例的功能是通过类及对象的创建等操作 完成一个可以显示小轿车信息的程序 3 1 1编写步骤在Eclipse中建立一个小轿车类 在其中定义了小轿车的各种属性及其方法 并对小轿车类进行实例化 创建一个速腾轿车的对象 设置速腾轿车对象的属性 并执行相关的方法 最后显示出这个对象的各种信息 3 1基础实例 程序的源代码清单1publicclassCarDisp 小轿车类23publicstaticvoidmain String args 4CarDispSagitar newCarDisp 创建对象速腾56Sagitar color 黑 7Sagitar model 速腾 8Sagitar horsepower 小 9Sagitar manufacturer 一汽大众 1011System out println 车辆类型 Sagitar type 15System out println 生产厂家 Sagitar manufacturer 1617System out println 当前车速 Sagitar speed 行驶方向 Sagitar direction 3 1基础实例 34 3536publicStringtype 车辆类型37publicStringcolor 颜色38publicStringmodel 型号39publicStringhorsepower 马力40publicStringmanufacturer 生产厂家41publicintspeed 速度42publicStringdirection 方向4344publicCarDisp 45type 小轿车 46direct48 4950publicvoidrun 行驶方法 53 5455publicvoidturnleft 左转弯方法 57 78 3 1基础实例 3 1 2运行结果 3 2基础知识 面向对象程序设计基础 3 2 1面向对象程序设计的特点1 封装性 Encapsulation 2 继承 Inheritance 3 多态性 Polymorphism 3 2基础知识 面向对象程序设计基础 3 2 2类的建立与声明类 Class 实际上是对某种类型的对象定义变量和方法的原型 它表示对现实生活中一类具有共同特征的事物的抽象 是面向对象编程的基础 类是对某个对象的定义 它包含有关对象动作方式的信息 包括它的名称 方法 属性和事件 3 2基础知识 面向对象程序设计基础 类定义的一般形式如下 限制符class类名 类体 类的定义由类头和类体两部分组成 3 2基础知识 面向对象程序设计基础 3 2 3类中的属性和方法1 属性属性就是数据成员 它们指定了该类的内部表示 其一般由常量或变量组成 比如基础实例中第36行到41行 就是类属性的定义 在类定义中属性可以赋初值 如果设置了初始值 实例化对象后 对象中的属性就会继承该值 如果没有在类定义中设置初始值 则在实例化对象后 要进行显式的赋值操作 否则该值会为空 null 3 2基础知识 面向对象程序设计基础 2 方法方法是包含一系列语句的代码块 他们指定了该类的操作方法 方法一般由方法头和方法体组成 方法的定义如下 限制符返回值类型方法名 参数类型参数1 参数类型参数2 方法体 3 2基础知识 面向对象程序设计基础 3 构造方法方法中有一个特殊的应用 当方法名与类名相同时 这个方法被称为构造方法 即在对象被实例化时自动调用的一个方法 一般将需要初始化的语句放在其中 构造方法没有返回值 因此不需要设置返回值类型 3 2基础知识 面向对象程序设计基础 3 2 4类中的访问权限1 public修饰符2 private修饰符3 protected修饰符4 friendly修饰符5 修饰符使用时的注意 3 2基础知识 面向对象程序设计基础 3 2 5对象所谓对象就是类的实例化 一个对象就是类中所定义的一组变量和相关方法的集合 对象的变量是构成对象的核心 不同对象的变量是分离的 对象通过成员变量和类方法进行相互间的交流 以实现各种复杂的行为 3 2基础知识 面向对象程序设计基础 1 对象的声明对象的声明与普通变量的声明相似 首先指定一个类名作为这个对象的类类型 然后在类名后写一个对象名即可 对象声明的例子如下所示 类A对象A 类B对象B1 对象B2 类A实例化了一个对象A 类B实例化了两个对象B1和B2 3 2基础知识 面向对象程序设计基础 2 对象的创建示例中创建了两个对象 对象A new类A 对象B1 new类B hello 3 2基础知识 面向对象程序设计基础 3 访问对象中的成员对象成员的引用方式必须使用运算符 数据成员和方法的引用格式如下所示 对象名 数据成员名对象名 方法名 参数表 例如基础实例中的第6行和第20行等 3 3扩展知识 面向对象程序设计高级 3 3 1派生与继承继承是面向对象程序设计的一种重要手段 在面向对象的程序设计中 采用继承的机制可以有效地组织程序的结构 设计系统中的类 明确类间关系 充分利用已有的类来完成更复杂 深入的开发 大大提高程序开发的效率 降低系统维护的工作量 类继承也称为类派生 是指一个类不需要进行任何定义就可以拥有其他类的非私有成员 实现代码重用 3 3扩展知识 面向对象程序设计高级 父类与子类的层次关系 3 3扩展知识 面向对象程序设计高级 3 3 2方法重载方法重载的引入简化程序员的工作 将方法的选择交由Java系统负责 如果没有重载 在编写如下语句段为publicintadd1 inta intb returna b publicfloatadd2 floata floatb returna b 现在有了方法重载 就可以将方法名写成相同的名称 如下所示 publicintadd inta intb returna b publicfloatadd floata floatb returna b 3 3扩展知识 面向对象程序设计高级 3 3 3接口1 接口的定义Java语言中的接口是通过interface关键字来声明的 其声明格式如下 interface接口名 接口体 3 3扩展知识 面向对象程序设计高级 一个清扫设备接口示例定义 interfaceCleaningEquipment 清扫设备接口publicintCleanerNumber 2 publicvoidCleanBegin publicvoidCleanStop 3 3扩展知识 面向对象程序设计高级 2 接口的继承具体的语法格式为 interface子接口名extends父接口名1 父接口名2 接口体 3 3扩展知识 面向对象程序设计高级 3 接口的实现接口中只声明了方法成员 而没有给出方法体 这样还不能在程序中使用 要想使用接口中声明的方法成员 就必须在实现接口的类中给出方法体 这个过程称为接口的实现 在类的声明中 用implements子句来表示实现某个或某些接口 3 3扩展知识 面向对象程序设计高级 3 3 4包所谓 包 就是一个设定的命名集合 它是Java提供的组织类和接口的一种有效工具 定义的类都加入某一个包中 并作为包的一部分存在 Java类中的成员变量和成员方法都在类中定义 使用包机制使得每个Java的变量和方法都可以用全限定的名字来表示 包括包名 类名和成员 方法和变量 名 各部分间用点号分隔即可 3 3扩展知识 面向对象程序设计高级 1 包的创建创建一个包非常简单 在Java源文件的最开始包含一个package语句即可 其语法格式如下 package包名 为了更好地使用包中的类 可以创建不同层次的包 这通常是由不同包的功能分类决定的 采用下面的形式可以创建一个包的层次结构 packagep1 p2 p3 3 3扩展知识 面向对象程序设计高级 2 包的使用定义好的包可以通过import语句来引用 在Java源文件中 import语句需要放在package语句之后 但在其他任何类定义之前 importpackage1 package2 classname 3 3扩展知识 面向对象程序设计高级 3 Java的常用包 java lang包 java io包 java util包 包 java awt包 java awt image包 java applet包 java text包 java beans包 2020 3 17 117 可编辑 3 4扩展实例 3 4 1编写步骤在Eclipse中新建立一个项目CarDisp2 并在其中增加类文件CarDisp2 java 然后在其中输入语句 3 4扩展实例 3 4 2调试与运行编写完成后 测试并运行程序 运行结果如图 第4章计算器 4 1基础实例4 2基础知识 一 界面设计与布局管理器4 3基础知识 二 事件处理4 4扩展知识 异常处理4 5扩展实例 引言 本章介绍了Java图形用户界面 GUI 和事件处理的基础知识 包括图形用户界面中AWT和Swing两个类库中常用的容器和组件等 各类常用的事件处理机制 同时还介绍了异常处理机制在Java语言中的应用 并综合运用上述内容完成计算器的实例 4 1基础实例 本实例是一个简易计算器 功能是可对数字进行加 减 乘 除 简单算术计算 4 1 1编写步骤在Eclipse中建立一个项目 名称为Calculator 在项目中建立一个类文件 名称与项目名相同 在类文件中输入相应的程序代码 4 1基础实例 4 1 2运行结果编写完成后 可以测试程序的运行结果 首先通过单击按钮选择数值1 单击运算符号选择做什么运算 再选择数值2 最后单击等号按钮 得出数值1和数值2运算了后的结果 4 1基础实例 计算器程序界面 4 1基础实例 本程序的主要功能 使用鼠标单击数字按钮 上方文本区会对应显示出应数字内容 单击 C 按钮可以清空显示回复0显示 当单击对应的运算符号时 如果是第一次计算则会等待用户选择第二个数值 如果已经计算过则把前面的结果显示出来后 把结果作为第一个数值再进行计算 当单击等号按钮 对前面选择的数值和运算符进行运算得出结果 可以把结果继续用于计算 也可以再单击其他数值进行下一次的运算 4 2基础知识 一 界面设计与布局管理器 图形用户界面GUI GraphicalUserInterface 是程序提供给用户操作的图形界面 包括窗口 菜单 按钮 文本区 复选框和其它各种屏幕元素 Java中提供了AWT和Swing两个类库为GUI设计提供了丰富的功能 4 2基础知识 一 界面设计与布局管理器 4 2 1容器1 面板2 窗口 Window 3 框架 Frame 4 2基础知识 一 界面设计与布局管理器 4 2 2AWT常用组件 4 2基础知识 一 界面设计与布局管理器 1 框架 Frame 用Frame创建一个Windows窗口 用于存放其它的组件 通过add 方法向容器中添加 代码 Framef 创建一个框架f ewFrame 窗口标题名称 实例化窗口对象f 4 2基础知识 一 界面设计与布局管理器 Frame类常用的构造方法 4 2基础知识 一 界面设计与布局管理器 2 标签 Label 标签是显示文本的组件 可以显示单行的字符串 起着传递消息的作用 用户不能对其进行修改 只能查看其内容 代码 LabelmyLabel 创建一个标签myLabel newLabel 标签文字 实例化标签对象 设置标签文字添加标签f add myLabel 把标签添加到容器f中 4 2基础知识 一 界面设计与布局管理器 Label类常用的构造方法和常用的方法 4 2基础知识 一 界面设计与布局管理器 3 按钮 Button 按钮是用来触发特定动作的组件 当用户用鼠标单击按钮时 系统会自动执行与该按钮相联系的程序 从而完成预先制定的功能 代码 ButtonmyButton myButton newButton 按钮 实例化按钮添加标签f add myButton 把按钮添加到容器f中 4 2基础知识 一 界面设计与布局管理器 Button类常用的构造方法和常用的方法 4 2基础知识 一 界面设计与布局管理器 4 文本框 TextField 用来接收用户通过键盘输入的单行文本信息 通过事件处理机制 程序可以使用这些文本或数据信息 代码 TextFieldmyTextField myTextField newTextField 显示的文本 10 实例化单行文本 并指定初始化文字和宽度为容纳10个字符 4 2基础知识 一 界面设计与布局管理器 TextField类常用的构造方法 4 2基础知识 一 界面设计与布局管理器 TextField类常用的方法及其说明代码myTextField getText myTextField setText 新文本内容 设置文本框显示的文本 myTextField setEditable false 设置文本框内容不能再编辑 4 2基础知识 一 界面设计与布局管理器 5 文本域 TextArea 用来接收用户通过键盘输入的多行文本信息 代码 TextAreamyTextArea myTextArea newTextArea 显示的文本 10 3 实例化多行文本区 并指定初始化文字和该文本区的行数和列数 4 2基础知识 一 界面设计与布局管理器 TextArea类常用的构造方法 4 2基础知识 一 界面设计与布局管理器 TextArea类常用的方法 4 2基础知识 一 界面设计与布局管理器 6 复选框 Checkbox 复选框可以让用户进行多项选择 复选框有两种状态 分别为 开 和 关 当用户点中复选框时候 复选框的状态就会改变 代码 CheckboxmyCheckbox myCheckbox newCheckbox 复选框 创建复选框 并指定复选框的标签内容 4 2基础知识 一 界面设计与布局管理器 Checkbox类常用的构造方法 4 2基础知识 一 界面设计与布局管理器 7 单选按钮组 CheckboxGroup 单选按钮是在复选框的基础上创建的 单选按钮的选择是互斥的 当用户选中了组中的一个按钮后 其他按钮自动处于未选中状态 代码 CheckboxGroupmyCheckboxGroup newCheckboxGroup 创建一个单选按钮组CheckboxmyCheckbox1 newCheckbox 单选1 myCheckboxGroup true 创建一个复选框1 并把其加入到上面创建的单选按钮组中 设置默认为选中状态 CheckboxmyCheckbox2 newCheckbox 单选2 myCheckboxGroup false 创建一个复选框2 加入单选按钮组中 设置默认状态为未选中状态 最后将组件放置到容器中时 只把复选框添加即可f add myCheckbox1 向f中添加复选框对象 而不是单选按钮组 f add myCheckbox2 4 2基础知识 一 界面设计与布局管理器 CheckboxGrou类常用的构造方法 4 2基础知识 一 界面设计与布局管理器 8 下拉列表 Choice 下拉列表的选项框每次只能显示一个选项 如果希望查看或选择其他的选项 需点击下拉列表右边的下箭头 并从选项框中选择一个选项 代码 ChoicemyChoice newChoice 创建下拉列表myChoice addItem 下拉列表一 向下拉列表中添加列表项myChoice addItem 下拉列表二 添加标签f add myChoice 把下拉列表添加到容器f中 4 2基础知识 一 界面设计与布局管理器 Choice类常用的构造方法和常用的方法 4 2基础知识 一 界面设计与布局管理器 9 列表框 List 4 2基础知识 一 界面设计与布局管理器 10 菜单 Menu 完整的菜单系统由菜单条 菜单和菜单项组成 其对应的类分别是 MenuBar Menu和MenuItem 一个菜单的组成如图 4 2基础知识 一 界面设计与布局管理器 Menu类常用的构造方法及其说明 4 2基础知识 一 界面设计与布局管理器 4 2 3Swing常用组件1 标签类 JLabel 2 文本输入框 JTextField 3 密码框输入框 JPasswordField 4 文本区 JTextArea 5 按钮类 JButton 6 单选按钮 JRadioButton 和多选按钮 JCheckBox 7 列表 JList 8 下拉列表 JComboBox 9 对话框 JDialog 4 2基础知识 一 界面设计与布局管理器 4 2 4布局管理1 FlowLayout布局 4 2基础知识 一 界面设计与布局管理器 2 BorderLayout布局 4 2基础知识 一 界面设计与布局管理器 3 GridLayout布局 4 2基础知识 一 界面设计与布局管理器 4 CardLayout布局 4 2基础知识 一 界面设计与布局管理器 5 自由布局如果把容器的布局设置为null布局 空布局 则通过所有组件都拥有的方法 publicvoidsetBounds intx inty intwidth intheight 可设置组件在容器中的位置和大小 参数x和y指定组件左上角在容器中的坐标 参数width和height指定组件的宽和高 单位为像素 4 3基础知识 二 事件处理 事件有三个重要概念 事件 用户对组件的一个操作 称之为一个事件 例如鼠标单击或键盘的操作 事件源 发生事件的组件就是事件源 例如不同的组件像按钮Button 复选框Checkbox等 事件处理器 负责处理事件的方法 例如接受到按钮单击事件 并对这个事件进行处理 4 3基础知识 二 事件处理 事件类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育信息化0时代教学评价系统与数据分析工具市场潜力报告
- 山东安全条例测试题及答案解析
- 煤气作业安全知识题库及答案解析
- 泰州b2货远从业资格证模拟考试及答案解析
- 2025吉林省水利安全员c证题库及答案解析
- 七年级地理下册 第六章 第二节 台湾说课稿1 中图版
- 第四课 探究世界的本质教学设计-2025-2026学年高中思想政治人教版必修4生活与哲学-人教版
- 5.灵活巧妙的剪刀教学设计-2024-2025学年科学教科版六年级上册
- 5.8 余弦函数的图像和性质教学设计-2023-2024学年中职数学基础模块上册语文版
- 2025年电池内阻测试仪行业研究报告及未来行业发展趋势预测
- 爆破安全培训课件
- 管线物探基本知识培训课件
- 医护人员护理文书书写规范模板
- 财务岗招聘笔试题目及答案
- 2025上教师资格笔试考试试题与答案(初中化学考生回忆版)
- 《中国名菜》课程标准
- 感染性腹泻的病例讨论
- 输尿管癌根治术后护理查房
- 《商务数据分析与处理》高职电子商务数据分析全套教学课件
- 工程派工管理办法
- 入党积极分子培训考试题库及答案
评论
0/150
提交评论