{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
free FREE

Change Your Zip Code

Inventory information and delivery speeds may vary for different locations.

Location History

{{email ? __('Got it!') : __('Restock Alert')}}

We will notify you by email when the item back in stock.

Cancel
Yami

Jingdong book

Java编程实战宝典(附光盘)

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Java编程实战宝典(附光盘)

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
Ends in
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
Sale ends in
Sale will starts after Sale ends in
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) Details
Best before

Currently unavailable.

We don't know when or if this item will be back in stock.

Unavailable in your area.
Sold Out

Details

Full product details
Editer Recommend

一本百科全书式的Java编程秘笈,全面、新颖、详细、深入和实用

资深程序员15年开发经验的总结,完美展现Java应用开发的精髓

18小时配套教学视频 + 26小时进阶教学视频,赠送100页本书项目案例开发电子书及355页《Java程序员面试宝典》电子书

全面:涵盖Java基础语法、面向对象、多线程、集合、泛型、GUI编程、多媒体编程、数据库编程和网络编程等内容

新颖:以当前流行的JDK 1.7进行讲解,详细介绍了大量的新技术和新功能

详细:结合图示,从概念、语法、示例、技巧和应用等多角度分析每个知识点

实用:提供了450个实例、6个小案例、1个项目开发案例、346个习题

深入:深入剖析Swing包、实用工具类、集合、泛型等其他书中很少透彻介绍的内容

高效:提供了18小时配套教学视频及26小时Java进阶视频,高效而直观

Content Description

“开发宝典丛书”是由清华大学出版社为软件开发爱好者精心打造的一套软件开发百科全书。丛书强调“全面、新颖、详细、实用、深入、高效”等特色,涵盖常见的编程语言和技术。丛书中的每本书都是由从事软件开发多年、具备丰富的开发经验的老手精心编写,讲解细腻,内容实用,并精心录制了配套教学视频。可以说,这套丛书是编程爱好者系统学习软件开发技术的不二选择,一册在手,万事无忧!

《Java编程实战宝典》以J2SE为平台,以最新的JDK1。7技术规范为切入点,全面、系统地介绍了Java的基础编程技术和常用开发方法。书中的各个技术点都提供了实例以供读者实战演练,各章最后还提供了实战练习题以帮助读者巩固和提高。本书配1张DVD光盘,内容为书中涉及的实例源文件及作者专门为本书录制的配套教学视频,以帮助读者更加高效、直观地学习本书内容。另外,光盘中还赠送了大量的Java范例、模块及项目案例开发的源程序和教学视频,非常超值。
本书共22章,分为8篇。首先讲述了Java的基础语法,然后介绍了Java中类和对象的实现,这也是Java的核心所在。随后介绍了Java中的高级技术,详细讨论了其中的多线程、集合、泛型和RTTI等。这些基本知识介绍完毕之后,就进入实际编程阶段,先后介绍了GUI程序设计、多媒体程序设计、数据库和网络程序设计,这些知识均以示例程序来讲解。最后用3章的篇幅介绍了一个完整的即时通信软件设计实例,让读者能够从实例中学习程序设计的真谛(因篇幅所限,此3章内容以PDF电子文档的格式收录于本书的配书光盘中)。
本书内容全面,实例丰富,特别适合想全面自学Java开发技术的人员阅读,也适合使用Java进行开发的工程技术人员和科研人员阅读。对于Java程序员,本书更是一本不可多得的案头必备参考手册。另外,本书也可作为计算机和软件工程等专业的教材和教学参考书。


超值、大容量DVD光盘

本书实例源文件

18小时配套教学视频

23小时Java开发实例教学视频

4个Java项目案例源程序及3小时教学视频

100页本书第8篇内容的电子书

355页《Java程序员面试宝典》电子书


一分钟了解本书精华内容

Java的开发运行环境(57分钟视频)

Java语言基础(75分钟视频)

对象和类(33分钟视频)

继承与多态(35分钟视频)

数组与字符串(69分钟视频)

Java的异常处理(58分钟视频)

Java输入输出处理技术(110分钟视频)

Java的多线程机制(83分钟视频)

运行时类型识别(37分钟视频)

泛型(18分钟视频)

Java集合框架(20分钟视频)

类型包装器、自动装箱和元数据(21分钟视频)

常用工具类(74分钟视频)

GUI程序设计(29分钟视频)

Java多媒体编程应用(16分钟视频)

数据库基础(47分钟视频)

Java数据库编程技术(110分钟视频)

Java网络编程技术(78分钟视频)

JSP程序设计(42分钟视频)

即时通讯系统开发项目实战(71分钟视频)

Author Description

刘新,计算机软件与理论专业硕士,现为湘潭大学信息工程学院教师,副教授。从事计算机专业教学11年。主要讲授《Java程序设计语言》、《Java应用技术》、《C语言程序设计》、《数据结构》、《算法设计与分析》等专业课程。先后参与过10多个系统的开发工作,其中包括解放军报全文检索系统、新闻出版报全文检索系统、警务管理系统、MARC数据编辑软件、MARC数据到XML数据转换系统、Z39。50客户端浏览软件、路桥收费及稽查系统等。尤其擅长Java开发。


