Java编程思想第四版完整中文高清版
Java编程思想第四版完整中文高清版本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性,有需要的就快来下载吧
图书简介本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性
(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,
以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、
字符串、泛型、数组、容器深入研究、JavaI/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,
适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。
图书相关内容预览第4版特点适合初学者与专业人员的经典的面向对象叙述方式,为更新的Java SE5/6增加了新的示例和章节。
?测验框架显示程序输出。
设计模式贯穿于众多示例中:适配器、桥接器、职责链、命令、装饰器、外观、工厂方法、享元、点名、数据传输对象、空对象、代理、单例、状态、策略、模板方法以及访问者。
为数据传输引入了XML,为用户界面引入了SWT和Flash。
重新撰写了有关并发的章节,有助于读者掌握线程的相关知识。
专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。
支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。
覆盖了所有基础知识,同时论述了高级特性。
详细地阐述了面向对象原理。
在线可获得Java讲座CD,其中包含Bruce Eckel的全部多媒体讲座。
专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。
支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。
覆盖了所有基础知识,同时论述了高级特性。
详细地阐述了面向对象原理。
在线可获得Java讲座CD,其中包含Bruce Eckel的全部多媒体讲座。
java编程思想课后习题练习及答案1)创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证java执行了默认初始化。
public class Code1 { private int a; private char b; public Code1(){ System.out.println("a is :"+a); System.out.println("b is :"+b); } public static void main(String[] args) { new Code1(); }}
运行结果:
a is :0 b is :
2)参照本章HelloDate.java这个例子,创建一个“hello,world”程序,该程序只要输出这句话即可。你所编写的类里只需要一个方法(即main方法,在程序启动时被执行)。
记住要把它设为static形式,并指定参数列表-即使根本不会用到这个列表。用javac进行编译,再用java运行它,如果你使用的是不同于jdk的开发环境,请了解如何在你的环境中进行编译和运行。
public class HelloWorld { public static void main(String [] args){ System.out.println("hello world"); } }
运行结果:
hello world
3)找出含有ATypeName的代码段,将其改写成完整的程序,然后编译,运行。
public class ATypeName { public static void main(String[] args) { ATypeName aTypeName = new ATypeName(); System.out.println(aTypeName); }}
运行结果:
ATypeName@39ed3c8d
4)将DataOnly改写成一个程序,然后编译,运行。
public class DataOnly { int i; double d; boolean b; public static void main(String[] args) { DataOnly dataOnly = new DataOnly(); dataOnly.i = 5;
dataOnly.d = 6.1; dataOnly.b = true; System.out.println("i: "+dataOnly.i); System.out.println("d: "+dataOnly.d); System.out.println("b: "+dataOnly.b); } }
运行结果:
i: 5 d: 6.1 b: true
5)修改前一个练习,将DataOnly中的数据在main()方法中赋值并打印出来。
public class DataOnly2 { public static void main(String[] args) { DataOnly dataOnly = new DataOnly(); dataOnly.i = 3;
dataOnly.d = 3.1; dataOnly.b = false; System.out.println("i: "+dataOnly.i); System.out.println("d: "+dataOnly.d);
System.out.println("b: "+dataOnly.b); } }
运行结果:
i: 3 d: 3.1 b: false
6)编写一个程序,让它含有本章所定义的storage()方法的代码段,并调用之。
public class Code6 { int storage(String s){ return s.length()*2; } public static void main(String[] args) {
Code6 code6 = new Code6(); String s = "hello world"; System.out.println("需要"+code6.storage(s)+"字节才能容纳s这个字符串中的信息"); } }
运行结果:
需要22字节才能容纳s这个字符串中的信息
7)将Incrementable的代码段改写成一个完整的可运行程序。
public class StaticTest { static int i = 47; } public class Incrementable { static void increment(){ StaticTest.i++; };
public static void main(String[] args) { System.out.println(StaticTest.i); Incrementable.increment(); System.out.println(StaticTest.i); } }
运行结果:
47 48
8)编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类中的某个特定的static域只有一个实例。
public class StaticClassTest { static { System.out.println("test outprint"); } public static void main(String[] args) {
StaticClassTest staticClassTest = new StaticClassTest(); StaticClassTest staticClassTest1 = new StaticClassTest(); StaticClassTest staticClassTest2 = new StaticClassTest(); } }
运行结果:
test outprint
9)编写一个程序,展示自动包装功能对所有基本类型和包装器类型都起作用。
public class PackagingTest { public static void main(String[] args) { Byte bt = 1; byte bt1 = bt; System.out.println(bt +" "+ bt1);
Short st = 1; short st1 = st; System.out.println(st +" "+ st1); Integer integer = 1; int it = integer; System.out.println(integer +" "+ it);
Long ln = 1L; long ln1 = ln; System.out.println(ln +" "+ ln1); Float fl = 1.0f; float fl1 = fl; System.out.println(fl +" "+ fl1); Double db = 1.0;
double db1 = db; System.out.println(db +" "+ db1); Boolean bl = true; boolean bl1 = bl; System.out.println(bl +" "+ bl1); Character cr = '1'; char cr1 = cr; System.out.println(cr +" "+ cr1); } }
运行结果:
1 1 1 1 1 1 1 1 1.0 1.0 1.0 1.0 true true 1 1
10)编写一个程序,打印出从命令行获得的三个参数,为此,需要确定命令行数组中String的下标。
public class CommendTest { public static void main(String[] args) { System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); } }
设置命令行参数:
运行结果:
abc a a
11)将AllTheColorsOfTheRainbow这个示例改成一个程序,然后编译,运行。
public class AllTheColorsOfTheRainbow { int anIntegerRepresentingColors; void changeTheHueOfTheColor(int newHue){ anIntegerRepresentingColors = newHue; } public static void main(String[] args) { AllTheColorsOfTheRainbow allTheColorsOfTheRainbow = new AllTheColorsOfTheRainbow(); System.out.println(allTheColorsOfTheRainbow.anIntegerRepresentingColors); allTheColorsOfTheRainbow.changeTheHueOfTheColor(8); System.out.println(allTheColorsOfTheRainbow.anIntegerRepresentingColors); } }
运行结果:
0 8
12)找出HelloDate.java的第二版本,也就是那个简单注释文档的示例。对该文件执行javadoc,然后通过Web浏览器观看运行效果。
文档生成无异常,报错不知何解?
13)通过javadoc运行Documentation1.java,Documentation2.java和Documentation3.java,然后通过Web浏览器验证所产生的文档。
Documentation1:
Documentation2:
Documentation3:
14)在前一个练习的文档中加如各项的html列表。
不太理解,大体上做了个拼接。。
//: object/Documentation3.java /** * <pre> * System.out.println(new Date()); * </pre> * A class comment * You can <em>even</em> insert a list: * <ol> * <li> Item one * <li> Item two * <li> Item three * </ol> */ public class Documentation3 { /** A field comment */ public int i; /** A method comment */ public void f() {} } ///:~
15)使用练习2的程序,加入注释文档。用javadoc提取此注释文档。并产生一个html文件,然后通过web浏览器验证文档。
/** * my first class * @author maple * @version 1.0.0 */ public class HelloWorld { /** * a method print helloworld * @param args commend param * @deprecated print a String */ public static void main(String [] args){ System.out.println("hello world"); } }/* Output: Hello, world! *///:~
运行结果: