




已阅读5页,还剩379页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录 网络聊天室项目需求 1 设计内容 1 设计要求 1 总体设计 1 第一部分 3 第一章 JAVA 入门基础 3 教学要求 3 1 1 JAVA语言入门 3 1 1 1 Java 语言特点 3 1 1 2 Java 语言的运行环境 5 1 1 3 Java Application 程序与 Java Applet 程序 7 1 2 标识符 关键字和数据类型 11 1 2 1 标识符 11 1 2 2 关键字 12 1 2 3 分隔符 12 1 2 4 数据类型 12 1 2 5 常量与变量 15 1 3 运算符 表达式和语句 16 1 3 1 运算符 16 1 3 2 表达式 21 1 3 3 流程控制语句 21 1 4 类 对象和接口 29 1 4 1 类与对象 29 1 4 2 继承 33 1 4 3 包 36 1 4 4 接口 37 项目实训 38 第二章 异常 41 2 Java 高级程序设计 教学要求 41 2 1 什么是异常 41 2 1 1 异常处理基础 41 2 1 2 Java 异常处理机制 41 2 2 异常的类型 42 2 2 1 Java 异常类类型 42 2 2 2 Java 异常类组成 43 2 3 未被捕获的异常 44 2 3 1 未被捕获的异常 44 2 4 TRY CATCH语句 45 2 4 1 系统自定义异常的处理 45 延伸 使用多重 catch 语句 嵌套 try 语句 46 2 5 自定义异常与THROW关键字 48 2 5 1 创建自己的异常 48 2 5 2 使用 throw 抛出异常 49 2 6 THROWS与FINALLY关键字 50 2 6 1 使用 throws 声明异常 50 2 6 2 使用 finally 关键字 51 2 7 JAVA的内置异常 53 2 7 1 Java 的内置异常 53 相关知识链接 54 程序引入异常的好处 54 编程提示 54 实例运用 55 案例完善 聊天系统中的异常处理 56 项目实训 57 第三章 JAVA APPLET 类型 58 教学要求 58 3 1 HTML 简介 58 3 2 浏览器处理 APPLET 59 3 3 APPLET类及其方法 61 3 3 1 Applet 类的层次 61 3 3 2 Applet 运行状态控制基本方法 62 3 3 3 Applet 绘图 63 3 相关知识链接 关于 APPLET的一些细节 65 实例运用 67 项目实训 69 第四章 图形用户界面 GUI 一 AWT 70 教学要求 70 4 1 AWT 工具集简介 70 4 2 AWT 事件模型 71 4 3 GUI 组件上的图形操作 73 4 3 1 Graphics 类 73 4 3 2 组件重绘 75 4 4 常用的 AWT 组件 81 4 4 1 文本框和文本区 82 4 4 2 按钮和标签 85 4 4 3 面板和画布 87 4 4 4 布局设计 91 4 4 5 选择型组件 98 4 4 6 Component 类的常用方法 102 4 4 7 Dialog 类 105 相关知识链接 110 关于 Java2D Java3D 技术 110 项目实训 112 第五章 JAVA 中的事件处理机制 113 教学要求 113 5 1 事件与事件处理 113 5 2 授权事件模型 115 5 3 事件类及其处理 117 5 3 1 ActionEvent 类 118 5 3 2 AdjustmentEvent 类 124 5 3 3 ComponentEvent 类 126 5 3 4 FocusEvent 类 126 5 3 5 ItemEvent 类 128 5 3 6 MouseEvent 类 130 5 3 7 KeyEvent 类 133 5 3 8 TextEvent 类 136 4 Java 高级程序设计 5 3 9 WindowEvent 类 138 5 4 事件适配器 140 5 5 事件处理的多重运用 141 相关知识链接 143 Inner 类 143 实例运用 144 案例完善 聊天系统中的事件处理 147 项目实训 148 第六章 图形用户界面 GUI 二 SWING 150 教学要求 150 6 1 从 AWT 到 SWING 150 6 2 SWING框架 151 6 3 JFRAME JDIALOG JAPPLET 152 6 4 JPANEL JSCROLLPANE JSPLITPANE JINTERNALFRAME 165 6 5 图标和标签 173 6 6 各种组件 175 6 6 1 JButton 176 6 6 2 JCheckBox 177 6 6 3 JRadioButton 178 6 6 4 JComboBox 178 6 6 5 JTextField JTextArea JPasswordField 179 6 6 6 JTextPane 188 6 6 7 JMenuBar JMenu JMenuItem JToolBar 190 6 6 8 JTable 192 6 6 9 Timer JProgressBar 199 6 6 10 JFileChooser 203 6 6 11 JTree 208 相关知识链接 212 paint Graphics g 和 paintComponent Graphics g 区别 212 实例运用 213 项目实训 221 第七章 多线程 222 教学要求 222 5 7 1 JAVA线程模型 222 7 1 1 理解线程概念 222 7 1 2 用 Thread 类的子类创建线程 222 7 1 3 用 Runnable 接口创建线程 224 7 1 4 两种线程实现方式的对比分析 225 7 1 5 线程生命的控制 225 7 1 6 多线程优先级 227 7 2 JAVA如何共享资源 线程同步 229 7 2 1 线程安全问题 229 7 2 2 使用线程同步 230 7 2 3 死锁问题 232 7 3 多线程之间的通信 233 7 3 1 线程通信 233 实例运用 235 案例完善 聊天系统中的多线程应用 237 项目实训 238 第八章 I O 输入输出流 239 8 1 流的概念 239 8 2 字节流 字符流和预定义流 240 8 2 1 字节流 240 8 2 2 字符流 240 8 2 3 预定义流 241 8 3 FILE类 242 8 4 INPUTSTREAM和 OUTPUTSTREAM 246 8 4 1 FileInputStream 247 8 4 2 FileOutputStream 248 8 5 READER和 WRITER 249 8 5 1 FileReader 250 8 5 2 FileWriter 251 8 6 RANDOMACCESSFILE类 252 8 7 PIPEDINPUTSREAM和 PIPEDOUTPUTSTREAM 254 8 8 过滤流与节点流 256 8 8 1 过滤流与节点流 256 8 8 2 BufferedInputStream 和 BufferedOutputStream 257 6 Java 高级程序设计 8 8 3 DataInputStream 和 DataOutputStream 258 实例运用 259 案例完善 聊天系统中的 I O 流 267 实例运用 267 第九章 JAVA 数据库连接 JDBC 268 教学要求 268 9 1 JDBC 原理 268 9 1 1 JDBC 概述 268 9 1 2 JDBC 体系结构 269 9 2 JDBC 编程 270 9 2 1 JDBC 连接步骤 270 9 2 2 配置数据库 270 9 2 3 通过 executeQuery 方法进行查询 275 9 2 4 通过 executeUpdate 方法更新 添加 删除记录 277 实例运用 279 案例完善 聊天系统中的数据库操作 283 项目实训 285 第十章 JAVA 网络编程 286 教学要求 286 10 1 网络编程基础 286 10 1 1 统一资源定位 URL 286 10 1 2 Internet 编址与端口号 286 10 1 3 客户 服务器模式 288 10 1 4 代理服务器 288 10 1 5 TCP IP 与 UDP 协议 289 10 2 JAVA 和网络 290 10 2 1 网络类和接口 290 10 2 2 InetAddress 类 290 10 2 3 URL 类 291 10 2 4 URLConnection 类 292 10 3 JAVA编写 TCP 网络程序 294 10 3 1 套接字概述 294 10 3 2 TCP IP 客户套接字 295 10 3 3 TCP IP 服务器套接字 296 7 10 4 JAVA编写 UDP 网络程序 298 10 4 1 数据报服务器和客户 298 10 4 2 组播数据报 301 实例运用 304 案例完善 聊天系统中的网络编程 316 项目实训 317 第二部分 318 第一章 JAVA API 318 教学要求 318 1 1 理解 API 的概念 318 1 1 1 Java API 包 318 1 2 数据类型类 320 1 2 1 java lang 包概述 320 1 2 2 Number 及其子类 321 1 3 数学运算工具 323 1 3 1 Math 类的方法 323 1 4 字符串处理 324 1 4 1 java lang String 324 1 4 2 java lang StringBuffer 327 1 5 JAVA LANG包 329 1 5 1 java lang Object 329 1 5 2 java lang Class 329 1 5 3 java lang System 330 1 5 4 java lang Runtime 与 java lang Process 330 1 5 5 java lang Package 331 1 6 JAVA UTIL包 331 1 6 1 Collection 接口 331 1 6 2 java util Random 332 1 6 3 java util Date 333 1 6 4 java util Calendar 334 1 6 5 java util StringTokenizer 335 相关知识链接 337 有效利用编程语言的帮助文档 337 8 Java 高级程序设计 项目实训 338 第二章 JAVA 与多媒体 340 教学要求 340 2 1 IMAGE类 340 2 1 1 图像类型 340 2 1 2 创建图像 340 2 1 3 加载图像 341 2 1 4 显示图像 342 2 1 5 在应用程序中显示图像 343 2 1 6 ImageIcon 类 345 2 1 7 图像映射 346 2 2 利用 JAVA播放动画 348 2 2 1 利用 Java 播放动画 348 2 3 利用 JAVA播放幻灯片 349 2 3 1 利用 Java 播放幻灯片 349 2 3 2 Applet 中播放声音 350 相关知识链接 352 Java 多媒体 API 参考 352 实例运用 352 项目实训 355 第三章 JAVA BEAN 基础 357 教学要求 357 3 1 理解 JAVA BEAN 357 3 2 应用程序开发工具 358 3 3 BEAN开发工具包 359 3 4 JAR 文档格式 363 3 5 内省机制 364 3 6 开发一个简单的 BEAN 364 3 6 1 如何创建自己的 Bean 364 3 6 2 创建一个简单的 Bean 365 3 6 3 测试 Bean 366 附 录 367 9 附录一 JAVA 编码规范及文档注释 367 1 Java 编码规范 367 2 Java 文档注释 368 附录二 JAVA2 平台介绍及专有名词注释 371 1 Java2 平台 371 2 Java 专有名词注释 371 附录三 JAVA IDE 工具介绍 374 1 UltraEdit 374 2 Editplus 374 3 Jcreator 374 4 Eclipse 374 5 JBuilder 375 6 Visual Age for Java 375 7 Visual Cafe for Java 375 8 NetBeans 与 Sun Java Studio 375 10 Java 高级程序设计 网络聊天室项目需求 设计内容 设计 C S 模式的网络聊天室 客户端使用 Java Swing 应用程序和服务器的 Java 应用程序 进行通信 设计要求 1 客户端在 Swing 应用程序服务器地址栏输入服务器 IP 与服务器程序通信 2 客户端在和服务器建立套接字连接后 用户输入聊天的昵称和密码交给服务器验证 验证成功后可以进入聊天室 3 聊天室界面包含公共聊天信息和私人聊天信息 用户可以用鼠标点击聊天列表中某 个聊天者的昵称 和该聊天者进行私人聊天 4 当新的用户进入聊天室时 所有的用户都可以在聊天列表中看到该用户的昵称 当 某用户退出聊天室时 聊天列表将该用户的昵称删除 聊天室显示该用户离开的消息 5 用户可以注册新的用户名和密码 总体设计 C S 模式的网络聊天室程序共由 6 个 java 源文件组成 Client java Chat java Reg java Login java SendMessage java 5 个 java 文件生成的字节码 打包后存放在客户机器上 属于客户端程序 ServerThread java 生成的字节码打包后存放在 服务器上 属于服务器端程序 客户端 Client java 负责创建网络聊天室客户端主窗口 Login java 负责生成用户输入昵称和密码 单击 登陆 按钮 Client java 将登陆信息交 给服务器 如果验证成功将进入聊天界面 SendMessage java 和 Chat java 共同组成了聊天界面 SendMessage java 负责生成信息输 入框和发送按钮 Chat java 负责生成聊天信息显示界面和在线用户列表 Reg java 负责生成用户注册界面 服务器端 负责监听用户的呼叫 为每个呼叫的用户启动一个线程 在该线程中和用户交流信息 如果用户提交了公共信息 就将该信息发给所有的用户 如果用户提交私人信息 就将该信息发给指定的用户 11 如果用户提交登陆信息 就对信息进行验证以及判断用户是否已经登陆过 如果用户提交注册信息 就进行注册 如果有新用户进入聊天室或者有用户离开聊天室就提醒其他用户 将离开用户从列表中 删除 12 Java 高级程序设计 第一部分 第一章 Java 入门基础 教学要求 1 掌握 典型的 Java 程序开发环境 Java 基本数据类型 使用输入输出语句及算术运 算符 编写判定语句 面向对象的开发方法及句法结构 2 理解 Java 语言的语言特性 面向对象的编程思想 3 了解 applet 与 application 的区别 Java 在开发 Internet 和 Web 的分布式客户 服务器 应用中的作用 1 1 Java 语言入门 有人说 以前 作为计算机软件人员 不能不会 C 现在不能不会 Java 这句话 可能有些略失偏颇 但它确实道出了 Java 语言在软件界中越来越重要的地位 Java 语言已然成为一种流行趋势 不管是计算机专业人员还是非专业人员都应该接触和 了解它 这样才能更好地适应不断发展变化的计算机技术环境 本章旨在让读者对 Java 语 言有一个概念上的全面了解 至于 Java 的高级编程方面以及实用技巧 我们将在后续的章节 陆续讨论 好了 就让我们来进入这趟 Java 之旅吧 1 1 1 Java 语言特点 Java 是目前使用最为广泛的网络编程语言之一 具有简单 动态 面向对象 分布式 解释执行 健壮 安全 结构中立 可移植 高效能 多线程等多种特点 1 简单性 Java 语言是一种面向对象的语言 它通过提供最基本的方法来完成指定的任务 只需理 解一些基本的概念 就可以用它编写出适合于各种情况的应用程序 Java 略去了运算符重载 多重继承等模糊的概念 并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作 13 另外 Java 也适合于在小型机上运行 它的基本解释器及类的支持只有 40KB 左右 标准类 库和线程的支持也只有 215KB 左右 2 面向对象 Java 语言的设计集中于对象及其接口 它提供了简单的类机制以及动态的接口模型 对 象中封装了它的状态变量以及相应的方法 实现了模块化和信息隐藏 而类则提供了一类对 象的原型 并且通过继承机制 子类可以使用父类所提供的方法 实现了代码的复用 3 分布性 Java 是面向网络的语言 通过它提供的类库可以处理 TCP IP 协议 用户可以通过 URL 地址在网络上很方便地访问其它对象 4 鲁棒性 Java 在编译和运行程序时 都要对可能出现的问题进行检查 以消除错误的产生 它提 供自动垃圾收集来进行内存管理 防止程序员在管理内存时容易产生的错误 通过集成的面 向对象的异常处理机制 在编译时 Java 提示出可能出现但未被处理的异常 帮助程序员正 确地进行选择以防止系统的崩溃 另外 Java 在编译时还可捕获类型声明中的许多常见错误 防止动态运行时不匹配问题的出现 5 安全性 用于网络 分布环境下的 Java 必须要防止病毒的入侵 Java 不支持指针 一切对内存的 访问都必须通过对象的实例变量来实现 这样就防止程序员使用 特洛伊 木马等欺骗手段 访问对象的私有成员 同时也避免了指针操作中容易产生的错误 6 体系结构中立 Java 解释器生成与体系结构无关的字节码指令 只要安装了 Java 运行时刻环境 Java 程 序就可在任意的平台上运行 7 可移植性 与平台无关的特性使 Java 程序可以方便地被移植到网络上的不同机器 同时 Java 的类 库中也实现了与不同平台的接口 使这些类库可以移植 另外 Java 编译器是由 Java 语言实 现的 Java 运行时刻环境由标准 C 实现 这使得 Java 系统本身也具有可移植性 8 解释执行 Java 解释器直接对 Java 字节码进行解释执行 字节码本身携带了许多编译时信息 使得 连接过程更加简单 9 高性能 和其它解释执行的语言如 BASIC 不同 Java 字节码的设计使之能很容易地直接转换成 对应于特定 CPU 的机器码 从而得到较高的性能 10 多线程 多线程机制使应用程序能够并行执行 而且同步机制保证了对共享数据的正确操作 通 过使用多线程 我们可以分别用不同的线程完成特定的行为 而不需要采用全局的事件循环 14 Java 高级程序设计 机制 这样就很容易地实现网络上的实时交互行为 11 动态性 Java 语言的设计使它适合于一个不断发展的环境 在类库中可以自由地加入新的方法和 实例变量而不会影响用户程序的执行 并且 Java 通过接口来支持多重继承 使之比严格的类 继承具有更灵活的方式和扩展性 1 1 2 Java 语言的运行环境 学习一门编程语言需要有一个程序开发环境 目前有许多较优秀的软件产品提供了 Java 程序开发环境 我们在附录中对其进行了详细的介绍 读者若有兴趣 可自行查阅 但初学 Java 语言最好选用 Sun 公司推出的软件开发工具箱 JDK 下面简单介绍一下 JDK 的下载和运行环境的设置 希望对初学者有所帮助 一 JDK 的下载 登陆 Java 的官方网站 免费下载 J2SDK 如下图 图 1 1 Java 官方网站 下载 J2SE 1 4 2 SDK 或者 J2SE 5 0 均可 本节以 1 4 2 为例 单击进入下图的下载界面 15 图 1 2 JDK 下载页面 上图中 NetBeans 是 SUN 提供的 Java 开发环境 J2SE JRE 是 Java 的运行环境 如果你 只需要运行现成的 Java 程序 而不需要编译 Java 源代码 则下载 JRE 即可 这里我们需要 下载的是中间所标明的 JDK 点击该连接 即可看到新链接页面 首先需选中 Accept License Agreement 然后根据操作系统平台选择合适版本 另外还可 以选择是全部下载后离线安装 还是在线安装 下载完成后 安装比较简单 直接双击 程 序即可自动解压缩并进行安装 一路都有画面指示 只需要遵循即可 可自行选择安装路径 安装完成后 在安装路径下的 bin 文件夹内 有我们所需的各种开发工具 二 设置 Java 运行环境 进入 控制面板 双击 系统 弹出 系统属性 对话框 选择 高级 单击 环境变量 按钮 如下图 图 1 3 环境变量 单击 新建 添加如下的系统环境变量 变量名 Path 变量值 D jdk bin 假设 JDK 安装在 D 盘根目录下 如果曾经设置 过环境变量 Path 可单击该变量进行编辑操作 如下图 图 1 4 环境变量配置 但是 如果你的机器安装过一些商业化的 Java 开发产品或带有 Java 技术的一些产品 16 Java 高级程序设计 如 PB Oracle 等 这些产品在安装后 可能会修改了 Path 的值 那么当运行编译器或者解 释器时 很可能运行的是这些产品所带的老版本的编译器或者解释器 因此如果想使用 SDK 的编译器或解释器 在设置 Path 的值时 将需要的值写在前面 比如 某个软件用到的 Path 值是 D PB jdk1 1 7 bin 如果不想删除这些产品对 Path 值的设置 可以重新编辑系统环境变量 Path 的值 并修 改为 D jdk bin D PB jdk1 1 7 bin 另外 SDK 安装目录的 jre 文件夹中包含着 Java 应用程序运行时所需要的 Java 类库和虚 拟机 这些类库被包含在 jre lib 目录中的压缩文件 rt jar 中 安装 SDK 一般不需要设置环境 变量 classpath 的值 如果你的机器安装过一些商业化的 Java 开发产品或带有 Java 技术的一 些产品 如 PB Oracle 等 这些产品在安装后 可能会修改了 classpath 的值 那么当运行 Java 应用程序时 可能加载这些产品所带的老版本的类库而导致程序要加载的类无法找到 使程序出现运行错误 比如 某个软件用到的 classpath 值为 D PB jdk1 1 7 jre lib classes zip 如果不想删除这些产品对 classpath 值的设置 可以重新编辑系统环境变量 classpath 的值 并修改为 D jdk1 4 jre lib rt jar D PB jdk1 1 7 jre lib rt jar 1 1 3 Java Application 程序与 Java Applet 程序 根据结构组成和运行环境的不同 Java 程序可以分为两类 Java Application 和 Java Applet Java Application 是完整的程序 需要独立的解释器来解释运行 而 Java Applet 则是嵌在 HTML 编写的 Web 页面中的非独立程序 由 Web 浏览器内部包含的 Java 解释器来解释运行 它们各自使用的场合并不相同 下面我们分别介绍 Java Application 与 Java Applet 并比较它们之间的区别 我们先从最简单的 HelloWorld java 来学习 Java Application 打开记事本 在里面输入以 下代码 public class HelloWorld public static void main String args System out println Hello World 一个 Java 源程序是由若干个类组成的 上面的程序仅有一个类 类名是 HelloWorld 类 17 中有一个静态的 main 方法 它是程序的入口 我们可将这段代码保存到 E 盘根目录下 注意 保存类型 应该选 所有文件 而文件名应该为 HelloWorld java 其中 java 后缀表明这是一个 Java 源代码文件 源文件的命名规则是 如果源文件中有多个类 那么只能有一个类是 public 类 如果有 一个类是 public 类 那么源文件的名字必须与这个类的名字完全相同 如果源文件没有 public 类 那么源文件的名字只要和某个类的名字相同即可 当创建了 HelloWorld java 这个源文件之后 需对其进行解释和运行 使它成为机器能够 读懂的二进制文件 下图就是 Java Application 的解释执行过程 源代码 HelloWorld java 字节码 HelloWorld class Java 虚拟机 JVM javacjava 编译运行 操作系统 图 1 5 Java Application 运行机制 在上一小节中 我们成功地安装了 JDK 它下面的 bin 文件夹中有我们所需的解释运行 工具 我们就是通过下面这两个命令来运行 Java Application javac HelloWorld java 编译出 HelloWorld class 文件 java HelloWorld 运行主类 现在我们就来认识一下 JDK 中的其他主要的工具 javac Java 编译器是将以 java 为扩展名的 Java 源程序转换成可由 Java 解释器执行 的类文件的工具 Java 编译器的程序名是 javac 它的语法是 javac 选项 源程序文件 注意 要带上 java 后缀 java Java 解释器 用于运行编译过的 Java 应用程序 它的程序名是 java Java 解释 器的语法是 java 选项 类名 javap Java 反编译器 用于分析已经编译过的 Java 字节码 经过反编译后 关于成员变 量和方法的信息将被打印出来 Java 反编译器的程序名是 javap 它的命令格式为 javap 选项 类名 javah C 头文件和承接模块文件创建器 用于当需要使用 C 语言扩展 Java 代码时创建 C 语言头文件和承接模块的 它的语法是 javah 选项 类名 javadoc Java 文档生成工具 用于在 Java 源文件中生成基于标记的 HTML 文件 这些 HTML 文件用于存储关于类和方法的信息 jdb Java 调试器 它是 Java 环境的调试工具 是一个完全依赖命令行驱动的程序排错 工具 18 Java 高级程序设计 Java Applet 是另一类非常重要的 Java 程序 虽然它的源代码编辑与字节码的编译生成过 程与 Java Application 相同 但它却不是一类可以独立运行的程序 首先看一个与 HelloWorld java 运行结果类似的 Java Applet 程序 import java awt Graphics 将 java awt 包中的系统类 Graphics 引入本程序 import java applet Applet 将 java awt 包中的系统类 Applet 引入本程序 public class My extends Applet public void paint Graphics g g drawString Hello java applet world 10 20 其中 Java Applet 中不需要有 main 方法 它的要求是程序中有且必须有一个类是系统 类 Applet 的子类 也就是必须有一个类的类头部分以 extends Applet 结尾 因为系统类 Applet 中已经定义了很多的成员域和成员方法 它们规定了 Applet 如何与执 行它的解释器 WWW 浏览器配合工作 所以当用户程序使用 Applet 的子类时 因为继承 的功能 这个子类将自动拥有父类的有关成员 从而使 WWW 浏览器顺利地执行并实现用户 程序定义的功能 extends 是关键字 代表新定义的类是它后面跟着的已经存在的父类的子类 Applet 是父 类名 父类可以是系统类 或者是其他已存在的用户自定义类 当一个类被定义成是另一个 已经存在类的子类时 它将从其父类中继承一些成员 包括域和方法 这样子类都可以利用 父类已实现的功能而不必重复书写语句了 包是 Java 系统用来组织类的组织 功能作用和来源相关的系统类通常放在同一包中 虽然 Java Application 和 Java Applet 在运行方式上有很大的不同 但是它们遵循相同的 Java 语言的语法规则 所以编译时也使用完全相同的编译工具 若使用 JDK 工具包中的编译 器编译 则可使用如下的语句 javac My java 编译出 My class 文件 运行 Java Applet 时必须将其字节码嵌入到 HTML 文件中 以上面的程序为例 它可以 嵌在如下的 HTML 文件中 My Applet 的运行过程可用下图来表示 首先将编译好的字节码文件和编写好的 HTML 文件 保存在 Web 服务器的合适路径下 当 WWW 浏览器下载此 HTML 文件并显示时 它会自动 下载此 HTML 中指定的 Java Applet 字节码 然后调用内置在浏览器 IE 中 Java 解释器来解释 执行下载到本机的字节码程序 图 1 6 Java Applet 运行过程 下面的两个图将 Java Application 与 Java Applet 做一个简单比较 图 1 7 Java Applet 20 Java 高级程序设计 图 1 8 Java Application 1 2 标识符 关键字和数据类型 1 2 1 标识符 标识符是用来标识类名 变量名 方法名 类型名 数组名 文件名的有效字符序列 Java 语言规定标识符由字母 下划线 美元符号和数字组成 并且需遵循以下规则 1 区分大小写 2 不能以数字开头 3 以字母或下划线 或 符号开头 4 不能使用 Java 的关键字 以下为合法的标识符 aIdentifier Identifier a 变量 Identifier elseother 以下为不合法的标识符 2002WorldCup Identifier Java else 基本上 一般用于命名的符号包括字母 A Z 字母 a z 数字 0 9 以及 Unicode 字符集中 序号大于 0 xC0 的所有符号 21 1 2 2 关键字 关键字是 Java 语言中已经被赋予特定意义的单词 对 Java 的编译器有特殊的作用 一 般用来表示一种数据类型 或者程序的结构等 保留字是为 Java 预留的关键字 他们虽然现 在没有作为关键字 但在以后的升级版本中很有可能成为关键字 目前 Java 语言定义的关键 字如下 const 保留字 goto 保留字 abstract finally int public this boolean continue float interface return throw break default for long short throws byte do native static transient case double if new strictfp try catch else implements package super void char extends import private switch volatile class final instanceof protected synchronize while 所有的关键字都是小写 另外 不能将关键字当作标识符来使用 关键字的学习有助于 我们对 Java 语言的语法及运行机制的掌握 1 2 3 分隔符 Java 语言中定义了多种分隔符 每一种分隔符都在 Java 程序中承担着不同的功能与作用 如下 圆括号 在定义和调用方法时用来容纳参数表 在控制语句或强制类型转换组成的表达 式中用来表示执行或计算的优先权 花括号 用来包括自动初始化的数组的值 也用来定义程序块 类 方法以及局部范围 方括号 用来声明数组的类型 也用来表示撤消对数组的引用 分号 用来终止一个语句 逗号 在变量声明中 用于分隔变量表中的各个变量 在 for 控制语句中 用来将圆括号 内的语句连接起来 句号 用来将软件包中的名字与它的子包或类分隔 也用来将引用变量与变量或方法分 隔 另外 还有一种较为特殊的空白分隔符 空格 Tab 跳格键及换行符均属于这种分隔符 1 2 4 数据类型 Java 共有八种基本类型 四种是整型 两种浮点数字型 一种字符型 char 用于 Unicode 编码中的字符 以及用于表示真假的布尔变量 boolean 1 整型 Java 定义了 4 种整数类型 字节型 byte 短整型 short 整型 int 长整型 long 这些都是有符号的值 无小数部分的数字 正数或是负数 22 Java 高级程序设计 这些整数类型的长度和变化范围如表 1 1 所示 表 1 1 整数的各种类型 名称长度数的范围 长整型64 9 223 372 036 854 775 808 9 223 372 036 854 775 807 整型32 2 147 483 648 2 147 483 647 短整型16 32 768 32 767 字节型8 128 127 整数类型的范围与 Java 代码运行的所在的机器无关 长整型数字 long 有一个后缀 L 如 40000000000L 十六进制数据有一前缀 0 x 如 0 xCAEF 八进制数据有一前 缀 0 例如 010 就是 10 进制中的 8 Java 中没有 unsigned 类型 2 浮点类型 Java中定义了两种浮点类型 单精度 float 浮点型及双精度 double 浮点型 表 1 2 浮点数的各种类型 名称位数数的范围 double641 7e 308 1 7e 308 float323 4E 038 3 4E 038 大部分程序中使用 double 类型 表示 float 类型数据时需要在后面添加后缀 F 比如 3 402F 没有后缀的浮点数据 如 3 402 总被认为成 double 类型 也可以在数字后面加上 后缀 如 3 402D 表示 double 类型 所有浮点计算都遵从 IEEE754 规范 有三种特殊的浮点值 正无穷大 负无穷大 NaN 非数字 用于表示溢出和出错 比如 用 0 去除一个整数 所得的结果正无穷大 而计算 0 0 或者对一个负数开平方则会产 生 NaN 浮点类型的数据不适合在不容许舍入误差的金融计算领域使用 下面的例子计算了圆的面积 例 1 1 DoubleVariableDemo java class DoubleVariableDemo public static void main String args double dRadius 2 0d double dArea Math PI dRadius dRadius System out println 半径为 2 的圆的面积 dArea 3 字符类型 char 类型用来表示 Unicode 编码表中的字符 Unicode 定义的国际化的字符集能表示迄今为止人类语言的所有字符集 它是几十个字 23 符集的统一 例如拉丁文 希腊语 阿拉伯语 古代斯拉夫语 希伯来语 日文片假名 匈 牙利语等等 因此它要求 16 位 这样 Java 中的 char 类型是 16 位 其范围是 0 65 536 没有负数的 char 人们熟知的标准字符集 ASCII 码的范围仍然是 0 127 扩展的 位字符集 ISO Latin 1 的范围是 0 255 既然 Java 被设计为允许其开发的 applet 在世界范围内使用 因此使用 Unicode 码代表字符是说得通的 当然 Unicode 的使用对于英语 德语 西班牙 语或法语的语言是有点低效 因为它们的字符能容易地被包含在 8 位以内 但是为了全球的 可移植性 这一点代价是必须的 4 布尔类型 只有两个值 真 true 和假 false Java 中 布尔值和整数 0 1 不能相互转换 例 1 2 BooleanConstantDemo java class BooleanConstantDemo public static void main String args final boolean BFLAG true if BFLAG System out println Always Print Out Me else System out println Never Print Out Me 在使用赋值运算时 可能会遇到等号左边的数据类型和等号右边的数据类型不一致的情 况 这时需要把等号右边的数据类型转化成等号左边的数据类型 如果这 2 种类型是兼容的 那么 Java 将自动地进行转换 例如 把 int 类型的值赋给 long 类型的变量 而将变量从较长 的数据类型转换成较短的数据类型时 则必须用到强制类型转换 如下例 例 1 3 DecisionDemo java class DecisionDemo public static void main String args short x 1 y 2 z 错误代码 z x y 正确代码 z short x y System out println z 24 Java 高级程序设计 1 2 5 常量与变量 1 整型常量 Java 的整型常量有三种形式 十进制整数 如 123 456 0 八进制整数 以 0 开头 如 0123 表示十进制数 83 011 表示十进制数 9 十六进制整数 以 0 x 或 0X 开头 如 0 x123 表示十进数 291 0X12 表示十进制数 18 2 浮点型常量 浮点数代表带小数部分的十进制值 他们可以通过标准记数法和科学记数法来表示 标 准记数法由整数部分加小数部分加小数点组成 如 2 0 3 14159 科学记数法是浮点数加一 表明乘以 10 的数字指定幂次的后缀 它可以是正值或是负值 如 6 022E23 314159E 05 及 2E 100 3 布尔常量 布尔型常量只有两个值 true 和 false 4 字符常量 字符常量是用单引号括起来的一个字符 如 a A 另外 对于那些不能直接被包括的 字符 有若干转义序列 这样允许你输入你需要的字符 例如 代表单个引号字符本身 n 代表换行符字符 表 1 3 列出了字符转义序列 表 1 3 字符转义序列 转义序列数的范围 ddd 八进制字符 ddd uxxxx十六进制 Unicode 码字符 单引号 双引号 反斜杠 r回车键 n换行 f换页 t水平制表符 b退格 在 Java 程序中 我们采用如下的表示方法来定义常量 final 常量类型 常量名 常量值 注意 常量名一般大写 例如 final byte BMAX 3 变量是 Java 程序的一个基本存储单元 变量由一个标识符 类型及一个可选初始值的组 合定义 此外 所有的变量都有一个作用域 定义变量的可见性 生存期 在 Java 中 所有的变量必须先声明再使用 基本的变量声明方法如下 访问控制符 变量类型 变量名称 变量初值 可选 25 例如 public int nCount 200 例 1 4 IntegerConstantDemo java class IntegerConstantDemo public static void main String args final byte nMaxValue 1 100 final short nMaxValue 2 200 final int nMaxValue 3 300 final long nMaxValue 4 400 System out println 整数常量的 nMaxValue 1 值 nMaxValue 1 System out println 整数常量的 nMaxValue 2 值 nMaxValue 2 System out println 整数常量的 nMaxValue 3 值 nMaxValue 3 System out println 整数常量的 nMaxValue 4 值 nMaxValue 4 nMaxValue 1 nMaxValue 1 1 不能更改常量的值 1 3 运算符 表达式和语句 1 3 1 运算符 Java 提供了丰富的运算符环境 Java 有 4 大类运算符 算术运算 位运算 关系运算和 逻辑运算 Java 还定义了一些附加的运算符用于处理特殊情况 算术运算符用在数学表达式中 其用法和功能与代数学中一样 Java 定义了下列算术运 算符 见表 1 4 所示 表 1 4 算术运算符及其含义 运算符含义 加法 减法 一元减号 乘法 除法 模运算 整型 浮点型均适用 递增运算 加法赋值 26 Java 高级程序设计 减法赋值 乘法赋值 除法赋值 模运算赋值 递减运算 算术运算符不能用在布尔类型上 但是可以用在 char 类型上 因为实质上在 Java 中 char 类型是 int 类型的一个子集 下面通过几个简单例子示范一下如何运用算术运算符 例 1 5 DataConversionDemo java class DataConversionDemo public static void main String args int nOp1 2 float fOp2 2 25f float fResult nOp1 fOp2 System out println 混合运算结果 fResult 例 1 6 BasicMath java class BasicMath public static void main String args System out println Integer Arithmetic int a 1 1 int b a 3 int c b 4 int d c a System out println c c System out println d d System out println nFloating Point Arithmetic double da 1 1 double db da 3 double dc db 4 double dd dc a System out println dc dc System out println dd dd int x 42 27 double y 42 25 System out println x mod 10 x 10 System out println y mod 10 y 10 关系运算符决定值和值之间的关系 例如决定相等不相等以及排列次序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《诫子书》翻译课件
- 电磁学入门讲解课件
- 水利工程年度工作总结
- 统计人员个人年终总结
- 亮化镜子的窍门课件
- 事故预想安全培训记录内容课件
- 进修护士工作总结
- 骨质疏松的护理诊断及措施
- 社区电商运营工作总结
- 2025年招标采购从业人员专业能力评价考试(招标采购专业理论与法律基础初、中级)综合练习题及答案一
- 大思政研究论文:大中小学思政课一体化的内容要求与推进措施
- 队列动作教学课件
- 桌面消防演练
- 癫痫的小讲课
- 2025年江西省高考物理真题
- 第七讲社会主义现代化建设的教育科技人才战略习概论2024优化版教学课件
- (高清版)DB62∕T 3268-2024 人民防空工程平战功能转换技术标准
- 全新模具转让协议书
- 2025年法院书记员考试试题及答案
- 电子生物反馈治疗
- 车队车辆保养维护方案
评论
0/150
提交评论