管磊,毕业于北京工业大学,计算机技术专业硕士,系统架构师,出版过《P2P技术揭秘——P2P网络技术原理与典型系统开发》,有多个软件著作权和发明专利。现就职于公安部第一研究所,从事应用系统体系架构设计方面的工作,对Java编程方法、语言机制、性能优化、Java开源应用框架等有较深入的研究。

Catalogue

第1篇 Java基础知识入门
第1章 Java的开发运行环境( 教学视频:57分钟)
1.1 Java运行原理与Java虚拟机
1.1.1 Java运行原理简述
1.1.2 Java虚拟机
1.2 Java的开发环境
1.2.1 JDK的安装
1.2.2 如何设置系统环境变量
1.2.3 JDK安装后的测试与验证
1.2.4 编译命令的使用
1.2.5 解释执行命令的使用
1.2.6 UltraEdit的使用
1.3 Java应用程序示例
1.4 Java Applet程序示例
1.5 本章小结
1.6 实战习题
第2章 Java语言基础( 教学视频:75分钟)
2.1 Java语言的关键特性
2.2 Java程序的构成及文本风格
2.2.1 Java程序的构成
2.2.2 Java的代码结构
2.2.3 Java程序的格式编排
2.2.4 Java代码的注释风格
2.3 数据类型
2.3.1 基本数据类型
2.3.2 常量
2.3.3 变量
2.3.4 整型数据
2.3.5 浮点型数据
2.3.6 字符型数据
2.3.7 布尔型数据
2.3.8 变量赋初值
2.3.9 变量的作用域
2.3.10 数据类型转换
2.4 运算符与表达式
2.4.1 算术运算符和算术表达式
2.4.2 关系运算符和关系表达式
2.4.3 逻辑运算符和逻辑表达式
2.4.4 条件运算符和条件表达式
2.4.5 位运算符和位表达式
2.4.6 赋值运算符和赋值表达式
2.4.7 表达式的求值顺序
2.5 流程控制语句
2.5.1 3种基本控制结构
2.5.2 表达式语句和空语句
2.5.3 块语句
2.5.4 if~else分支语句
2.5.5 多路分支switch~case语句
2.5.6 当型循环while语句
2.5.7 直到型循环do~while语句
2.5.8 当型循环for语句
2.5.9 增强的for循环
2.5.10 循环的嵌套
2.5.11 跳转语句break
2.5.12 跳转语句continue
2.6 Java基础语法实战演习
2.6.1 判断闰年
2.6.2 求最大公约数和最小公倍数
2.6.3 Fibonacci数列
2.6.4 逆向输出数字
2.6.5 求水仙花数
2.6.6 输出图形
2.6.7 输出九九口诀表
2.7 本章小结
2.8 实战习题
第2篇 Java面向对象编程
第3章 对象和类( 教学视频:33分钟)
3.1 什么是面向对象
3.1.1 对象的理解
3.1.2 什么是类
3.1.3 消息的定义
3.1.4 面向对象的基本特征
3.2 类与对象
3.2.1 类的基本结构
3.2.2 类的声明
3.2.3 创建类体
3.2.4 对象的生命周期
3.2.5 对象的创建
3.2.6 对象的使用
3.3 成员变量的定义与使用
3.3.1 成员变量的定义
3.3.2 成员变量的访问权限
3.3.3 实例成员变量和静态成员变量
3.4 方法的定义和实现
3.4.1 方法的声明
3.4.2 创建方法体与return语句
3.4.3 局部变量和成员变量的区别
3.4.4 方法的访问权限
3.5 方法的调用
3.5.1 方法调用的形式
3.5.2 方法调用的参数
3.5.3 隐含参数this
3.6 构造方法
3.6.1 无参数构造方法的定义和使用
3.6.2 带参数构造方法的定义和使用
3.6.3 this关键字和构造方法的调用
3.7 静态方法
3.7.1 静态方法的声明和定义
3.7.2 静态方法和实例方法的区别
3.7.3 静态代码块
3.7.4 再论静态成员变量
3.8 main()方法和命令行参数
3.9 终结处理与垃圾回收
3.9.1 对象的释放和垃圾收集机制
3.9.2 finalize()终结处理方法
3.9.3 Java垃圾回收的工作原理
3.10 本地方法
3.11 本章小结
3.12 实战习题
第4章 继承与多态( 教学视频:35分钟)
4.1 继承的概念

4.1.1 继承的基本原理

4.1.2 Java继承的特征

4.1.3 Java中子类继承父类的描述及实现

4.1.4 Java继承的内存形态

4.2 继承中属性隐藏与方法覆盖

4.2.1 属性的隐藏

4.2.2 方法的覆盖

4.3 构造方法的继承与调用

4.3.1 构造方法的继承

4.3.2 super关键字的使用

4.3.3 关于子类继承父类的总结

4.4 多态技术

4.4.1 Java中的多态

4.4.2 重载与覆盖

4.4.3 运行时多态

4.5 接口与多重继承

4.5.1 接口的定义

4.5.2 接口的继承

