netbeans5.0 集成开发环境

86
1 基基基

Upload: senta

Post on 12-Feb-2016

203 views

Category:

Documents


0 download

DESCRIPTION

基础篇. NetBeans5.0 集成开发环境. NetBeans5.0 集成开发环境. IDE 常规教程 编辑特性 GUI 生成器 (Matisse) 插件(模块)开发包. 继承与多态. 应当达到的目标:. 熟悉继承的概念,掌握域、方法的继承与隐藏 掌握 this 与 super 的使用 理解多态的概念,掌握 java 重载的实现方法 掌握构造函数的继承与重载进行初始化的方法 熟悉包的创建与使用 熟悉接口的声明与实现. NetBeans5.0 集成开发环境. IDE 常规教程 . NetBeans IDE 5.0 特性. 继承与多态. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NetBeans5.0 集成开发环境

1

基础篇

Page 2: NetBeans5.0 集成开发环境

2

NetBeans5.0NetBeans5.0 集成开发环境集成开发环境 IDE 常规教程 编辑特性 GUI 生成器 (Matisse) 插件(模块)开发包

Page 3: NetBeans5.0 集成开发环境

3

应当达到的目标: 熟悉继承的概念,掌握域、方法的继承与隐藏 掌握 this 与 super 的使用 理解多态的概念,掌握 java 重载的实现方法 掌握构造函数的继承与重载进行初始化的方法 熟悉包的创建与使用 熟悉接口的声明与实现

继承与多态

Page 4: NetBeans5.0 集成开发环境

4

NetBeans5.0NetBeans5.0 集成开发环境集成开发环境

IDE 常规教程

Page 5: NetBeans5.0 集成开发环境

5

NetBeans IDE 5.0 特性 NetBeans IDE 5.0 引入了对基于 NetBeans 平台的 IDE 模块和富客户端程序开发的全面支持,直观的全新 GUI Builder Matisse ,经过重新设计的对 CVS 的新支持 , 对 Sun Application Server 8.2 、 Weblogic9 和 JBoss 4 的支持,以及很多的编辑器增强功能。

特性列表NetBeans

继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 6: NetBeans5.0 集成开发环境

6

NetBeans IDE 5.0 特性自动完成类、方法、字段,现在还可以使用代码完成框生成以下的代码片段: 从自定义代码模板产生(以前仅能从扩展缩写中产生);设置方法和获取方法 匿名内部类 ;要重载或实现的方法的方法体 ;此外,可以输入 camel 命名法缩写来生成代码(例如,在代码完成对话框打开时输入 AIOO 可以生成 ArrayIndexOutOfBoundsException )。现在也可以通过敲入句号、分号或逗号来完成文字输入和关闭弹出框。方法参数显示在工具提示中。

特性列表 自动完成继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 7: NetBeans5.0 集成开发环境

7

NetBeans IDE 5.0 特性NetBeans 5.0 极大地扩展了可用的重构行为数量。新的重构行为包括: 安全删除 在可能的时候使用父类型 将内部类移至外部 上推 下推 将匿名类转换为内部类 提取方法 提取接口 提取父类型

特性列表 重构继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 8: NetBeans5.0 集成开发环境

8

NetBeans IDE 5.0 特性Java 提示(用一电灯泡图标标示)帮助您生成代码 支持把 HTML 、 JSP 和数据库代码片段拖放到 JSP 和 HTML 页面的组件模板 错误条表示出您的文件是否能编译通过,提供对源文件的错误、警告、 TODO 和书签的概览。 将选中的代码放到 try-catch 块中 改进的带有语法高亮功能的新 SQL 编辑器 使用拖放的方法在编辑器窗口中剪切和粘贴选中的代码 在代码完成和 XML 验证功能中更方便地添加 XML DTD 和架构。 XML 浏览和改进的 XML 编辑器中自动缩进、代码折叠功能 可以在预定义的快捷键集合和颜色方案中进行选择(和其他著名的开发环境如 Emacs 是一致的)。

特性列表 编辑器各种增强继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 9: NetBeans5.0 集成开发环境

9

NetBeans IDE 5.0 特性Java 提示(用一电灯泡图标标示)帮助您生成代码 支持把 HTML 、 JSP 和数据库代码片段拖放到 JSP 和 HTML 页面的组件模板 错误条表示出您的文件是否能编译通过,提供对源文件的错误、警告、 TODO 和书签的概览。 将选中的代码放到 try-catch 块中 改进的带有语法高亮功能的新 SQL 编辑器 使用拖放的方法在编辑器窗口中剪切和粘贴选中的代码 在代码完成和 XML 验证功能中更方便地添加 XML DTD 和架构。 XML 浏览和改进的 XML 编辑器中自动缩进、代码折叠功能 可以在预定义的快捷键集合和颜色方案中进行选择(和其他著名的开发环境如 Emacs 是一致的)。

特性列表 编辑器各种增强继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 10: NetBeans5.0 集成开发环境

10

NetBeans IDE 5.0 特性IDE 能自动识别 CVS 工作目录并把所有改动过的文件在版本窗口中列出来。更新和提交文件是使用 CVS 所执行的最常见的活动 : 您可以从主要的 IDE 导航窗口( Projects 、 Files 和 Favorites )或从 Versioning 窗口启动这些操作。标记和颜色编码显示出文件、目录、包和项目的当前状态。通过 Diff 命令可以对单个文件或整个包、目录或项目进行快速比较。新的 CVS 支持使共享项目元文件变得更容易,而且不仅仅可以共享源,还可以共享 IDE 设置。

特性列表 版本控制继承与多态

开发 NetBeans 模块 Matisse GUI Builder 服务器 Web 框架 Web Services 编辑器增强功能 代码完成 重构 版本控制 调试 其它可用性改进 新 NetBeans 附加包

Page 11: NetBeans5.0 集成开发环境

11

NetBeans IDE 5.0 快速入门介绍在 NetBeans IDE 5.0 中开发 J2SE 应用程序的一些基本步骤。我们将使用实用工具类创建一个 MyLib 项目,然后使用从库项目实现方法的主类创建一个 MyApp 项目。本文档旨在让您快速入门。

目目标标

首先,我们将创建一个新 Java 类库,让它包含我们需要稍后创建的实用工具类。然后,我们需要创建一个新 Java 应用程序,将其用作我们的主项目。创建 MyApp 项目后,我们将 MyLib 的类添加到它的类路径

设置项目设置项目

继承与多态

Page 12: NetBeans5.0 集成开发环境

12

4.2 Java 的多态创建新 创建新 Java Java 类库类库1 、选择 File > New Project (Ctrl-Shift-N) 。在 Categories 下选择 General 。在 Projects 下,选择 Java Class Library 并单击 Next 。 2 、在 Project Name 下,输入 MyLib 。将 Project Location 更改为计算机上的任意目录。从现在起,我们将此目录称为 NetBeans_projects。 注意: 上面指定的类应该如下所示: /NetBeans_projects/MyLib/ 单击 Finish 。 MyLib 项目将在 Projects 和 Files 两个窗口中打开。

