目录 1
第一章Visual J++98与Internet 1
1.1什么是Java 1
1.2什么是Visual J++98 2
1.3 Java的特点及其在Internet上的应用 2
1.3.1Java语言的特点 3
1.3.2Java Applet的特点 4
1.3.3Java具有丰富的类库 4
1.3.4Java与C/C++的比较 4
1.3.5Java的工作过程 6
1.4 Java Application与Java Applet 8
1.5小结 8
第二章用Visual J++98建立一个应用程序界面 10
2.1安装Visual J++98 10
2.1.1对系统的要求 10
2.1.2开始安装 10
2.1.3安装选项 10
2.1.4安装MSDN 10
2.3关于Project Workspace(项目工作区)窗口 11
2.2启动Microsoft Visual Studio 11
2.3.1 Project Explorer 12
2.3.2 Tool Box 13
2.3.3 Task List 13
2.4自定义工作区 13
2.5采用Visual J++98创建新的项目工作区 14
2.5.1 创建一个Visual J++应用程序 14
2.5.2创建一个Visual J++Applet 16
2.6小结 21
3.2面向对象的基本概念 22
第三章面向对象的程序设计 22
3.1概述 22
3.3面向对象程序设计的特点 23
3.3.1 封装 23
3.3.2继承 24
3.3.3多态 25
3.4类的声明 26
3.4.1创建新类 26
3.4.2类的修饰符 27
3.5.1 变量的声明 28
3.5变量 28
3.5.2 变量的修饰符 29
3.6方法 30
3.6.1 方法的定义 30
3.6.2方法的实现 33
3.6.3构造函数 34
3.7.2使用对象 35
3.7.1创建对象 35
3.7类的实例化 35
3.6.4结束方法 35
3.7.3释放对象 36
3.8 Visual J++的类继承 36
3.8.1 使用关键字final定义最终类和最终方法 37
3.8.2使用关键字abstract说明抽象类和抽象方法 37
3.9包(package) 43
3.9.1包的创建 43
3.9.2包的引用 44
3.10.1接口的概念 45
3.10.2接口的声明 45
3.10接口(interface) 45
3.9.3使用环境变量CLASSPATH 45
3.10.3接口的实现 46
3.11 Visual J++类库 46
3.11.1 什么是Visual J++类库 46
3.11.2 Visual J++的类库结构 47
3.11.3 Object类 48
3.11.4数据类型类 49
3.11.5 Math类 51
3.11.6在包java.io中定义的类 52
3.11.7日期类 53
3.12小结 54
第四章多线程程序设计 55
4.1概述 55
4.2线程基本概念 55
4.2.1 线程生命周期 56
4.2.2线程优先级 57
4.3 Thread类的类方法 57
4.3.1构造函数 58
4.3.2设定线程优先级 58
4.3.3线程类的主要方法 59
4.3.4线程其他方法 60
4.4线程组类介绍 61
4.5.1 继承Thread类生成子类 62
4.5.2使用Runnable接口创建线程 62
4.5线程的创建 62
4.6多线程应用的调试 63
4.7线程的同步 68
4.7.1 异步行为的产生 68
4.7.2线程同步的实现 69
4.7.3同步不当的后果及处理 75
4.8小结 76
5.1 Java Applet与Application 77
第五章Java Applet基础 77
5.2 HTML简介 78
5.2.1 概述 78
5.2.2文档元素和标签的概念 78
5.2.3 HTML文档的结构 79
5.2.4 HTML标签和属性 80
5.3 Applet类 88
5.5.1
5.5在Web页中加入Applet 90
5.4.4 destroy()方法 90
5.4.2 start()方法 90
5.4.1 Init()方法 90
5.4 Applet的生命周期 90
5.4.3 stop()方法 90
5.5.2向Applet传递参数 92
5.5.3 Applet与环境的联系 94
5.6用Applet Wizard创建Applet 97
5.7 Java安全模型 100
5.7.1 Java安全基础 100
5.7.3 可信任与非可信任的applet 101
5.7.2 Java Applet的沙箱模型(Sandbox Model) 101
5.7.4代码指示与Microsoft的授权码 102
5.7.5 安全模型的比较与对比 102
第六章Java的网络编程 104
6.1网络编程的基础知识 104
6.1.1什么是URL 104
6.1.2 Visual J++98定义的URL类 105
6.1.3 Visual J++98定义的URL Connection类 105
6.1.4进行网络资源访问的过程 107
6.1.5用URL与URL Connection类连接网络资源的例子 109
6.2 Java的Socket编程 111
6.2.1 Socket通信简介 111
6.2.2 Visual J++98定义的Socket类 112
6.2.3 Visual J++98定义的SeverSocket类 112
6.2.4采用Socket数据流编程 113
第七章WFC介绍及其初步应用 116
7.1 Windows基本类库(Windows Foundation Classes)编程简介 116
7.2控件和模板的使用 116
7.2.1 窗体的生成 117
7.2.2普通控件的添加 118
7.2.3菜单的添加 120
7.2.4加入工具提示 122
7.2.5功能代码的添加 122
7.3Java的WFC类库一览 123
7.4一个编辑器程序的实现 124
7.4.1界面设计 124
7.4.2窗体代码的剖析 131
7.4.3消息处理和功能代码添加 134
7.4.4程序清单 139
7.5小结 152
第八章利用WFC实现图形功能 153
8.1利用WFC提供的Graphics创建一个图形对象 153
8.1.1 利用WFC提供的Graphics绘图简介 153
8.1.2使用WFC创建一个图形对象 153
8.1.3通过WFC对象获得一个图形对象 154
8.2 Graphics对象作用的有效范围 156
8.2.1 可以作图的区域 157
8.2.2进行基于句柄的操作(Handle-Based Operations) 157
8.2.4创建和使用字体对象 159
8.2.3创建和使用文字对象 159
8.2.5枚举字体 160
8.3使用画笔 160
8.3.1 WFC提供的画笔对象 160
8.3.2在WFC的图形对象上设置画笔 161
8.4使用画刷 162
8.4.1虚拟画刷Logical Brush Types 162
8.4.2 WFC中定义的画刷(Brush)对象 163
8.5绘制Bitmap图像 164
8.6利用WFC的图形对象绘制一些简单的图形 164
8.6.1线段 164
8.6.2矩形 165
8.6.4圆弧 166
8.6.3 Chord(Chords) 166
8.7 MFC中定义的Graphics类 168
第九章COM和ActiveX介绍及其应用 173
9.1 COM——组件对象模型概述 173
9.1.1 COM(Component Object Model)简介 173
9.1.2 COM概念的深入 174
9.1.3组件软件存在的问题 175
9.1.6对象和组件 176
9.1.7接口(interface) 176
9.1.5二进制标准 176
9.1.4 COM基本原理 176
9.1.8接口的属性 177
9.1.9全局唯一的标识符(GUIDs) 180
9.1.10 IUnknown 180
9.1.11 COM库(COM Library) 182
9.1.12接口概要 182
9.3.2 为什么要做分布式应用 187
9.3.1 DCOM 概述 187
9.3 DCOM——分布式组件对象模型 187
9.2对象嵌入和链接(OLE) 187
9.3.3 DCOM的结构 188
9.3.4组件和复用 188
9.3.5位置独立性 189
9.3.6语言无关性 190
9.3.7连接管理 190
9.3.8可扩展性 190
9.3.10执行性能 191
9.3.9功能的发展:版本化 191
9.3.11 在应用间共享连接管理 192
9.3.12安全性 193
9.3.13负载平衡 194
9.3.14容错性 196
9.3.15协议无关性 196
9.3.16平台无关性 197
9.3.1 7和其它Internet协议的无缝集成 197
9.4 ActiveX 199
9.4.1 ActiveX定义、历史渊源及其用处 199
9.4.3 ActiveX和Java的关系 200
9.4.2 ActiveX技术的内容 200
9.4.4 ActiveX现状 202
9.5 ActiveX控件编程实现 202
9.5.1界面设计 202
9.5.2 ActiveMovieControl控件的添加及属性设置 210
9.5.3包的使用和控制变量的设计 212
9.5.4 消息处理及功能代码的添加 213
9.5.5程序的运行情况 216
9.5.6程序清单 217
10.1.1 J/Direct技术概述及作用 223
第十章 J/Direct技术及其应用 223
10.1 J/Direct技术介绍 223
10.1.2信任机制 224
10.1.3 J/Direct技术和Win32 API类 224
10.2 J/Direct技术的使用 224
10.2.1 J/Direct Call Builder的使用及其设置 225
10.2.2 J/Direct句法结构 227
10.2.3 ANSI和Unicode 230
10.2.4数据类型的匹配 231
10.2.5调用OLE API函数 237
10.2.6 J/Direct技术和RNI(Raw Native Interface)的比较 238
10.2.7安全性问题 239
10.3 J/Direct编程 241
10.3.1 J/Direct编程范例介绍 241
10.3.2界面设计部分 242
10.3.3所用函数介绍 245
10.3.4利用J/Direct Call Builder自动生成方法、常量的声明 253
10.3.5消息处理和功能代码的添加 254
10.3.6程序的运行情况和程序清单 255
11.1.2为什么使用JavaScript 264
11.1.3如何在HTML中嵌入JavaScript 264
11.1什么是JavaScript 264
11.1.1 什么是JavaScript 264
第十一章介绍JavaScript 264
11.2数据类型、变量和字面值 265
11.2.1 数据类型 265
11.2.2字面值 265
11.2.3变量 266
11.2.4一个JavaScript的例子 267
11.3表达式与运算符 267
11.3.1 表达式 267
11.3.2运算符 268
11.3.3运算符的优先级 270
11.4控制语句 271
11.4.1 条件语句 271
11.4.2循环语句 272
11.4.3 break、continue和label语句 273
11.5数组 275
11.5.1 使用Array的构造函数 275
11.5.2包含多种类型的元素的数组 275
11.5.3联结的(Associative)数组 276
11.5.4数组对象的属性和方法 278
11.6对象 279
11.7函数 279
11.7.1 定义和调用一个函数 279
11.7.2把对象作为参数传递给函数 280
11.7.3使用函数的一个小技巧 281
11.8事件处理 282
11.8.1 定义一个事件句柄 283
11.8.2事件对象 286
11.9.1 打开和关闭窗口 287
11.9使用窗口和框架 287
11.9.2使用框架 288
11.9.3指向窗口和框架 290
第十二章Visual J++98和动态HTML 293
12.1 Cascading Style Sheets 295
12.2编写通用的CSSlayer代码 299
12.3显示和隐藏layer 300
12.4接受键盘和鼠标按键的事件 302
12.4.1 接受键盘按键事件 302
12.4.2接受鼠标按键事件 303
12.5创建目录 304
12.5.1 循环显示几个图像 304
12.5.2创建一个下拉菜单 308
12.6在Visual J++98中编制动态HTML代码 311
12.7基本组件 313
12.8容器 313
12.9处理事件 315
12.10动态HTML的style 315
12.11动态表格 317
12.12在服务器端使用com.ms.wfc.html包 317
12.13 DhElement类简介 320
第十三章Visual J++98的调试器 323
13.1 Visual J++98调试器使用基础 323
13.1.1输入命令行参数 323
13.1.2显示调试器的工具条 324
13.1.3设置断点 324
13.1.4 单步跟踪 326
13.2 Debug运行时的一些变量窗口 326
13.2.1 Auto窗口 326
13.2.2 Locals窗口 326
13.2.3 Watch窗口 328
13.2.4 Immediate窗口 329
13.3对不同程序调试器的使用 330
13.3.1 调试WFC和Console应用程序 330
13.3.2调试多线程的程序 330
13.4调试一个COM对象 333
13.4.1 调试一个COM对象的三种方法 334
13.4.2 一个COM程序调试的例子 335
13.5使用Visual J++98提供的NC编译Java程序 337
13.5.1设置编译器(Compiler)选项 337
13.5.2使用JVC进行编译的方式 339
13.6在程序代码中设置条件编译 340
13.6.1 #if,#elif,#else和#endif条件编译符号 341
13.6.2条件编译符号#define 342
13.6.3条件编译符号#undef 342
13.6.4条件编译符号#error 343
13.6.5条件编译符号#waming 343
13.6.6有条件地编译Java方法 344
13.7.2运行JVIEW 345
13.7 JVIEW在程序调试过程中的应用 345
13.7.1 JVIEW的命令行格式 346
13.8 WJVIEW在程序调试过程中的应用 346
13.8.1 WJVIEW的命令行格式 347
1 3.8.2运行WJVIEW 347
附录A Java类的层次图 348
附录B Java的WFC基本类库 349
附录C编译错误列表 370
附录D编译警告列表 384
附录E JavaScript中的事件和事件句柄 385
附录F JavaScript中的保留字 400
附录G Visual J++98的保留字 400