4.5.3 接口的实现

4.6 Java抽象类与最终类

4.6.1 抽象类与抽象方法

4.6.2 最终类与最终方法

4.7 Java内部类

4.7.1 内部类的定义

4.7.2 内部类访问外部类的成员

4.7.3 内部类之间的相互使用

4.7.4 在外部使用内部类

4.7.5 匿名内部类

4.7.6 内部类的作用

4.8 Java包:库单元

4.8.1 包的创建

4.8.2 包的使用

4.8.3 JAR文件的创建和使用

4.8.4 JDK中的常用包

4.9 本章小结

4.10 实战习题

第3篇 Java数据处理

第5章 数组与字符串( 教学视频:69分钟)

5.1 数组

5.1.1 一维数组的声明

5.1.2 一维数组的创建

5.1.3 一维数组的使用

5.1.4 二维数组的声明

5.1.5 二维数组的创建

5.1.6 二维数组的使用

5.1.7 程序示例1——数组排序

5.1.8 程序示例2——杨辉三角

5.2 字符串

5.2.1 String对象的声明

5.2.2 String对象的创建

5.2.3 String对象的使用

5.2.4 String类型的数组

5.2.5 StringBuffer对象的声明

5.2.6 StringBuffer对象的创建

5.2.7 StringBuffer对象的使用

5.3 本章小结

5.4 实战习题

第6章 Java的异常处理( 教学视频:58分钟)

6.1 异常与异常处理

6.1.1 异常的特点

6.1.2 异常处理的两种模型

6.1.3 异常处理在编程中的优点

6.2 Java的异常处理

6.2.1 Java的异常处理机制

6.2.2 Java异常类的层次结构

6.2.3 Java异常的分类

6.2.4 Java异常处理的原则

6.3 Java异常处理实践

6.3.1 Java异常捕获与处理

6.3.2 异常的抛出

6.3.3 异常的嵌套处理

6.3.4 自定义异常及其处理方法

6.3.5 Java异常处理的应用示例

6.4 本章小结

6.5 实战习

第7章 Java输入输出处理技术( 教学视频:110分钟)

第4篇 Java中的高级技术

第8章 Java的多线程机制( 教学视频:83分钟)

第9章 运行时类型识别( 教学视频:37分钟)

第10章 泛型( 教学视频:18分钟)

第11章 Java集合框架( 教学视频:20分钟)

第12章 类型包装器、自动装箱和元数据( 教学视频:21分钟)

第13章 常用工具类( 教学视频:74分钟)

第5篇 桌面程序开发

第14章 GUI程序设计( 教学视频:29分钟)

第15章 Java多媒体编程应用( 教学视频:16分钟)

第6篇 数据库程序设计

第16章 数据库基础( 教学视频:47分钟)

第17章 Java数据库编程技术( 教学视频:110分钟)

第7篇 Java网络程序开发

第18章 Java网络编程技术( 教学视频:78分钟)

第19章 JSP程序设计( 教学视频:42分钟)

*第8篇 即时通信系统开发项目实战

第20章 系统分析和设计( 教学视频:27分钟)

第21章 服务器端功能模块的实现( 教学视频:19分钟)

第22章 客户端功能模块的实现( 教学视频:25分钟)

说明:因篇幅所限,第8篇内容以PDF电子文档的格式收录于本书的配书光盘中赠送给读者,读者可以选择阅读。该项目案例涉及的源程序及视频讲解也收录于配书光盘中。

Book Abstract

第3 章 对 象 和 类
在当今的计算机大型应用软件开发领域,面向对象技术正在逐步取代面向过程的程序设计技术。本章将介绍面向对象的基本知识和Java 实现面向对象程序设计的主要工具——类。如果读者缺乏关于面向对象程序设计的背景,一定要仔细阅读本章。如果读者有C++编程经验,也要注意二者之间的区别,毕竟Java 在类的具体实现上与C++有较大的差别。学习本章面向对象的相关知识,主要内容有以下几点:
面向对象的基本概念;
对象与类的理解;
成员变量的定义与使用;
方法的定义及实现;
方法调用;
构造方法与静态方法;
终结处理与垃圾回收。
3.1 什么是面向对象
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是20 世纪90 年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很广的范围。例如,数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术和人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,它是相对于面向过程而言的。通过面向对象的方式,将现实世界的物抽象成对象,现实世界中的关系抽象成类、继承等,以更直观、清晰地完成对现实世界的抽象与数字建模。讨论面向对象方面的文章非常多。但是,明确地给出“面向对象”的定义却非常少。
最初,“面向对象”是专指在程序设计中采用封装、继承和抽象等设计方法。可是,这个定义显然不能再适合现在的情况。面向对象的思想已经涉及到软件开发的各个方面。例如,面向对象的分析(Object Oriented Analysis,OOA)、面向对象的设计(Object Oriented Design,OOD)以及经常说的面向对象的编程(Object Oriented Programming,OOP)。许多有关面向对象的文章,都只是讲述在面向对象的开发中所需要注意的问题,或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地收获知识。
?说明:在本章中,着重讨论OOP,有关OOA 和OOD 请读者查阅有关软件工程的书籍。OOP 从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统。它把编程问题视为一个数据集合,因为数据相对于功能而言,具有更强的稳定性。OOP 同结构化程序设计相比最大的区别就在于:前者首先关心的是所要处理的数据,而后者首先关心的是功能。在计算机编程中使用OOP 方法,更利于从人理解的方式对于复杂系统的进行分析、设计与编程。同时能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。
3.1.1 对象的理解
OOP 是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体。可以说,“对象”这个概念是OOP 最本质的概念之一,在面向对象的编程过程中,首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装和抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。但是,如何给“对象”下一个严谨的定义,却是一个棘手的问题,目前还没有统一的认识。
在现实生活中,一般认为对象是行动或思考时作为目标的各种事物。对象所代表的本体可能是一个物理存在,也可能是一个概念存在。例如一枝花、一个人、一项计划等。在使用计算机解决问题时,对象是作为计算机模拟真实世界的一个抽象,一个对象就是一个物理实体或逻辑实体,它反映了系统为之保存信息和(或)与它交互的能力。
在计算机程序中,对象相当于一个“基本程序模块”,它包含了属性(数据)和加在这些数据上的操作(行为)。对象的属性是描述对象的数据,属性值的集合称为对象的状态。对象的行为则会修改这些数据值并改变对象的状态。因此,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
下面以一个生活中常见的例子来说明对象这个概念。例如“椅子”这个对象,它是“家具”这个更大的一类对象的一个成员。椅子应该具有家具所具有的一些共性,如:价格、重量和所有者等属性。它们的值也说明了椅子这个对象的状态。例如,价格为100 元,重量为5 公斤,所有者是小王等。类似地,家具中的桌子、沙发等对象也具有这些属性。这些对象所包含的成分可以用图3.1 来说明。
对象的操作是对对象属性的修改。在面向对象的程序设计中,对象属性的修改只能通过对象的操作来进行,这种操作又称为方法。比如上面的对象都有“所有者”这一个属性,修改该属性的方法可能是“卖出”,一旦执行了“卖出”操作,“所有者”这个属性就会发生变化,对象的状态也就发生了改变。现在的问题是,所有的对象都有可能执行“卖出”操作,那么如何具体区分卖出了哪个对象,这是需要考虑的。面向对象的设计思路把“卖出”这个操作包含在对象里面,执行“卖出”操作,只对包含了该操作的对象有效。因此,整个对象就会变成图3.2 这个样子。
由于对象椅子已经包含了“卖出”操作,因此,当执行“卖出”操作时,对象外部的使用者并不需要关心它的实现细节,只需要知道如何来调用该操作,以及会获得怎样的结果就可以了,甚至不需要知道它到底修改了哪个属性值。这样做不仅实现了模块化和信息隐藏,有利于程序的可移植性和安全性,也有利于对复杂对象的管理。图3.1 对象的属性集合 图3.2 封装了属性和操作的对象
3.1.2 什么是类
“物以类聚”是人们区分、归纳客观事物的方法。在面向对象系统中,人们不需要逐个去描述各个具体的对象,而是关注具有同类特性的一类对象,抽象出这样一类对象共有的结构和行为,进行一般性描述,这就引出了类的概念。椅子、桌子、沙发等对象都具有一些相同的特征,由于这些相同的特征,它们可以归为一类,称为家具。因此,家具就是一个类,它的每个对象都有价格、重量及所有者这些属性。也可以将家具看成是产生椅子、桌子、沙发等对象的一个模板。椅子、桌子、沙发等对象的属性和行为都是由家具类所决定的。家具和椅子之间的关系就是类与类的成员对象之间的关系。类是具有共同属性、共同操作的对象的集合。而单个的对象则是所属类的一个成员,或称为实例(instance)。在描述一个类时,定义了一组属性和操作,而这些属性和操作可被该类所有的成员所继承,如图3.3 所示。
图3.3 由类到对象的继承
图3.3 表明,对象会自动拥有它所属类的全部属性和操作。正因为这一点,人们才会知道一种物品是家具时,主动去询问它的价格、尺寸和材质等属性。对于初学者而言,类和对象的概念最容易混淆。类属于类型的范畴,用于描述对象的特性。对象属于值的范畴,是类的实例。从集合的角度看,类是对象的集合,它们是从属关系。也可以将类看成是一个抽象的概念,而对象是一个具体的概念。例如苹果是一个类,而“桌子上的那个苹果”则是一个对象。从编程的角度看,类和对象的关系可以看成是数据类型和变量的关系。还可以认为类是一个静态的概念,而对象是一个动态的概念,它具有生命力。类和对象的关系可以用如图3.4 所示这个实例来演示,如图3.4 所示。
图3.4 类与对象的关系
3.1.3 消息的定义
由上述内容可知,对象的行为是通过其定义的一组方法来描述,对象的结构特征是由它的属性来表现。但是,对象不会无缘无故地执行某个操作,只有在接受了其他对象的请求之后,才会进行某一操作,这种请求对象执行某一操作,或是回答某些信息的要求称为消息。对象之间通过消息的传递来实现相互作用。消息一般有3 个组成部分:消息接收者(接收对象名)、接收对象应采用的方法以及方法所需要的参数。同时,接收消息的对象在执行完相应的方法后,可能会给发送者返回一些信息。
例如,教师向学生布置作业“07 级计算机1 班做5 道习题”。其中,教师和学生都是对象,“07 级计算机1 班”是消息的接收者,“做习题”是要求目标对象——学生执行的方法,“5 道”是要求对象执行方法时所需要的参数。学生也可以向教师返回作业信息。这样,对象之间通过消息机制,建立起了相互关系。由于任何一个对象的所有行为都可以用方法来描述,所以通过消息机制可以完全实现对象之间的交互。在Java 程序设计中,所需完成的功能任务就在对象之间的消息传递与相互作用之间完成。
3.1.4 面向对象的基本特征
在上述面向对象的基本概念基础之上,不可避免地要涉及到面向对象程序设计所具有的4 个共同特征:抽象性、封装性、继承性和多态性。
1.抽象
抽象是人们认识事物的常用方法,比如地图的绘制。抽象的过程就是如何简化、概括所观察到的现实世界,并为人们所用的过程。抽象是软件开发的基础。软件开发离不开现实环境,但需要对信息细节进行提炼、抽象,找到事物的本质和重要属性。抽象包括两个方面:过程抽象和数据抽象。过程抽象把一个系统按功能划分成若干个子系统,进行“自顶向下逐步求精”的程序设计。数据抽象以数据为中心,把数据类型和施加在该类型对象上的操作作为一个整体(对象)来进行描述,形成抽象数据类型ADT。所有编程语言的最终目的都是提供一种“抽象”方法。一种较有争议的说法是:解决问题的复杂程度直接取决于抽象的种类及质量。其中,“种类”是指准备对什么进行“抽象”。汇编语言是对基础机器的少量抽象。后来的许多“命令式”语言(如FORTRAN、BASIC 和C)是对汇编语言的一种抽象。与汇编语言相比,这些语言已有了较大的进步,但它们的抽象原理依然要求程序设计者着重考虑计算机的结构,而非考虑问题本身的结构。
在机器模型(位于“方案空间”)与实际解决的问题模型(位于“问题空间”)之间,程序员必须建立起一种联系。这个过程要求人们付出较大的精力,而且由于它脱离了编程语言本身的范围,造成程序代码很难编写,而且要花较大的代价进行维护。由此造成的副作用便是一门完善的“编程方法”学科。
为机器建模的另一个方法是为要解决的问题制作模型。对一些早期语言来说,如LISP和APL,它们的做法是“从不同的角度观察世界”、“所有问题都归纳为列表”或“所有问题都归纳为算法”。PROLOG 则将所有问题都归纳为决策链。对于这些语言,可以认为它们一部分是面向基于“强制”的编程,另一部分则是专为处理图形符号设计的。每种方法都有自己特殊的用途,适合解决某一类的问题。但只要超出了它们力所能及的范围,就会显得非常笨拙。
面向对象的程序设计在此基础上则跨出了一大步,程序员可利用一些工具来表达问题空间内的元素。由于这种表达非常普遍,所以不必受限于特定类型的问题。人们将问题空间中的元素以及它们在方案空间的表示物称作“对象”。当然,还有一些在问题空间没有对应体的其他对象。通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。所以在阅读方案的描述代码时,会读到对问题进行表达的话语。与以前的方法相比,这无疑是一种更加灵活、更加强大的语言抽象方法。
总之,OOP 允许人们根据问题,而不是根据方案来描述问题。然而,仍有一个联系途径回到计算机。每个对象都类似一台小计算机;它们有自己的状态,而且可要求它们进行特定的操作。与现实世界的“对象”或者“物体”相比,编程“对象”与它们也存在共通的地方:它们都有自己的特征和行为。
2.封装
封装是面向对象编程的特征之一,也是类和对象的主要特征。封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件。外部无法直接访问这些封装了的数据,从而保证了这些数据的正确性。如果这些数据发生了差错,也很容易定位错误是由哪个操作引起的。
如果外部需要访问类里面的数据,就必须通过接口(Interface)进行访问。接口规定了可对一个特定的对象发出哪些请求。当然,必须在某个地方存在着一些代码,以便满足这些请求。这些代码与那些隐藏起来的数据叫做“隐藏的实现”。站在过程化程序编写(Procedural Programming)的角度,整个问题并不显得复杂。一种类型含有与每种可能的请求关联起来的函数。一旦向对象发出一个特定的请求,就会调用那个函数。通常将这个过程总结为向对象“发送一条消息”(提出一个请求)。对象的职责就是决定如何对这条消息作出反应(执行相应的代码)。
若任何人都能使用一个类的所有成员,那么可对这个类做任何事情,则没有办法强制他们遵守任何约束——所有东西都会暴露无遗。有两方面的原因促使了类的编制者控制对成员的访问。第一个原因是防止程序员接触他们不该接触的东西——通常是内部数据类型的设计思想。若只是为了解决特定的问题,用户只需操作接口即可,无需明白这些信息。类向用户提供的实际是一种服务,因为他们很容易就可看出哪些对自己非常重要,以及哪些可忽略不计。进行访问控制的第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响。例如,编制
者最开始可能设计了一个形式简单的类,以便简化开发。后来又决定进行改写,使其更快地运行。若接口与实现方法早已隔离开,并分别受到保护,就可放心做到这一点,只要求用户重新链接一下即可。封装考虑的是内部实现,抽象考虑的是外部行为。符合模块化的原则,使得软件的可维护性、扩充性大为改观。
3.继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类的继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且派生类可以修改或增加新的方法使之更适合特殊的需求。这也体现了大自然中一般与特殊的关系。继承性很好地解决了软件的可重用性问题。比如说,所有的Windows 应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。关于继承的详细讨论,将在本书4.1~4.2 节进行。
4.多态
多态也叫多态性,是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择“编辑”和“粘贴”操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和运行时多态性。多态性语言具有灵活、抽象、行为共享和代码共享的优势,很好地解决了应用程序函数同名问题。关于多态性的讨论,将在4.4 节进行。最后,以Alan Kay 的话作为本节的结束语。他总结了Smalltalk(这是第一种成功的面向对象程序设计语言,也是Java 的基础语言)的5 大基本特征。通过这些特征,读者可以理解“纯粹”的面向对象程序设计方法。
(1)所有东西都是对象。可将对象想象成一种新型变量,它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题上,提出所有概念性的组件,然后在程序中将其表达为一个对象。
(2)程序是一大堆对象的组合。通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。
(3)每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
(4)每个对象都有一种类型。根据语法,每个对象都是某个“类(Class)”的一个“实例”。其中,“类”是“类型(Type)”的同义词。一个类最重要的特征就是“能将什么消息发给它?”。
(5)同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,读者不久便能理解。例如,由于类型为“圆(Circle)”的一个对象也属于类型为“形状(Shape)”的一个对象,所以一个“圆”完全能接收“形状”的消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP 最重要的概念之一。
……

Introduction

Java是目前最为流行的程序开发语言。市面上介绍Java的书籍很多,既包括国外的经典名著,也包括国内各种各样的教学书籍。国外名著由于知识背景的差异,作者的思维方式总是和中国读者有一定的距离,因此刚入门的读者无法领略其中的精妙。大多数国外书籍,则将Java当作纯粹的语言来介绍,忽视了它作为一个应用平台的强大威力,读者看了之后,难免会误会Java不过是一个精简版的C++。
笔者在多年的教学和开发实践中,深感需要编写一本既能让初学者快速入门,又能真正利用Java进行软件开发的指导性书籍。几年前笔者就萌生了一个想法:亲自编写一本既适合读者自学,又可供教学参考的Java图书。而真正付诸实施,这本书花了笔者近一年的时间。笔者在自己平时所用课件的基础上,进行了大量增改,终于编写出了本书。本书以J2SE为平台,以最新的JDK1。7技术规范为切入点,由浅入深、循序渐进地介绍了有关J2SE平台下的大部分常用开发技术。书中的每个知识点和技术都采用了实例讲解为主、理论分析为辅的方式进行介绍。
本书假设读者没有任何编程经验,举例时也尽量避免复杂的数据结构和算法设计。每个例子都着重于Java知识点本身,尽量浅显易懂,不涉及其他知识。对于初学者易犯的错误,都有明确的提示。为了让读者养成良好的编程习惯,本书的程序代码均按照软件工程的规范来编写。全书讲解时配合了大量的程序示例、实用程序、图例及代码说明,所有程序代码笔者均仔细调试过,确保准确无误。
本书特色
本书是根据笔者多年的教学和软件开发经验总结出来的,将知识范围锁定在了适合初、中级读者阅读的部分。本书以大量的实例进行示范和解说,其特点主要体现在以下几个方面。
*内容全面,涵盖广泛:本书全面涵盖了Java的基础语法、面向对象编程、Java高级技术中的多线程、集合、泛型和RTTI等,而且系统介绍了GUI程序设计、多媒体程序设计、数据库程序设计和网络程序设计等。
*技术最新,紧跟趋势:本书以最新的JDK1。7技术规范为切入点进行讲解,详细介绍了新版本的各种新技术和新功能,让读者了解和掌握最新的Java技术。
*由浅入深,循序渐进:本书的编排采用了由浅入深、循序渐进的方式,使得初、中级读者都可以容易地掌握复杂的编程技术。
*实例丰富,讲解详细:本书提供了大量的示例和实例,并按照“知识点→例或实例→示例或实例解析→运行效果→贴心提示”的模式讲解,理解起来非常容易。书中给出了这些例子的详细源代码,并对代码进行了详细注释,还对例子的重点和难点进行了详细的讲解和分析。书中的例子简洁规范,能让读者专心于知识点,而不被其他事情所干扰。它们大多具有实际意义,着重于解决工作中的实际问题,可帮助读者理解和上机模拟实践。
*案例精讲,注重实战:本书最后用3章的篇幅详细介绍了一个完整的即时通信软件项目案例的设计和实现过程,让读者体验实际的项目开发,提升开发水平。
*实践练习,巩固提高:本书各章都提供了实践练习题,读者每阅读完一章,可以通过完成这些练习题来检测自己的学习效果,从而达到巩固和提高的目的。
*视频教学,光盘超值:笔者专门录制了大量的配套多媒体教学视频,便于读者更加高效、直观地学习。另外,配书光盘中还赠送了大量的Java开发范例、模块和案例的源程序及教学视频库,并提供了一部《Java程序员面试宝典》电子书。
本书内容安排
本书共22章,分为8篇,不仅包含了Java的基础知识,也对它的高级技术和实用技术做了详细介绍。
第1篇Java基础知识入门(第1、2章)
本篇首先全面介绍了Java的运行开发环境。其中详细讲解了JDK的安装和配置,如何使用UltraEdit来编辑一个Java源程序,以及如何编译和运行Java程序。第2章介绍了Java的基础知识,包括数据类型、运算符与表达式、流程控制等。最后以几个实例来引导读者步入程序设计的大门。这一篇是整个Java程序设计的基础。
第2篇对象和类(第3、4章)
本篇介绍了如何使用Java来进行面向对象的程序设计。包括对象和类的成员定义与使用、单继承和多重继承、运行时多态、接口、内部类、包等。本篇是Java的精华,也是学习Java面向对象技术必备的知识。
第3篇数据处理(第5~7章)
本篇介绍了Java中的数据处理。首先介绍了Java中的两个特殊类:数组和字符串。然后介绍了Java中的异常处理机制。最后介绍了输入和输出,包括标准设备的输入和输出以及文件的处理,还对新版JDK1。7中有关Java输入与输出新增技术进行了说明。学完本篇,已经可以编写一些实用程序了。
第4篇Java中的高级技术(第8~13章)
本篇介绍了Java中的高级技术,包括多线程、RTTI、泛型、集合、类型包装以及实用工具类等。这些内容是编写复杂实用程序的基础。使用这些高级技术,可以大大降低编程的烦琐程度和难度。
第5篇GUI程序设计(第14、15章)
本篇介绍了普通窗口程序和多媒体程序的编写。GUI是目前最为流行的程序界面,但这类程序的编制比普通控制台程序要复杂一些。本篇详细介绍了和GUI有关的事件、布局管理以及各种组件的使用。并通过大量的实例来介绍如何编写一个实用的桌面程序,以及编程中的常用技巧和应该注意的问题。在多媒体程序设计中,则着重介绍了各种文字、图像、声音和视频的处理。在编程中,应尽量使用Java自己提供的类,以降低编程的难度。
第6篇数据库程序设计(第16、17章)
本篇介绍了数据库程序设计。数据库编程是Java的一个重要应用方面。本篇先介绍一般性的数据库理论,主要是SQL语句的使用。然后详细介绍了如何使用Java中的各种类来处理数据库,并提供了一个实例来说明编写数据库程序与普通程序的一些差别。
第7篇Java网络程序开发(第18、19章)
本篇介绍了网络程序设计。首先介绍一般的C/S模式的网络程序设计,主要是利用Socket进行网络通信。随后介绍了JSP程序设计,这是Java应用的又一重要领域。另外,本篇提供了5个实例来说明JSP程序设计中应该注意的一些问题。
第8篇即时通信系统开发项目实战(第20~22章)
本篇讲解了一个以QQ为原型的Java版即时通信系统的应用开发案例,综合使用了Java中的桌面程序设计、图像处理、数据库处理以及网络通信中的各种技术,以及软件工程的思想,对Java应用系统从架构设计、数据设计到编码开发都进行了细致的讲解。最后两章是对Java技术的一个全面应用综合演练。通过这个软件,读者可以领略到Java的强大实用编程能力。因篇幅所限,本篇内容以PDF电子文档的格式收录于本书的配套光盘中。
本书光盘内容
*本书各章涉及的实例源文件;
*18小时本书配套教学视频;
*23小时Java开发实例教学视频;
*4个Java项目案例源程序及3小时教学视频;
*100页本书第8篇内容的电子书;
*355页《Java程序员面试宝典》电子书。
适合阅读本书的读者
*想全面学习Java开发技术的人员;
*没有任何编程基础的计算机专业的学生;
*具备一定自学能力的Java编程爱好者;
*利用Swing开发桌面程序的Java程序员;
*进行JSP网站开发的人员;
*使用C/S模式设计网络程序的Java程序员;
*想了解Java中、高级技术的编程人员;
*使用Java做开发的工程技术人员和科研人员;
*大中专院校Java语言的教学人员;
*需要案头必备手册的Java程序员。
本书的编写对笔者而言是一个“浩大的工程”。虽然笔者投入了大量的精力和时间,但只怕百密难免一疏。若读者在阅读本书时发现任何疏漏,希望能及时反馈给我们,以便及时更正。联系我们请发邮件。
最后祝各位读者读书快乐,学习进步!
编者

Specifications

Brand Jingdong book
Brand Origin China

Disclaimer

Product packaging, specifications and price are subject to change without notice. All information about the products on our website is provided for information purposes only. Please always read labels, warnings and directions provided with the product before use.

View Full Terms of Use
Add to favorites
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
Quantity
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
Sold by JD@CHINA
Ship to
{{ __("Ship to United States only") }}
Free shipping over 69
Genuine guarantee

Added to Cart

Keep Shopping

More to Consider

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

Coupons

{{ coupon.coupon_name_new | formatCurrency }}
Clip Clipped Over
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
Expires soon {{ formatTime(coupon.use_end_time) }}

Share this item with friends

Cancel

Yami Gift Card

Get this exclusive deal when paying with gift card

Terms and Conditions

Gift card deals are special offers for selected products;

The gift card deals will automatically be activated if a customer uses gift card balance at check out and the balance is sufficient to pay for the total price of the shopping cart products with gift card deals;

You will not be able to activate the gift card deals if you choose other payment methods besides gift card. The products will be purchased at their normal prices;

If your account balance is not enough to pay for the products with gift card deals, you can choose to reload your gift card balance by clicking on the Reload button at either shopping cart page or check out page;

Products that have gift card deals can be recognized by a special symbol showing 'GC Deal';