Page 13: NetBeans5.0 集成开发环境

13

1 、选择 File > New Project 。在 Categories 下选择 General 。在 Projects 下,选择 Java Application 并单击 Next 。 2 、在 Project Name 下,输入 MyApp 。确保将 Project Loc

ation 设置为 NetBeans_projects。 3 、输入 acrostic.Main 作为主类。 确保选中 Set as Main Project 和 Create Main Class 复选框。 单击 Finish 。 MyApp 项目在 Project 窗口中显示, Main.ja

va 在 Source Editor 中打开。

创建新 创建新 Java Java 应用程序应用程序 4.2 Java 的多态

Page 14: NetBeans5.0 集成开发环境

14

1 、在 Projects 窗口中,右键单击MyApp 项目的 Libraries 节点并选择 Add Project 。 2 、浏览到 NetBeans_projects/ 并选择 MyLib 项目文件夹。

Project JAR Files 窗格将显示可以添加到项目的 JAR 文件。注意, MyLib 的 JAR 将被列出,尽管我们还没有实际构建 JAR 文件。此 JAR 文件是在构建和运行 MyApp 项目时被构建的。

3 、单击 Add Project JAR Files 。 展开 Libraries 节点。注意, MyLib 项目的 JAR 文件将被添加到 MyApp 项目的类路径中。

配置编译类路径配置编译类路径 4.2 Java 的多态

Page 15: NetBeans5.0 集成开发环境

15

创建和编辑 创建和编辑 Java Java 源代源代码码 现在我们需要创建 Java 包并添加构造 acrostic 时将使用的方法,然后,我们将实现 Main 类中的 acrostic 方法。

目标目标4.2 Java 的多态

1 、右键单击 MyLib 项目节点并选择 New > Java Class 。键入 LibClass 作为新类的名称,在 Package 字段键入 org.me.mylib ,并单击 Finish 。 LibClass.java 将在 Source Editor 中打开2 、在 LibClass.java 中,将指针置于类声明 (public class LibClass {) 和构造方法 (public LibClass() {) 之间的行上。键入或粘贴以下方法代码: 。

Page 16: NetBeans5.0 集成开发环境

16

创建和编辑 创建和编辑 Java Java 源代源代码码 创建 创建 Java Java 包和类文件包和类文件 4.2 Java 的多态

public static String acrostic(String[] args) { StringBuffer b = new StringBuffer(); for (int i = 0; i < args.length; i++) { if (args[i].length() > i) { b.append(args[i].charAt(i)); } else { b.append('?'); } } return b.toString(); }

3 、如果粘贴进去的代码格式不正确,则按 Ctrl-Shift-F 为整个文件重新编排格式。 4 、按 Ctrl-S 保存文件。

Page 17: NetBeans5.0 集成开发环境

17

创建和编辑 创建和编辑 Java Java 源代源代码码 编辑 编辑 Java Java 文件文件4.2 Java 的多态

1 、在 Source Editor 中选择 Main.java 选项卡。如果还没有打开它,则在 Projects 窗口中展开 MyApp > acrostics 并双击 Main.java 。 2 、删除 main 方法中的内容 // TODO code application logic here 并键入以下内容: String result = Li 3 、按 Ctrl-Space 打开代码完成框。 IDE 为项目编译类路径中的所有类和方法提供代码完成。选择 LibClass (org.me.mylib) 并按 Enter 。 IDE 将填充类名称的其余部分,还为该类自动创建重要语句。注意: IDE 还在代码完成框之上打开一个框,显示所选类或包的 Javadoc 信息。由于大多数包不存在 Javadoc 信息,在到达 Java 类前,该框一直显示 "Cannot find Javadoc message" 。

Page 18: NetBeans5.0 集成开发环境

18

创建和编辑 创建和编辑 Java Java 源代源代码码 编辑 编辑 Java Java 文件文件4.2 Java 的多态

4 、在主方法中,在 LibClass 后输入一个句点。 代码完成框将再次打开。选择 acrostic(String[]args) 方法并按 Enter 。 IDE 将填充 acrostic 方法并在提示中显示该方法的参数。 5 、再次按 Ctrl-Space 以打开代码完成框,并选择 args ,然后按 Enter 。 6 、键入一个分号。注意,它将跟在结束括弧的后面,尽管插入点在括弧内。最后一行应该如下所示: String result = LibClass.acrostic(args); 7 、按 Enter 开始一个新行。然后键入 sout 并按空格。 sout 缩写将展开为 System.out.println(""); ,指针位于两个引号之间。在引号中键入 Result = 并在结束引号后键入 + result 。最后一行应该如下所示: System.out.println("Result = " + result); 8 、按 Ctrl-S 保存文件。

Page 19: NetBeans5.0 集成开发环境

19

编译和运行项目编译和运行项目现在我们需要设置主类和执行参数,以便运行项目。我们还将看看 IDE 的清除、构建和 Javadoc 生成功能。

目标目标

1 、右键单击 MyApp 项目节点,选择 Properties ,并在对话框的左窗格中选择 Run 模式。注意,已将主类设置为 acrostic.Main 。 2 、在 Arguments 字段中输入 However we all feel zealous 并单击 OK 。

4.2 Java 的多态

设置主类和执行参数设置主类和执行参数

Page 20: NetBeans5.0 集成开发环境

20

编译和运行项目编译和运行项目1 、从 Run 菜单选择 Run > Run Main Project (F6) 。双击

Output 窗口使它最大化,以便能看到所有的输出。注意,Ant 先构建 MyLib.jar ,然后使用它编译 MyApp 。 最后,它从程序打印输出 Result = Hello (作为参数传递给程序的短语的 acrostic )。

2 、选择 Files 窗口并展开 MyApp 项目文件夹。构建类文件位于 build 文件夹中。 按 F6 再次运行程序。什么新内容也不用编译,程序仍可运行。

4.2 Java 的多态

运行主项目运行主项目

Page 21: NetBeans5.0 集成开发环境

21

编译和运行项目编译和运行项目1 、选择 Build > Clean and Build Main Project (Shift-F11) 。

MyLib 项目和 MyApp 项目的清除和重新都是整个过程的组成部分。 2 、在 Projects 窗口中右键单击 MyLib 项目节点,并选择

Clean Project 。此操作将清除 MyLib 项目

4.2 Java 的多态

清除和构建项目清除和构建项目

构建个别项目构建个别项目1 、在 Projects 窗口中右键单击 MyLib 项目节点。 2 、从上下文菜单选择 Build Project 。

Page 22: NetBeans5.0 集成开发环境

22

编译和运行项目编译和运行项目1 、选择 MyLib 项目。 2 、从 IDE 的主菜单选择 Build > Generate Javadoc for Proj

ect "MyLib" 。 IDE 将在 Output 窗口中显示 Javadoc 输出,此时显示 Javadoc 的 Web 浏览器将打开。

4.2 Java 的多态

生成 生成 JavadocJavadoc

Page 23: NetBeans5.0 集成开发环境

23

测试和调试项目测试和调试项目现在我们将使用 JUnit 为项目创建和运行测试,然后在 IDE 调试器中运行它以检查错误。 目标目标

继承与多态

Graphic{PI,area(),draw()}

1 、右键单击 Projects 窗口中的 LibClass.java 节点,并选择 Tools >Create JUnit Tests (Ctrl-Shift-U) 。单击 OK 使用默认值选项运行命令。 IDE 将在 Test Packages 下创建 org.me.mylib 包和 LibClassTest.java 文件。 2 、在 LibClassTest.java 中,删除 testAcrostic 方法的主体,并键入或粘贴以下内容: System.err.println("Running testAcrostic..."); String result = LibClass.acrostic(new String[] {"fnord", "polly", "tropism"}); assertEquals("Correct value", "foo", result); 3 、按 Ctrl-S 保存文件。

创建 创建 JUnit JUnit 测试 测试

Page 24: NetBeans5.0 集成开发环境

24

测试和调试项目测试和调试项目 继承与多态

1 、选择 MyLib 项目节点并选择 Run > Test "MyLib" (Alt-F6) 。 MyLib (test) 选项卡将在 Output 窗口中打开。编译和运行 JUnit 测试案例。 JUnit 测试结果显示测试通过。

2 、还可以运行单个测试文件,而不是测试整个项目。在 Source Editor 中选择 LibClass.java 选项卡并从 Run 菜单选择 Run > Run File  > Test "LibClass.java" 。

运行 运行 JUnit JUnit 测试测试

Page 25: NetBeans5.0 集成开发环境

25

测试和调试项目测试和调试项目 继承与多态

1 、在 LibClass.java 文件中,转到 acrostic 方法并将插入符号置于 b.append(args[i].charAt(i)); 中的任何位置。 b.append(args[i].charAt(i));. 然后按 Ctrl-F8 设置断点。

2 、选择 Run > Debug Main Project (F5) 。 IDE 将打开 Debugger 窗口并在调试器中运行项目,直到到达断点。 3 、选择 Local Variables 窗口并展开 args 节点。字符串数组包含作为命令参数输入的短语。 4 、单击工具栏中的 Step Into (F7) 对程序进行单步调试,并观察构造的 acrostic 。 当程序到达结尾时,调试器窗口将关闭。

调试项目 调试项目

Page 26: NetBeans5.0 集成开发环境

26

NetBeans5.0NetBeans5.0 集成开发环境集成开发环境

GUI 生成器 (Matisse) NetBeans IDE 5.0 中的 GUI 构建

Page 27: NetBeans5.0 集成开发环境

27

NetBeans IDE 5.0 中的 GUI 构建任务任务

继承与多态

名为 ContactEditor 的应用程序创建图形用户界面 (GUI) 。布置一个 GUI 前端,使用该前端可以查看和编辑员工数据库中所包含的个人联系信息。

Page 28: NetBeans5.0 集成开发环境

28

NetBeans IDE 5.0 中的 GUI 构建目标目标

继承与多态

在本教程中,您将学会如何: 使用 GUI Builder 界面 创建 GUI 容器 添加组件 调整组件大小 对齐组件 调整组件锚定 设置组件自动调整大小行为 编辑组件属性 NetBeans 的新 GUI Builder 消除了构建 GUI 的困难,允许简单地将组件置于需要它们的位置来布置窗体。

Page 29: NetBeans5.0 集成开发环境

29

NetBeans IDE 5.0 中的 GUI 构建创建项目创建项目 继承与多态IDE 项目由一组 Java 源文件和与其关联的元数据构成,它包括特定于项目的属性文件、控制构建和运行设置的 Ant 构建脚本和将 Ant 目标映射为 IDE 命令的 project.xml 文件。 Java 应用程序往往由多个 IDE 项目组成,为了简单起见,我们将构建一个全部存储在单个项目中的简单应用程序。 1. 选择 File > New Project 。或单击 IDE 工具栏中的 New Proj

ect 图标。 2. 在 Categories 窗格中,选择 General 节点,在 Projects 窗格中,选择 Java Application 。单击 Next 。 3. 在 Project Name 字段中输入 ContactEditor 并指定项目位置。 4.确保选中 Set as Main Project 复选框,如果已选中 Create Main Class ,则取消选中它。 5. 单击 Finish 。

Page 30: NetBeans5.0 集成开发环境

30

NetBeans IDE 5.0 中的 GUI 构建创建创建 GUI GUI 容器 容器 继承与多态创建一个 Java 容器,在其中放置其他必需的 GUI 组件。我们将使用 JFrame 组件构建容器,并将容器置于新包中。 1. 在 Projects 窗口中,右键单击 ContactEditor 节点并选择 N

ew > JFrame Form 。 2. 输入 ContactEditorUI 作为 Class Name 。

3. 输入 my.contacteditor 作为包。 4. 单击 Finish 。

IDE 在 ContactEditorUI.java 应用程序中创建 ContactEditorUI 窗体和 ContactEditorUI 类,并从 GUI Builder 打开 ContactEditorUI 窗体。注意, my.contacteditor 包将替换默认包。

Page 31: NetBeans5.0 集成开发环境

31

熟悉 熟悉 GUI BuilderGUI Builder NetBeans IDE 5.0 中的 GUI 构建

设计区域

Inspector(检查器)

Palette(调板)

属性窗口

Page 32: NetBeans5.0 集成开发环境

32

熟悉 熟悉 GUI BuilderGUI Builder NetBeans IDE 5.0 中的 GUI 构建设计区域。用于创建和编辑 Java GUI 窗体的 GUI Builder 的主窗口。工具栏的 Source and Design 切换按钮允许查看类的源代码或其 GUI 组件的图形视图。其他工具栏按钮提供常见命令的便捷访问,如在 Selection and Connection 模式之间选择、对齐组件、设置组件自动调整大小行为,以及预览窗体。 Inspector (检查器)。按照树层次结构提供应用程序中所有组件(可视的和非可视的)的表示形式。 Palette (调板)。可自定义的可用组件的列表,包含 JFC/Swing 、 AWT and JavaBeans 组件的选项卡,以及布局管理器。此外,可以使用 Customizer 创建、移除和重排 Palette 中显示的类别。 属性窗口。显示在 GUI Builder 、 Inspector 窗口、 Projects 窗口或 Files 窗口中当前选择的组件的属性。

Page 33: NetBeans5.0 集成开发环境

33

主要特征主要特征 NetBeans IDE 5.0 中的 GUI 构建自由设计 :在 IDE 的 GUI Builder 中,可以通过将组件简单地置于需要的位置来构建窗体, GUI Builder 可以断定需要的布局管理器,然后自动生成代码。自动组件定位(抓取) :向窗体添加组件时, GUI Builder 将提供可视化反馈,帮助根据操作系统的外观定位组件。可视化反馈 :GUI Builder 还提供关于组件锚定和链接关系的可视化反馈。这些指示符可以让您快速识别对 GUI 的显示方式和运行时行为有影响的各种定位关系和组件固定行为。布置窗体时, GUI Builder 将提供可视化准线,给出最佳间距和组件对齐建议。在后台, GUI Builder 将设计决策转换为可用的 UI ,这种 UI 是使用新 GroupLayout layout 管理器及其他 Swing 构造实现的。因为它使用动态布局模型,所以使用 GUI Builder 构建 GUI 的行为在运行时根据需要进行,能通过调整以适应任何更改,而不改变已定义组件之间关系。

Page 34: NetBeans5.0 集成开发环境

34

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

添加 Jpanel :1. 在 Palette 窗口中,通过单击和释放鼠标按键从 Swing 类别选择 JPanel 组件。 2. 将指针移动到 GUI Builder 中窗体的左上角。当组件位置接近容器的左上边缘时,水平和垂直对齐准线将出现,指示较佳的边距。在窗体中单击,将 JPanel 置于此位置。 JPanel 组件在 ContactEditorUI 窗体中以橙色突出显示的方式表示被选中,释放鼠标按键后,显示组件锚定关系的小型指示器出现,同时在 Inspector 窗口中显示相应的 JPanel 节点。

添加两个允许使用有标题边框来群集化 UI 组件的 Jpanel 。

调整 Jpanel 大小 :在 JPanel 边缘上的缩放柄上单击并保持,然后拖动直到窗体边缘附近的虚线对齐准线出现。释放缩放柄以调整组件的大小。

Page 35: NetBeans5.0 集成开发环境

35

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

1. 选择 GUI Builder 中上面的 Jpanel 。 2. 在 Properties 窗口,单击 Border 属性旁边的省略号按钮 (...)。在显示的 Jpanel 的 Border 编辑器中,选择 Available Borders 窗格中的 TitledBorder 节点。 3. 在下面的 Properties 窗格中,为 Title 属性输入 Name 。 4. 单击 Font 属性旁边的省略号 (...),为 Font Style 选择 Bold ,并为 Size 输入 12 。单击 OK 退出对话框。 5. 选择下面的 JPanel 并重复执行步骤 2 到 5 ,但是通过右键单击 JPanel 并使用弹出菜单来访问 Properties 窗口。为 Title 属性输入 E-mail 。

添加第二个 Jpanel 后,调整其大小,使其充满窗体的剩余垂直空间。向 Jpanel 添加标题边框:

Page 36: NetBeans5.0 集成开发环境

36

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

1. 向窗体添加 JLabel : (1)在 Palette 窗口中,从 Swing 类别选择 JLabel 组件。 将指针移动到我们以前添加的 Name JPanel 之上。当准线出现,指示将 JLabel 置于 JPanel 的左上角,同时在左上边缘留下较小边距时,单击以放置标签。 将 JLabel 添加到窗体,将表示组件的相应节点添加到 Inspector 窗口。(2)编辑 Jlabel 的显示文本: 双击 JLabel 选择其显示文本。键入 First Name:: 并按 Enter 键。 此时将显示 Jlabel 的新名称,并且组件的宽度随编辑的结果调整。2.向窗体添加 JTextField : 在 Palette 窗口中,选择 JTextField 组件。移动指针,使其紧靠 First Name: Jlabel 的右边。当水平准线出现,并使用垂直基线建议两个组件之间的间距时,单击放置 JtextField 。

向窗体添加个别组件:

Page 37: NetBeans5.0 集成开发环境

37

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

3. 在刚才添加的组件的右边紧挨着添加其他 JLabel and JtextField ,如下图所示。这一次输入 Last Name: 作为 Jlabel 的显示文本,并暂时让 JtextField 的占位符文本保持原样。

向窗体添加个别组件:

向窗体添加多个组件: 按住 Shift 键选取和放下组件 .按住 Shift 键不要松开,立即单击将另一个 JLabel 放在第一个的右边。确保在放置第二个 Jlabel 前释放 Shift 键。如果忘记在放置最后一个 JLabel 前释放 Shift 键,则请按 Esc 键。插入组件:

Page 38: NetBeans5.0 集成开发环境

38

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

1. 在右边窗体中选择 First Name: and Title: Jlabel 。 2. 单击工具栏中 Column 按钮中的 Align Right ( )。或者,右键单击弹出菜单的 Column 中的任何一个并选择 Align > Right 。 3.再为 Last Name: and Nickname: Jlabel 重复此步骤。 Jlabel 的位置将改变,以便对齐其显示文本的右边缘。锚定关系将更新,以指示组件已分组。

对齐组件:对齐 Jlabel 的两个列,以便其右边缘在一条直线上。

设置组件的调整大小行为:按住 Ctrl 键单击两个插入的 JTextField 组件 ,右键单击它们中的任意一个选择 Auto Resizing > Horizontal 。 JTextField

s 将被设置为在运行时水平调整大小。对齐准线和锚定指示器将被更新,从而提供组件关系的可视化反馈。

Page 39: NetBeans5.0 集成开发环境

39

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

1. 按住 Ctrl 键单击窗体中的全部四个 JtextField 以选中它们。 2. 右键单击它们中的任意一个并从弹出菜单选择 Set Default Size 。 所有这些 JtextField 将被设置为相同的宽度,并且指示器将被添加到每个 JtextField 的顶部边缘,提供组件关系的可视化反馈。

将组件设置为相同大小:。

添加 E-Mail 面板中的组件只要向窗体添加组件, IDE 就使用准线建议目标外观的首选位置。放置后,新组件还将被锚定到最近的容器边缘或组件,以便在运行时维护组件关系。

Page 40: NetBeans5.0 集成开发环境

40

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建

1. 在 Palette 窗口中,从 Swing 类别选择 JList 组件。 2. 移动指针,使其紧靠刚才添加的 E-mail Address Jlabel 的下边。当准线出现,指示将 Jlist 的左上边缘沿 Jpanel 的左边缘和上面的 Jlabel 与首选边距对齐时,单击以放置 Jlist 。 3. 将 Jlist 的右缩放柄拖到封闭的 JPanel 的右边,直到建议对齐准线出现为止。 JList 将进入对齐准线指定的位置,并在 Inspector 窗口中显示其相应节点。

添加将显示 ContactEditor 的整个联系人列表的 Jlist 。

添加、对齐和编辑多个按钮的显示文本 1. 在 Palette 窗口中,选择 JButton 组件。 2. 在下面的 Jpanel 中,将 JButton 移动到 E-mail Address JTextField 的右边缘。当准线出现,按住 Shift 键单击以沿 Jframe 的右边缘放置第一个按钮。释放鼠标按键时, JtextField 的宽度将收缩以适应 Jbutton 。

Page 41: NetBeans5.0 集成开发环境

41

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建添加、对齐和编辑多个按钮的显示文本 3. 将指针移动到下面的 JPanel 中的 JList 的右上角。当准线出现,指示将 JButton 的右上边缘与 JList 对齐时,按住 Shift 键单击以沿 Jframe 的右边缘放置第二个按钮。 4. 在刚才添加的两个 Jbutton 的下边添加两个其他 Jbutton 创建一个列。确保使用建议的间距一致地放置 Jbutton 。5.双击每个 Jbutton ,为它们的每个名称输入文本。分别为 Add/Edit/Remove/As Default 。 JButton 组件将进入对齐准线所指定的位置。按钮的宽度将更改以适应新名称。6. 将组件设置为相同大小 : 通过按住 Ctrl 键单击选择全部四个 Jbutton 。右键单击其中之一,并从弹出菜单选择 Same Size > Same Width 。

Page 42: NetBeans5.0 集成开发环境

42

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建缩进 :

1. 将名为 Mail Format 的 JLabel 添加到 Jlist 下的窗体。确保该标签与上面的 JList 左对齐。 2. 选择 JRadioButton 组件。将指针移动到我们刚才添加的 JLabel 之下。当准线出现,指示将 JradioButton 的左边缘与 Jlabel 对齐时,轻轻向右移动 JRadioButton 直到二级缩进准线出现为止。按住 Shift 键单击3. 将指针移动到第一个 JradioButton 的右边。按住 Shift 键单击放置第二个和第三个 JradioButton ,4.双击每个 JRadioButton ,为它们的每个名称输入所需的文本。5.分别为三个单选按钮命名为 HTML/Plain Text/Custom 。 至此,已将三个 JradioButton 添加到窗体并在 Mail Format Jlabel 下进行了缩进。

Page 43: NetBeans5.0 集成开发环境

43

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建将 JradioButton 添加到 ButtonGroup

1. 在 Palette 窗口中,从 Swing 类别中选择 ButtonGroup 组件。 2. 在 GUI Builder 设计区域的任意位置单击,以将 ButtonGroup 组件添加到窗体。注意, ButtonGroup 中窗体中不显示,但在 Inspector 的 Other Component 区域是可见的。 3. 选择窗体中的全部三个 JradioButton 。 4. 在 Properties 窗口中,从 buttonGroup 属性组合框选择 buttonGroup1 。

Page 44: NetBeans5.0 集成开发环境

44

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建添加和编辑按钮的显示文本 1. 向下拖动 JFrame 的下边缘。这将在 JFrame 的边缘和 JPanel 的边缘之间留出 OK 和 Cancel 按钮的空间。 2. 选择 JButton 组件。将指针移动到电子邮件 JLabel 之下的窗体上。当准线出现,指示将 Jbutton 的右边缘与下面的 Jframe 的右下角对齐时,单击以放置按钮。 3. 将另一个 JButton 添加到第一个的左边,确保沿 Jframe 的下边缘使用建议的间距放置它。。 4.双击每个 JButton 选择其显示文本。分别为 OK/Cancel 。5. 将两个 Jbutton 设置为相同的大小,方法是选择这两个按钮,右键单击任意一个并从弹出菜单选择 Same Size > Same Width 。

Page 45: NetBeans5.0 集成开发环境

45

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建是删除各个组件中的占位符文本。 注意,在大致完成窗体时,移除占位符文本是一种避免产生组件对齐和锚定关系问题的有用技巧,大多数开发人员通常在布置窗体的过程中移除此文本。 ComboBox 和 JList 中的占位符项目留到以后的教程中介绍。 预览 GUI 。 单击 GUI Builder 工具栏中的 Preview Form 按钮 ( ) 在运行时预览窗体。窗体将在它自己的窗口中打开,允许在构建和运行前先测试它。

Page 46: NetBeans5.0 集成开发环境

46

部署 GUI 应用程序 NetBeans IDE 5.0 中的 GUI 构建因为 NetBeans 5.0 GUI Builder 依赖于 Swing Layout Extensions 库,您可以在系统的以下位置找到 Swing Layout Extensions 库的 JAR 文件: NetBeans_installation_folder/ide6/modules/ext/swing-layout-installed_version.jar 分发和运行独立的 GUI 应用程序 要确保 GUI 应用程序将在运行时自动使用 Swing Layout Extensions 库,构建项目时, IDE 自动将 JAR(及项目类路径上的所有其他 JAR 文件)复制到 dist/lib 文件夹。 IDE 还将每个 JAR 文件添加到 Class-Path 元素(即应用程序 JAR 文件的 manifest.mf 文件)中。

Page 47: NetBeans5.0 集成开发环境

47

添加组件:基础添加组件:基础 NetBeans IDE 5.0 中的 GUI 构建准备将 GUI 应用程序分发到 IDE 之外的步骤: 1. 将项目的 dist 文件夹(包括 lib 文件夹)压缩为 ZIP 归档文件。 2. 从命令行运行独立 GUI 应用程序的步骤:导航到项目的 dist 文件夹。 键入以下内容: java -jar <jar_name>.jar Build Main Project(F11)compile:Created dir: E:\myjava\ContactEditor\distBuilding jar: E:\myjava\ContactEditor\dist\ContactEditor.jarTo run this application from the command line without Ant,

try:java -jar "E:\myjava\ContactEditor\dist\ContactEditor.jar"

Page 48: NetBeans5.0 集成开发环境

48

4.3 4.3 抽象类与接口抽象类与接口例例 4.2.1 GraphicDemo.java4.2.1 GraphicDemo.java

继承与多态

abstract class Graphic{ public static final double PI=3.1425926; double area(){return 0; }; abstract void draw();}class Point extends Graphic{ protected double x,y; public Point(double x,double y){ this.x=x;this.y=y; } void draw(){ System.out.println("Draw a point at"+toString()); }public String toString(){ return"("+x+","+y+")";} }

Page 49: NetBeans5.0 集成开发环境

49

4.3 4.3 抽象类与接口抽象类与接口 继承与多态class Circle extends Graphic{ protected Point o; protected double r; public Circle(Point o,double r){ this.o=o;this.r=r; } double area(){ return PI*r*r; }void draw(){System.out.println("Draw a circle at"+o.toString()+"and r="+r);}}public class GraphicDemo{ public static void main(String []args){

Graphic []g=new Graphic[3];g[0]=new Point(10,10);g[1]=new Line(new Point(10,10),new Point(20,30));g[2]=new Circle(new Point(10,10),4);for(int i=0;i<g.length;i++){g[i].draw();System.out.println("Area="+g[i].area());

} } }

Page 50: NetBeans5.0 集成开发环境

50

4.3 4.3 抽象类与接口抽象类与接口例例 4.2.1 GraphicDemo.java4.2.1 GraphicDemo.java

继承与多态

子类对象可以被视为其父类的一个对象 父类对象不能被当做是其某一子类的对象可以将子类对象传递给父类对象父类引用可以转换为子类的引用

Page 51: NetBeans5.0 集成开发环境

51

4.3 4.3 抽象类与接口抽象类与接口注意:注意:

继承与多态

抽象类不能被实例化,即不能用 new 关键字产生抽象类的对象。 抽象方法只需声明,不需实现。含有抽象方法的类必须声明为抽象类。抽象类的子类必需覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。Abstract 和 final修饰符不能同时出现在类的声明中。

Page 52: NetBeans5.0 集成开发环境

52

4.3 4.3 抽象类与接口抽象类与接口接口接口

继承与多态

如果抽象类中所有的方法都是抽象的,可以将这个类定义成接口,接口是抽象方法和常量值的定义的集合,从本质上讲接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。其定义如下:[public] interface 接口名 [extends 父接口名列表 ] // 接口声明{// 接口体……}

Page 53: NetBeans5.0 集成开发环境

53

4.3 4.3 抽象类与接口抽象类与接口 例例继承与多态

public interface Runner{int ID=1;void run();

}interface Animal extends Runner{

void breathe();}interface Flyer{ void fly();}interface Animal1 extends Runer,Flayer{void Swimming();}

定义接口

接口可以继承

接口可以多继承

Page 54: NetBeans5.0 集成开发环境

54

4.3 4.3 抽象类与接口抽象类与接口小结小结

继承与多态

接口中的方法不能有实现。( void run(){}// 错误)接口可以多继承。子接口也可以对父接口的方法和变量进行覆盖。接口中的方法隐式声明为 public 和 abstract 。接口中的变量隐式声明为 public 、 static 和 final 。即常量接口不存在构建器。利用接口 interface 可以实现多继承,而且能避免多继承的缺点,因为接口没有任何实现所以不存在危险性。

定义接口

Page 55: NetBeans5.0 集成开发环境

55

4.3 4.3 抽象类与接口抽象类与接口 接口实现接口实现 继承与多态

某个类为接口中的抽象方法书写语句并定义实在的方法体,称为实现这个接口,使用 implements 关键字。 class Fish implements Animal{ public void run(){ System.out.println("fish is Swimming"); } public void breathe(){ System.out.println("fish is bubbling"); } }abstract LandAnimal implements Animal{

public void breathe(){ System.out.println("fish is bubbling"); } }

重新定义接口中所有的方法定义了接口中的部分方法,仍然是一个抽象类

Page 56: NetBeans5.0 集成开发环境

56

4.3 4.3 抽象类与接口抽象类与接口 接口实现接口实现 继承与多态

class Bird implements Runner,Flyer{public void run(){System.out.println("bird is running");}

public void fly(){ System.out.println("bird is flying"); } }

一个类可以实现多个接口

Page 57: NetBeans5.0 集成开发环境

57

4.3 4.3 抽象类与接口抽象类与接口 接口实现接口实现 继承与多态

public class TestInterface{public static void main(String []args){

Fish f=new Fish();// LandAnimal l=new LandAnimal();// 错误

int j=0;j=Runner.ID;//正确, " 类名 .静态成员 "j=f.ID;//正确 ," 对象名 .静态成员 ",继承来的

// f.ID=2;// 出错,不能为 final 成员重新赋值 f.run(); f.breathe();

}}

主类定义

Page 58: NetBeans5.0 集成开发环境

58

4.3 4.3 抽象类与接口抽象类与接口 继承与多态小结小结实现一个接口就要实现该接口的所有方法(抽象类除外)类在实现方法时,必须显式使用 public修饰符。接口中的方法都是抽象的。多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。抽象类中可以定义方法并赋予默认行为,接口中不能。抽象类中增加一个方法并赋予其默认行为,并不一定要修改抽象类的继承类,而接口一旦修改,所有实现接口的类都被破坏。

与抽象类的区别与抽象类的区别

Page 59: NetBeans5.0 集成开发环境

59

4.3 4.3 抽象类与接口抽象类与接口 继承与多态实例应用实例应用 如:在图形界面程序中使用的:在图形界面程序中使用的 ActionListenerActionListener 就是系统就是系统定义的接口。它代表了监听并处理动作事件的功能,其中包定义的接口。它代表了监听并处理动作事件的功能,其中包括了一个抽象方法:括了一个抽象方法: public void actionPerformed(ActionEvent e)public void actionPerformed(ActionEvent e) 所有希望能够处理动作事件的类都必须具有所有希望能够处理动作事件的类都必须具有 ActionListeActionListenerner 接口定义的功能。因为接口中的方法都是没有方法体的抽接口定义的功能。因为接口中的方法都是没有方法体的抽象方法象方法。。

例例 4-84-8 (( ImplementActionListener.javImplementActionListener.java)a)

Page 60: NetBeans5.0 集成开发环境

60

public class ImplementActionListener extends Applet implements ActionListener

{ TextField password=new TextField(“我是密码” ) ; Button btn=new Button(“隐藏” ); public void init() { add(password); add(btn); btn.addActionListener(this); }public void actionPerformed(ActionEvent e){ password.setEchoChar(“*”); password.selectAll();}}

4.3 4.3 抽象类与接口抽象类与接口 继承与多态

实现 ActionListener 接口

重新定义 actionPerformed() 方法

Page 61: NetBeans5.0 集成开发环境

61

4.3 4.3 抽象类与接口抽象类与接口 继承与多态

实例应用实例应用public abstract interface ActionListener extends EventListener

{ public void actionPerformed(ActionEvent e); }

ActionListener 的父接口

缺省的 abstract 方法

Page 62: NetBeans5.0 集成开发环境

62

4.4 包Java 通过引入包 (package)机制,提供类的多层类命名空间,解决类的存放和管理问题。包是一种松散的类的集合,通常把需要在一起工作的类放在一个包中。缺省情况下,系统会为每一个 .java 源文件创建一个无名包,该 java 文件中定义的所有类都属于这个无名包,不能被其他包中的类引用。

何为包何为包 继承与多态

Page 63: NetBeans5.0 集成开发环境

63

4.5 包创建有名包: 创建有名包: package package 包名包名 实际上创建包就是在当前文件夹下创建一个实际上创建包就是在当前文件夹下创建一个子文件夹,以便包含存放在这个包中包含的所有类子文件夹,以便包含存放在这个包中包含的所有类的的 .class.class 文件。 例文件。 例 P89P89

创建包创建包 继承与多态

package edu;//package edu;// 当前文件夹下创建一个文件夹,以便存放当前文件夹下创建一个文件夹,以便存放这个包中包含的所有类的这个包中包含的所有类的 .class.class 文件文件package package edu.jmdxedu.jmdx;//;// 当前文件夹下创建了两个文件夹当前文件夹下创建了两个文件夹。。eduedu

jmdx // 当前包中的所有类存于此文件夹

Page 64: NetBeans5.0 集成开发环境

64

4.5 包 例例 继承与多态

package edu.jmdx;public class Testpackage{

public static void main(String args[]){new Test().print();}

}class Test{

public void print(){System.out.println("useing packageprogram");}

} 形成的字节码文件

Page 65: NetBeans5.0 集成开发环境

65

E:\myclass\ch04E:\myclass\ch04 目录下执行:目录下执行: java edu.jmdx.Testpackagejava edu.jmdx.Testpackage使用包名、类名前缀。在当前目录下创建使用包名、类名前缀。在当前目录下创建 Test1.javaTest1.java 文件文件

包的引用包的引用

继承与多态在命令行方式,使用 java Testpackage ,执行时会出错?

package edu.jmdx;public class Test1{

public void print(){System.out.println("useing packageprogram");}

}

Page 66: NetBeans5.0 集成开发环境

66

在当前目录下创建在当前目录下创建 Testpackage1.javaTestpackage1.java执行:执行: java Testpackage1java Testpackage1

包的引用包的引用 继承与多态

public class Testpackage1{public static void main(String args[]){ new edu.jmdx.Test1().print();}

}加载需要使用的类或包(加载需要使用的类或包( importimport ),将),将 Testpackage.javaTestpackage.java修修改改import edu.jmdx.Test;// 或 import edu.jmdx.*; public class Testpackage1{

public static void main(String args[]){ new Test1().print();}

}

Page 67: NetBeans5.0 集成开发环境

67

当前目录当前目录系统环境变量系统环境变量 classpathclasspath 指定的目录,称为类路径指定的目录,称为类路径JDKJDK的运行库的运行库 rt.jar(JDKrt.jar(JDK 安装目录的安装目录的 jre\libjre\lib 中中

包的引用包的引用 继承与多态编译器在编译时,会自动在以下位置查找需要用到的类文件

在命令行方式,常用命令。classpath:classpath: 指明所有缺省的类字节码文件路径 指明所有缺省的类字节码文件路径 set classpath set classpath 显示当前字节码路径显示当前字节码路径set classpath=%classpath%;E:\myclass\ch04;set classpath=%classpath%;E:\myclass\ch04; 添加字节码路径添加字节码路径javac –d . Testpackage.java javac –d . Testpackage.java 改变改变生成的字节码的路径。生成的字节码的路径。javac -classpath .;e:\myjava Testpackage.javajavac -classpath .;e:\myjava Testpackage.java //// 指定类文件指定类文件的搜索路径的搜索路径

Page 68: NetBeans5.0 集成开发环境

68

包的小结包的小结 继承与多态包 (package)是一组相关类和接口的集合 ,通常称为类库,使用类的多层类命名空间,解决类的存放和管理问题。同一个包中的类在缺省情况下可以互相访问,使用包可以有利于实现不同程序间的复用。 说明为 public 的类、方法才可以在其它包中被访问。此时要使用类的完整名称 ,或使用 import引入 . 若类和方法被说明为 protected ,则其它包中只有它的子类才可以访问它们。缺省情况下,系统会为每一个 .java 源文件创建一个无名包,该 java文件中定义的所有类都属于这个无名包。Classpath 设置一定是指向顶层包名所对应的父目录 ,( 如 E:\myjava),而不是指向 .class文件所在的目录,注意( .class )文件的搜索路径。

Page 69: NetBeans5.0 集成开发环境

69

JavaJava 工具包的层次结构工具包的层次结构

前三种包为 java 的基础包,后三种包称为应用包。

java

java.iojava.lang

java.utiljava.appletjava.awt

java.swing

java.lang.mathjava.lang.system

包 类Java常见系统包

包含能提供多种 I/O 功能的类

包含一些实用工具类,时间、日历,散列表、堆栈、可变数组等

包含抽象窗口工具集的类,用语GUI 编程

包含 applet运行所需的一些类

抽象图形用户接口包,增强 AWT

Page 70: NetBeans5.0 集成开发环境

70Thread类:提供对多线程的支持

Math类:提供象 PI和 E这样的数学函数及各种函数

基本数据类型类:支持数字类型的转换和字符串操作Class类:为运行时搜索的信息,如对 instanceof 操作符的支持

System: 提供对操作系统的访问Runtime类::提供对操作系统的访问,使应用程序与环境协调

Object类:类库中所有类的父类

每个 java 类都隐含语句 import java.lang.*; 简单实现了 java 程序的运行平台。

6 java基本可重用类Java.langJava.lang 包包

Page 71: NetBeans5.0 集成开发环境

71

两个属性: MAX_VALUE 域和 MIN_VALUE规定了 int 类型量的最大值和最小值

其它数据类型中的方法及作用 与 Integer 类中的方法相近

构造方法: public Integer(int value)和 public Integer(String s)类型转换: public int intValue() public long longValue() public double doubleValue()

数据类型类数据类型类◆提供了用来操作和处理它对应的基本数据类型量如: Integer 类:

6.1 Java6.1 Java 语言包语言包

Page 72: NetBeans5.0 集成开发环境

72

类型转换:字符串与类型转换:字符串与 intint 量的相互转换方法量的相互转换方法public String toString()//public String toString()// 当前当前 IntegerInteger 对象对应的对象对应的 intint 量量 转化成字符串转化成字符串public static int parseInt(String s)//public static int parseInt(String s)// 类的方法,将类的方法,将 字符串转化成字符串转化成 intint 量量 如:如: int I=Integer.parseInt(“123”);int I=Integer.parseInt(“123”);public static Integer ValueOf(String s)//public static Integer ValueOf(String s)// 类的方法,类的方法, 将字符串转化成将字符串转化成 IntegerInteger对象对象 int I=Integer.valueOf(“123”).intValue();//int I=Integer.valueOf(“123”).intValue();// 作用与作用与上一个完全相同,处理过程中生成一个临时的上一个完全相同,处理过程中生成一个临时的 IntegerInteger对象对象Float f=Float.valueOf(“12.4”).floatValue();//Float f=Float.valueOf(“12.4”).floatValue();// 将“将“ 12.4”12.4”转化为 浮点数转化为 浮点数 12.3,12.3,必须这样做必须这样做

数据类型类数据类型类 6.1 Java6.1 Java 语言包语言包

类的方法 对象的方法

Page 73: NetBeans5.0 集成开发环境

73

完成一些常用的数学运算,提供了实现实现标准数学函数的方法,这些方法都是 static的类方法。

◆主要属性和方法:见主要属性和方法:见 P126P126页页

MathMath 类类

int i=9,j=7,k;

k=Math.max(i,j);

int i=(int)(Math.random()*10)+1;//求 1~10之间的随机数

6.1 Java6.1 Java 语言包语言包

Page 74: NetBeans5.0 集成开发环境

74

提供了标准输入输出、运行时的系统信息等重要工具,这些方法都是 static的类方法。不能实例化◆用用 SystemSystem 类获取标准输入输出类获取标准输入输出属性:属性: public static PrintStream err;public static PrintStream err; public static InputStream in;public static InputStream in; public static PrintStream out;public static PrintStream out;

SystemSystem 类类

char c=System.in.read();

System.out.println(“Hello!Guys,”);

6.1 Java6.1 Java 语言包语言包

Page 75: NetBeans5.0 集成开发环境

75

提供了用来与运行 java系统进行交互操作的方法。◆用用 SystemSystem 类的方法获取系统信息,完成系统操作类的方法获取系统信息,完成系统操作

SystemSystem 类类

public static long currentTimeMillis();//获取当前时刻的微秒数public static void exit(int status);//退出运行状态,并被状态信息返回给虚拟机的操作系统。如: System.exit(0);

public static void gc();// 强制调用 java虚拟机的垃圾回收功能。

6.1 Java6.1 Java 语言包语言包

Page 76: NetBeans5.0 集成开发环境

76

Java.lang 提供了两种字符串类: String和 StringBuffer类

◆用于创建静态字符串(创建字符串常量)用于创建静态字符串(创建字符串常量)

字符串类字符串类

String s="Hello! " ; // 使用字符串常量自动创建 String 实例。String s= new String(String s) 通过 String 对象或字符串常量传递给构造方法。如: String s=new String(“ABC”);

public String(char value[]) 将整个字符数组赋给 String 构造方法。public String(char value[],int offset,int count) 将字符数组一部分赋给 String 构造方法, offset 为起始下标, count 为子数组长度。

String类

6.1 Java6.1 Java 语言包语言包

Page 77: NetBeans5.0 集成开发环境

77

◆字符串常量的操作字符串常量的操作 字符串类字符串类

public int length(); // 返回字符串的长度。 String s=“Hello!”;System.out.println(s.lenth());//输出 6 (一个字符 16bit,Unicode)String s=“你好” ;System.out.println(s.lenth());//输出 2public char charAt(int index) ;// 返回字符串位置 index处的字符。

String类

Page 78: NetBeans5.0 集成开发环境

78

◆比较两个字符串比较两个字符串 字符串类字符串类public boolean equals(Object o) ;//比较两个字符串对象,相等返回 true ,反之,返回 false 。public int compareTo(String s); // 比较两个字符串字典顺序,相等返回 0 , s 大于当前串返回一个负值,反之返回一个正值。Public boolean equalsIgnoreCase(String s);// 不计字母大小写

String类

String s1=“Hello!Word”,s2=“hello! Word”;boolean b1=s1.equals(s2); boolean b1=s1.equalsIgnoreCase(s2);String s=“abc”,s1=“aab”,s2=“abd”,s3=“abc”;int i,j,k;i=s.compareTo(s1); j=s.compareTo(s2); k=s.compareTo(s3);

i,j,k 分别为 1,-1,0

Page 79: NetBeans5.0 集成开发环境

79

◆ 判断字符串的前缀和后缀判断字符串的前缀和后缀 字符串类字符串类

public boolean startsWith(String prefix) ;// 从当前字符串的起始位置开始寻找字符串 prefix 。如发现匹配,返回 true ,否则,返回 false 。public boolean endsWith(String suffix) ;//如当前字符串的结尾子串与 suffix匹配,返回 true ,否则,返回 false 。

String类

设 String 对象 s 是居民身份证号 if(s.endsWith(“0”)||s.endsWith(“2”)||s. endsWith(“4”)||s.endsWith(“6”)||s.endsWith(“8”)){System.out.println(“女性“) ;}

Page 80: NetBeans5.0 集成开发环境

80

◆ 字符串的查找字符串的查找 字符串类字符串类public int indexOf(String str) ;// 在当前字符串中寻找与 str匹配的子串,返回首次匹配的起始下标值,无匹配返回 -1 。public String substring(int beginIndex,int endIndex) 在当前字符串中,求从起始位置 beginIndex 到结束位置 endIndex 的子串。public int indexOf(int ch);// 查找 ch 第一次出现的位置public int indexOf(int ch,int fromIndex);// 自 fromIndex 向后找

String类

String s=“Java,JavaScript”{int i=-1;do{i=s.indexOf((int )’a’,i+1);System.out.print(i+”\t”); }while(i!=-1)

运行结果: 1 3 6 8 -1

Page 81: NetBeans5.0 集成开发环境

81

◆ 连接字符串,字符串转换连接字符串,字符串转换 字符串类字符串类public String concat(String str);// 将当前字符串与 str连接,返回连接后的字符串。public String toLowertCase() 将当前字符串全转换为小写形式。public String toUpperCase() ; 将当前字符串全转换为大写形式public Char toCharArray() ;// 将当前字符串转换为字符数组。public Static String valueOf(type variable) ;//把 variable转换为字符串。

String类

String s=“Hello!”;System.out.print(s.concat(“Word”));}

Page 82: NetBeans5.0 集成开发环境

82

◆ 创建字符串变量——创建字符串变量—— StringBufferStringBuffer 对象对象

字符串类字符串类

public StringBuffer();// 创建一个空的 StringBuffer 对象public StringBuffer(int lenth);// 创建长度为 lenth 的 StringBuffer 对象 。public StringBuffer(String str);// 用 String 对象初始化

StringBuffer类类

StringBuffer Mystr1=new StringBuffer();StringBuffer Mystr2=new StringBuffer(5);StringBuffer Mystr3=new StringBuffer(“Hello!”);

StringBuffer 类的每个对象都是可以扩充和修改的字符串常量

Page 83: NetBeans5.0 集成开发环境

83

◆ 字符串变量的扩充、修改与操作字符串变量的扩充、修改与操作 字符串类字符串类

public StringBuffer append( 参数对象类型 参数对象名 );// 将指定的参数对象转化成字符串,附加在原对象之后。public StringBuffer insert(int 插入位置,参数对象类型 参数对象名) ;// 在指定位置插入字符串。Public void setCharAt(int index,char ch);//替换指定位置的字符

StringBuffer类类

StringBuffer Mystr1=new StringBuffer();Mystr1=append(“Hello,Guys!”);System.out.println(Mystr1.toString());Mystr1=insert(6,30);System.out.println(Mystr1.toString());//输出 Hello,30 Guys!

Page 84: NetBeans5.0 集成开发环境

84

◆ 字符串其它方法字符串其它方法 字符串类字符串类

public int length();//返回缓冲区的字符数public int capacity();//返回缓冲区剩余空间public synchronized String toString();// 把 StringBuffer转换为字符串 String.

StringBuffer类类

String Mystr=“Hello,”;Mystr=Mystr+”Guys!”;

◆ 字符串赋值与加法字符串赋值与加法

Page 85: NetBeans5.0 集成开发环境

85

小结与作业小结与作业

思考题 : P92 4.1 、 4.2

作业: 4.3

实验:例题与习题:项目单 5

本章围绕继承和重载两大特色,介绍了面向对象程序设计的一些较深入的问题:继承 、实现、包域和方法的继承与隐藏多态

Page 86: NetBeans5.0 集成开发环境

86

-SL275 The has a Relationship

◆ 变量和方法有 4种访问级别: public , protected,private,default类有 public 和 default 两种访问级别。如果没有显示的修饰符则变量、方法、类有缺省的访问权限,允许同一个包中类的任何方法访问它们,称为包内朋友◆ Protected 比缺省的更加放松,还允许处于不同包中的子类的方法访问