Java面向对象程序设计(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-25 12:27:07

点击下载

作者:梁燕来程裕强主编

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Java面向对象程序设计

Java面向对象程序设计试读:

前言

近几年,国内高校的“面向对象程序设计”课程越来越多地选择Java语言。纵观国内Java教材,大多数内容陈旧,脱离就业市场,比如一些过时或者没有实用价值的技术(Applet、AWT和Swing 图形界面编程、JDBC-ODBC)在教材中占了很大篇章,反而忽略了关键的面向对象的思想,本末倒置。本教材特点:采用最新的Java 7 版本;紧扣就业市场,含近年Java 企业面试题;有真正的跨平台性,演示了Windows平台和Linux平台下的Java开发过程;跨平台安装MySQL和Oracle数据库,通过JDBC方法访问数据库;删减Java过时技术,增加Java新的实用技术。

本书共分为16章。第0章对计算机和Java语言做了简单介绍。第1章详细讲解Windows平台和Linux平台下Java开发环境的配置。第2章讲解Java的基本数据类型、控制语句、数组、枚举、字符串和方法等。第3章、第4章和第5章是面向对象程序设计的核心内容,重点讲解类、对象、继承、多态、接口、面向对象设计的基本原则,以及简单的设计模式。第6章是面向对象程序设计非常实用的异常处理技术。第7章和第8章,讲解如何查看Java文档以及常用的Java核心类库,重点介绍字符串的常见处理操作以及加密算法。第9章引入了泛型机制,并对集合框架做了讲解。第10章通过讲解文件上传原理来解释复杂的IO部分。第11章介绍多线程基本概念,并对线程同步做了详细介绍。第12章是Java语言的落脚点,分别演示了在Windows平台和Linux平台下通过JDBC对MySQL数据库的访问,通过简单示例演示了JDBC技术;介绍了在Windows平台和Linux平台下Oracle数据库的安装配置以及通过JDBC访问Oracle数据库。第13章讲解Java高级特性,反射与Annotation是Java EE开发的重要技术。为了本书的完整性,第14章用较少的篇幅,通过简单实例介绍Applet、图形界面编程以及网络编程。第15章对Eclipse集成开发工具做了介绍。本书所有样例程序均在Windows平台和Linux平台下的JDK 7环境,通过命令方式调试通过。本书的实例代码、相关软件以及电子教案均可到人民邮电出版社教学服务与资源网下载(http://www.ptpedu.com.cn),或者与编者联系索取。

本书由梁燕来、程裕强主编,主要参编人员有周锦芳、周国军、李昌志、肖宝、刘永健、庞伟等。编者均来自教学第一线,具有丰富的教学实践经验和软件开发经验。具体编写分工如下:第0章、第2章和第6章由梁燕来编写,第1章、第8章、第12章和第13章由程裕强编写,第3章和第4章由周锦芳编写,第5章和第11章由周国军编写,第14章和第15章由李昌志编写,第7章由肖宝编写,第9章由刘永健编写,第10章由庞伟编写。全书由梁燕来和程裕强统稿和审定。

由于 Java 技术发展迅速,加上编者水平有限,书中难免出现不当之处甚至是错误,希望各位读者指正,编者邮箱为hadron.cheng@foxmail.com。为了方便各位教师与编者联系,请加入Java教学QQ群194993200;读者朋友可以加入Java群187449470。对大家的问题,我们将在第一时间解答。编者2013年1月  第0章概述

本章重要性:★★

本章学习目标:

了解计算机组成与基本工作原理

了解计算机语言发展史

了解Java语言发展史

掌握Java运行机制

掌握Java相关名称

为什么是第0章,而不是第1章呢?因为Java语言与C语言一样,数组等下标都是从0开始的。从数学角度看,第一个自然数是0,数组下标从0开始也是科学的。0.1 计算机概述

计算机(Computer),全名是电子计算机,俗称电脑。从 1946年第一台电子计算机 ENIAC诞生,其发展大致经历了电子管计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机四个阶段,冯·诺伊曼(见图0.1)因提出计算机基本工作原理被称为计算机之父。图0.1 冯·诺伊曼

图0.2所示为计算机的组成与基本工作原理。(1)计算机的组成。计算机由控制器、运算器、存储器、输入设备、输出设备五大部件组成。(2)二进制。程序和数据以二进制形式存储在存储器中。(3)存储程序原理。程序由指令组成,并和数据一起存放在存储器中,计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中读出来,自动完成由程序所描述的处理工作。

没有安装软件的计算机硬件一般称为裸机,裸机就像一堆废铁,任何事都做不了(植物人)。如图0.3所示,在裸机上安装第一层软件,也就是操作系统OS(Operating System),这样计算机功能就第一次得到扩展。操作系统隐藏了计算机硬件的复杂细节,向用户提供了一台功能扩展的机器,是硬件与软件相互作用的产物,称为虚拟计算机(Virtual Machine)。常见的操作系统有Windows (PC 机系统为主)、Linux(服务器系统为主)、UNIX(服务器系统为主)、Android(智能终端系统为主)、IOS(智能终端系统为主)。图0.2 计算机工作原理图0.3 裸机与虚拟机0.2 计算机语言简史

自然语言是人类交流的工具,计算机语言(Computer Language)是人与计算机交流的工具。广义上,计算机语言包含程序设计语言(Programming Language);在计算机语言中,程序设计语言的发展最具有代表性,反映了计算机语言发展阶段,所以狭义上讲计算机语言就是程序设计语言。计算机语言大致经历了机器语言、汇编语言、面向过程语言和面向对象语言四个阶段,面向过程语言与面向对象语言又合称为高级语言。

1.机器语言

机器语言(Machine Language)是直接使用二进制代码表示的机器指令语言。使用机器语言编写的程序可以直接被计算机理解执行,但是对人而言不直观,难写难记。在计算机发明的初期,只有计算机专家可以二进制的机器语言与计算机交流,最早的程序是通过打孔机在纸带上编写的,如图0.4所示。不同的机器,机器指令可能是不同的,也就是说机器语言针对特定的机器,为一台机器编写的机器语言程序很难在另一台计算机上执行。图0.4 打孔机

2.汇编语言

针对机器语言不适合人使用的问题,通过一些简洁的英文字母或符号串来替代一个特定的二进制串指令,比如用ADD代表加法操作、MOV代表数据传递操作,这就产生了汇编语言(Assembly Language)。计算机不能认识这些符号,需要将这些符号翻译成二进制数的机器指令,这种翻译程序称为汇编程序;汇编语言同样依赖于具体的机器硬件,移植性不好,但是执行效率较高。机器语言和汇编语言,都是直接操作硬件的,解决问题时不仅要考虑问题求解思路,更要熟悉机器内部结构。

3.面向过程的语言

为了解决机器语言和汇编语言遇到的问题,把人们的精力集中于解题思路上,关注数据加工过程,完成特定的功能,而不是过多地关注机器低层细节,面向过程的计算机语言(Procedure Oriented Language)诞生了。经过努力,1970年第一个面向过程的程序设计语言——Pascal语言出现,标志着结构化程序设计时期的开始;1972年贝尔实验室在B语言的基础上,开发出著名的C语言。

4.面向对象的语言

自20世纪80年代初开始,在软件工程设计的思想上,又产生了一次革命,产生了面向对象的程序设计语言(Object-Oriented Programming Language)。面向对象思想更接近人的思维方式,把现实世界抽象为类,类产生对象,对象具有属性和行为。最早出现了面向对象的程序设计Smalltalk语言;1983年在C语言的基础上产生了C++;在C++的基础上,1995年SUN公司推出了Java;在Java诞生之后,2000年微软推出了C#。0.3 Java语言简史

著名的SUN(Stanford University Network)微系统公司1982年创建。1991年SUN公司的James Gosling(Java之父,如图0.5所示)带领团队做关于家电的Green项目。Green项目组一开始使用 C++语言来开发,由于家电产品硬件的多样性和差异性以及 C++的不足,最后项目组放弃了C++,他们设计出了一种基于C++且平台独立的语言Oak,就是Java的前身。很不幸,Green项目失败了,没有给SUN带来任何收益。直到1994年,随着互联网的飞速发展,Green项目组使用Oak技术开发HotJava浏览器,第一次证明了该语言强大的能力。但是Oak已被注册,于是改名为Java。之后,世界上的浏览器市场最后被微软的IE吞并,HotJava浏览器从人们的视野中消失。图0.5 James Gosling图0.6 SUN墓碑

在哲学上,新事物的诞生与发展是前进性与曲折性的统一,前途是光明的,道路是曲折的, Java语言的发展史正好说明了这一规律。

1995年,SUN公司正式发布Java语言,次年发布了JDK 1.0(Java Developer’s Kit,Java开发工具包)。1998年12月,发布了JDK1.2,这个版本标志着Java已经进入Java 2时代,这个时期也是Java飞速发展的时期。JDK1.2发展为J2EE、J2SE和J2ME三大分支,得到了IT市场的追捧。但微软对Java眼红,由“J#事件”到“微软抛弃Java案”,虽然SUN最终胜利,但是Java错过了可视化编程的黄金时期。这一时期可视化编程如日中天,VB、Delphi成为可视化编程的佼佼者。也许是天意,Java语言因祸得福,躲过了可视化编程衰亡一劫。

在2004年10月,SUN发布了JDK1.5。J2SE更名为 Java SE,J2EE更名为Java EE,J2ME更名为Java ME。Java进入了Java 5时代,实现了第二次飞跃。

如图0.6所示,2009年4月IT巨头Oracle收购SUN,取得Java的版权,从此 Java属于Oracle公司。2010年Java之父James Gosling离开了Oracle,Java的命运堪忧。2011年7月,Oracle发布Java 7的正式版,Java 8即将问世。Oracle不肯放弃Java,凭借Oracle巨大财力和技术,Java的明天更美好!0.4 Java运行机制

Java语言的特点很多,最大的特点就是跨平台性,就是Java的程序不需要经过修改可以运行在多个操作系统平台上。我们知道不同的计算机硬件和不同的操作系统,差异性很大,Java跨平台性是怎么实现的呢?这就需要对虚拟计算机进一步扩展。0.4.1 Java虚拟机

JDK是Java开发工具包,JDK包含了JRE(Java Runtime Environment,Java运行环境),JRE中又包含JVM(Java Virtual Machine,Java虚拟机)软件。

在裸机上安装操作系统,这是计算机的第一次扩展,得到虚拟计算机;在虚拟计算机上安装JDK或JRE,计算机第二次扩展得到Java虚拟机JVM(运行JVM软件的虚拟计算机系统)。原来虚拟机的功能得到扩展,可以执行 Java命令、运行 Java应用软件。裸机、虚拟机和 JVM之间的关系如图0.7所示。Java虚拟机屏蔽了虚拟计算机(比如Windows系统计算机和 Linux系统计算机)的差异性,提供统一的Java编译技术。在JVM层次,针对Java语言而言,所有的计算机都是相同的,具有一般机器的特性。但是JVM本身不是跨平台的,一般由C/C++语言编写,Java 提供了不同操作系统下的JVM 版本,常见的有Linux 版、Mac OS 版、Solaris 版和Windows版。图0.7 裸机、虚拟机和JVM之间的关系0.4.2 运行机制

如图0.8所示,假设我们有一台Windows系统计算机和一台安装了Linux系统的计算机,并且均安装了对应的JDK(包含JVM软件),也就是说这两台计算机就是两台Java虚拟机。首先在Windows计算机上编写Java源程序A.java(Java源文件的扩展名是.java),经编译器编译A.java源文件后产生字节码(Bytecode)文件 A.class(字节码文件的扩展名.class)。字节码文件是经过Java编译器处理后的一种文件,只有JVM才能识别执行。然后将字节码文件A.class迁移到Linux计算机上,该计算机上的JVM使用JIT(Just In Time,即时编译)技术将字节码文件编译成本地机器码,然后让Linux系统运行该机器码,不是解释一句执行一句。图0.8 Java程序运行机制

Java语言的跨平台性,是指字节码文件不经过修改直接移植到其他平台上运行,也就是Java的口号“一次编译,处处运行”(Write once,run anywhere)。字节码文件跨平台的关键是JVM提供了跨平台的环境,但是JVM不是跨平台的,JVM完成字节码到本地机器码的转换。0.5 名词解释

Java语言中专业名称较多,容易产生概念混淆,下面集中解释一下。(1)Java SE:Java Standard Edition,即Java标准版,提供基本的低层支持,最新版是Java SE 7,Java SE是一个Java平台的名称。(2)Java EE:Java Enterprise Edition,即Java的企业版,前身是J2EE,主要构建企业应用系统。(3)Java ME:Java Micro Edition,即Java微型版本,主要用于嵌入式系统开发,现在主要用于开发手机游戏。(4)JDK:最新版本是JDK 1.7,是基于Java SE平台的开发程序发行版本,JDK是相对开发者而言,JDK包含JRE,JRE包含JVM,JVM包含JIT。0.6 习题

1.Java之父是谁?

2.J2EE是什么?(某企业面试题)

3.简要说明Java程序的运行机制。

4.说明JDK、JRE、JVM、JIT之间的关系。  第1章Java开发环境配置

本章重要性:★★★

本章学习目标:

掌握在Windows平台下JDK的安装与配置

了解在Linux平台下JDK的安装与配置

掌握Java环境测试

掌握第一个Java程序

掌握编译和执行命令

了解跨平台操作问题

了解集成开发环境

工欲善其事,必先利其器。Java开发环境配置是学习Java的基本功!下面将分别以Windows平台和Linux平台介绍Java开发环境的配置。然后演示第一个Java程序的编辑、编译和执行过程。1.1 Windows平台Java环境配置

Windows 操作系统是当今最为流行的PC 机操作系统,国内以Windows XP 系统为主。本教材将以Windows XP系统为例来介绍Windows平台下Java环境配置,Windows 7版本的操作相似,稍微有些差别。1.1.1 下载Java开发包JDK

JDK(Java Developer’s Kit)是Java开发工具包,是针对Java开发员的产品,用于开发Java程序。JDK包含了Java运行环境JRE、Java工具和Java基础类库,学会安装JDK是学好Java的第一步。JDK是免费的。(1)如图1.1所示,登录Oracle官方网站(http://www.oracle.com),将鼠标放到“DOWNLOADS”菜单上(无须单击),单击“Java for Developers”,进入Java下载页面。(2)在下一页面中单击第一个Java图标,如图1.2所示。在最近的一年期间,JDK7发布了6个更新版本,截稿时JDK最新版是JDK 7u7,也就是JDK 7的第7个更新版本。读者朋友在此页面中看到的应该是再次更新的版本。(3)接受协议“Accept License Agreement”,针对Windows XP 32位系统下载Windows x86版本,如图1.3所示;对于64位的操作系统,请下载Windows x64版本的JDK。此外,读者朋友可以看到其他平台下的JDK版本,比如Linux平台、Mac OS平台等。图1.1 Oracle官方网站图1.2 单击“Java”图标图1.3 选择Windows x86平台的JDK1.1.2 安装JDK(1)下载后得到“jdk-7u7-windows-i586.exe”文件。双击该可执行文件的文件名,将出现安装向导界面,如图1.4所示,单击“下一步”按钮。(2)如图1.5所示,可以选择安装路径。由于Java平台是系统程序,建议直接单击“下一步”按钮即可,默认安装到C:\Program Files\Java目录下面。请记住JDK的安装目录。图1.4 安装向导图1.5 选择安装目录(3)如图1.6所示,单击“下一步”按钮安装 JRE。在第0 章已经介绍,JRE(Java Runtime Enviroment)是Java的运行环境,JRE面向Java程序的使用者,而JDK是面向Java程序的开发者。JDK中已经包含了一个JRE,为什么还要再安装一个JRE呢?因为有些用Java开发的软件的运行需要JRE,比如集成开发工具Eclipse就需要单独的JRE。JRE是运行Java应用程序所必需环境的集合,包括JVM、核心类以及支持文件,但是不包含开发工具(比如编译器)。(4)如图1.7所示,安装完成,单击右上角“X”关闭按钮即可。此后会弹出窗口提示安装“JavaFX SDK”,无须安装,取消关闭即可。图1.6 安装JRE图1.7 安装完成(5)安装完成后,JDK 默认安装到目录 C:\Program Files\Java\下,此目录下读者可以发现一个jdk目录和一个jre目录。打开jdk目录,如图1.8所示。

• bin 目录。bin 是二进制binary 缩写,表示编译后的二进制可执行文件;在 JDK 的 bin 目录下可以看到“java.exe”和“javac.exe”两个文件,这就是Java的解释器和编译器命令。

• lib目录:lib是library的缩写,表示库文件;JDK的lib目录存放Java开发时所需要的类库和支持文件。

• jre目录。JDK的JRE,即Java运行环境,包含JVM、类库等文件。

• src.zip。JDK是开源的,src.zip压缩包中存放着Java类库的源代码文件,解压缩后即可看到源代码。

• include目录。包含C语言头文件,用于支持Java本地接口和Java虚拟机调试程序接口的本地代码编程。图1.8 JDK目录1.1.3 环境变量配置

1.右键单击“我的电脑”,选择“属性”菜单,弹出“系统属性”窗口;如图1.9所示,单击“高级”选项卡中的“环境变量”按钮,弹出“环境变量”对话框。

2.如图1.10所示,在“环境变量”窗口中的“系统变量”中找到Path变量;然后双击“Path”变量弹出编辑窗口,如图1.11所示。在Path的变量值最前面添加分号,与后面的路径值分开;这时只需要将JDK 的bin 目录的路径值(C:\Program Files\Java\jdk1.7.0_05\bin,建议复制路径值,以免出错)粘贴到分号前即可。图1.9 系统属性图1.10 环境变量

特别提示

输入的是英文下的分号,不要输入逗号。因为字符很小,分号和逗号很难区分。最后特别提醒,不要删除Path变量原有的变量值,否则会破坏系统环境变量的值。此外,在Administrator的用户变量中也有一个Path变量,只针对Administrator用户有效。建议读者朋友们设置系统变量中的Path变量值,这样对所有的用户都起作用。图1.11 Path变量

3.连续单击3次“确定”按钮,关闭上面所有对话框。设置Path变量的作用是让Windows可以找到Java的常用命令。

4.有些教材设置了classpath环境变量,其实从Java 5以后就对JDK做了优化,不再需要设置 classpath 环境变量。所以本教材不再介绍 classpath 环境变量的设置。如果需要设置 classpath环境变量,请百度一下相关资源即可。1.1.4 Java环境测试

1.打开命令行窗口。如果命令行窗口已经打开,请先关闭。单击计算机桌面左下角的“开始”菜单,在其中选择“运行”,弹出如图1.12所示的窗口,输入cmd(命令command的简写),回车即可进入命令行窗口,如图1.13所示。命令行是系统附带的DOS程序,可以执行常用的DOS命令。图1.12 运行窗口图1.13 命令行

2.测试编译器命令。输入“javac”命令,将出现如图1.14所示的界面,说明javac编译源文件命令(bin目录下的javac.exe)使用正常,即Path环境变量配置成功。图1.14 测试javac命令

3.测试 Java 解释器命令。在命令行中输入“java”,出现如图1.15所示的界面,说明 java解释器命令(bin目录下的java.exe)正常。图1.15 测试java命令

4.最后测试查看Java版本的命令“java -version”,将出现图1.16所示的界面。图1.16 查看JDK版本号

5.Java环境测试成功,Windows下的Java环境搭建成功。1.1.5 安装代码编辑器

编写Java程序,需要代码编辑器,但是JDK没有提供。我们可以直接使用Windows自带的“记事本”,但是记事本功能简单,不适合编辑代码。推荐大家使用Notepad++,它具有显示行号、突显关键字等特点,登录官网 http://notepad-plus-plus.org/,单击“download”下载安装程序,然后双击安装即可。1.2 Linux平台Java环境配置1.2.1 Linux简介

Linux是一类开放源代码和自由的类似Unix的操作系统,有众多发行版本。在服务器市场, Linux操作系统占有绝对的优势。在Linux发行版中,Ubuntu(包含基于Ubuntu的发行版)世界关注度排名第一。本书将以Linux Mint桌面版(基于Ubutnu)为例,演示Linux平台Java环境的配置。关于Linux操作系统的安装已经超出了本书讲述的范围,因特网上有很多安装教程,读者可以参照自行安装。1.2.2 配置Java开发环境

第1步:从Oracle官网下载JDK,步骤与Windows平台类似。不同之处是Windows平台下(如图1.1所示)下载的是Windows x86版本或者Windows x64版本;在Linux平台下,如图1.17所示,对于32位的Linux系统需要下载Linux x86 版本的jdk-7u7-linux-i586.tar.gz,对于64位的Linux下载Linux x64 版本即可。

第2步:在下载目录中找到jdk-7u7-linux-i586.tar.gz压缩包,解压缩后将jdk1.7.0_07文件夹移至主目录中即可。图1.17 下载Linux版的JDK

第3步:通过“Ctr+Alt+T”组合键打开Linux的终端,或者在空白处右键单击选择“在终端中开打”也可以打开Linux终端,如图1.18所示;Linux终端功能上与Windows的命令行窗口相似。图1.18 Linux终端

第4步:在终端执行“sudo mkdir -p /usr/lib/jvm/”,创建jvm目录,第一次执行sudo语句时需要输入root密码(Linux系统根用户的密码,安装Linux时设定的),如图1.19所示。图1.19 输入密码

第5步:如图1.20所示,在终端执行“sudo mv jdk1.7.0_07//usr/lib/jvm/”,将解压缩后的jdk1.7.0_07文件夹移到jvm目录下面。图1.20 Linux命令

第6步:在终端继续执行命令“sudo add-apt-repository ppa:nilarimogard/webupd8”,设置PPA,获取密钥验证软件是否损坏,如图1.20所示。

第7步:在终端执行命令“sudo apt-getupdate”和“sudo apt-

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载