For any additional questions or concerns, please contact our customer service;

Yamibuy reserves the right of final interpretation.

Sold by Yami

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

Yami is committed to provide our customers with a peace of mind when purchasing from us. Most items shipped from Yamibuy.com can be returned within 30 days of receipt of shipment (For Food, Beverages, Snacks, Dry Goods, Health supplements, Fresh Grocery and Perishables Goods, within 7 days of receipt of shipment due to damages or quality issues; To ensure that every customer receives safe and high-quality products, we do not provide refunds or returns for beauty products once they have been opened or used, except in the case of quality issues; Some products may have different policies or requirements associated with them, please see below for products under special categories, or contact Yami Customer Service for further assistance).
Thank you for your understanding and support.

Learn More

Sold by Yami

Terms and Conditions of Yami E-Gift Card

If you choose “Redeem automatically” as your delivery method, your gift card balance will be reload automatically after your order has been processed successfully;

If you choose “Send to Email”as your delivery method, the card number and CVV will be sent to the email address automatically;

Any user can use the card number and CVV to redeem the gift card, please keep your gift card information safely. If you have any trouble receiving email, please contact Yami customer service;

Yami gift card can be used to purchase both Yami owned or Marketplace products;

Yami gift card will never expire;

Yami gift card balance does not have to be used up at once;

All rights reserved by Yami.

Return Policy

Gift card that has already been consumed is non-refundable.

Sold by JD@CHINA

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Sold by JD@CHINA

Service Guarantee

Yami Cross-store Free Shipping over $69
Yami 30-days Return

Yami-China FC

Yami has a consolidation warehouse in China which collects multiple sellers’ packages and combines to one order. Our Yami consolidation warehouse will directly ship the packages to your door. Cross-store free shipping over $69.

Return Policy

You may return products within 30 days upon receiving the products. Sellers take responsibilities for any wrong shipment or missing items. Packing needs to be unopened for any other than quality issues return. We promise to pack carefully, but because goods are taking long journey to destinations, simple damages to packaging may occur. Any damages not causing internal goods quality problems are not allowed to return. If you open the package and any quality problem is found, please contact customer service within three days after receipt of goods.

Shipping Information

Yami Consolidation Service Shipping Fee $9.99(Free shipping over $69)

Sellers in China will ship their orders within 1-2 business days once the order is placed. Packages are sent to our consolidation warehouse in China and combined there. Our Yami consolidation warehouse will directly ship the packages to you via UPS. The average time for UPS to ship from China to the United States is about 10 working days and it can be traced using the tracking number. Due to the pandemic, the delivery time may be delayed by about 5 days. The package needs to be signed by the guest. If the receipt is not signed, the customer shall bear the risk of loss of the package.

Sold by JD@CHINA

Service Guarantee

Free shipping over 69
Genuine guarantee

Shipping

Yami Consolidated Shipping $9.99(Free shipping over $69)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

Yami Points information

All items are excluding from any promotion or points events on Yamibuy.com

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Yami

Download the Yami App

Back Top

Recommended for You

About the brand

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

Reviews{{'('+ commentList.posts_count + ')'}}

Have your say. Be the first to help other guests.

Write a review
{{ totalRating }} Write a review
  • {{i}} star

    {{i}} stars

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

No related comment~

Review

Yami Yami

{{ showTranslate(commentDetails) }}Show Less

{{ strLimit(commentDetails,800) }}Show more

Show Original

{{ commentDetails.content }}

Yami
Show All

{{ formatTime(commentDetails.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Comments{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}Show Less

{{ strLimit(reply,800) }}Show more

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Cancel

That’s all the comments so far!

Write a review
How would you rate this item?

Please add your comment.

  • A nice nickname will make your comments more popular!
  • The nickname in your account will be changed to the same as here.
Thanks for your review
Our community rely on great reviews like yours to find the best of Asia.

Report

If you find this content inappropriate and think it should be removed from the Yami.com site, let us know please.

Cancel

Are you sure to delete your review?

Cancel

You’ve Recently Viewed

About the brand

Jingdong book