练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化。将他们的值打印出来,以验证Java执行了默认初始化

public class JavaThinking {

    private static int i;
private static char c; public static void main(String[] args){
System.out.println(i);
System.out.println(c); //这里char的默认值为'\u0000'可以这样输出
System.out.println(c == '\u0000'); //结果为true证明char的默认值是'\u0000'
} }

运行结果:

0

true
说明:在Java中,只有成员变量才会赋值,对于局部变量,不会有默认值。第二行输出之所以显示空白是因为空白符的code是0x20,0x20以下为不可见的控制字符

练习2:参照本章的HelloDate.java这个例子,创建一个"Hello,World"程序,该程序只需输出这句话即可。你所编写的类里只需一个方法(即"main"方法。在程序启动时被执行)。记住要把它设为static形式,并指定参数列表-即使根本不会用到这个表。用javac进行编译,再用java运行它。如果你使用的是不同于JDK的开发环境,请了解如何在你的环境中进行编译和运行

public class JavaThinking {

    public static void main(String[] args){
System.out.println("Hello,World");
} }

练习3:找出含有ATypeName的代码段,将其改写成完整的程序,然后编译、运行

class ATypeName{
public ATypeName() {
System.out.println("补全ATypeName代码");
}
} public class JavaThinking { public static void main(String[] args){
ATypeName a = new ATypeName();
} }

练习4:将DataOnly代码段改写成一个程序,然后编译、运行

class DataOnly{
int i;
double d;
boolean b;
} public class JavaThinking { public static void main(String[] args){
DataOnly data = new DataOnly();
data.i = 47;
data.d = 1.1;
data.b = false;
System.out.println(data.i);
System.out.println(data.d);
System.out.println(data.b);
}
}

练习5:修改前一个练习,将DataOnly中的数据在main()方法中赋值并打印出来

答案参考练习四

练习6:编写一个程序,让它含有本章所定义的storage()方法的代码段,并调用之。

public class JavaThinking {

    public static void main(String[] args){
String s = "helloworld";
System.out.println(storage(s));
} public static int storage(String s){
return s.length()*2;
}
}

练习7:将Incrementable的代码段改写成一个完整的可运行程序

class StaticTest{
static int i = 47;
} class Incrementable{
static void increment(){
System.out.println(StaticTest.i++);
}
} public class JavaThinking { public static void main(String[] args){
Incrementable sf = new Incrementable();
//通过对象调用static方法
sf.increment();
//通过类名调用static方法
Incrementable.increment();
}
}

练习8:编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类中的某个特定的static只有一个实例

class StaticTest{
static int i = 47;
} public class JavaThinking { public static void main(String[] args){
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
System.out.println("st1=" + st1.i + ", " + "st2=" + st2.i); StaticTest.i++;
System.out.println("st1=" + st1.i + ", " + "st2=" + st2.i);
}
}

练习9:编写一个程序,展示自动包装功能对所有的基本类型和包装器类型都起作用。

public class JavaThinking {

    public static void main(String[] args){
Character ch = 'x'; // 自动包装功能将 基本类型转为包装器类型
System.out.println(ch); char c = ch; //包装器类型转为基本类型
System.out.println(c);
}
}

练习10:编写一个程序,打印出从命令行获得的三个参数。为此,需要确定命令行数组中String的下标

public class JavaThinking {

    public static void main(String[] args){
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
}
}
cmd命令行输入 java JavaThinking hello world !查看结果

练习11:将AllTheColorsOfRainbow这个示例改写成一个程序,然后编译、运行

class AllTheColorsOfTheRainbow
{
int anIntegerRepresentingColors;
void changeTheHueOfTheColor(int newHue){
anIntegerRepresentingColors = newHue;
System.out.println(anIntegerRepresentingColors);
}
} public class JavaThinking
{
public static void main(String[] args)
{
AllTheColorsOfTheRainbow rc = new AllTheColorsOfTheRainbow();
rc.changeTheHueOfTheColor(7);
}
}

练习12:找出HelloDate.java的第二个版本,也就是那个简单注释文档的示例。对该文件执行javadoc,然后通过Web浏览器查看运行结果

import java.util.Date;

/**
* The first Think in java example program
* Display a string and today's date.
* @author Bruce Eckel
* @version 4.0
*/
public class HelloDate
{
/**
*Entrv point to class & application.
*@param args array of String arguments.
*@throws exception No exceptions thrown
*/
public static void main(String[] args)
{
System.out.println("Hello, ist's: ");
System.out.println(new Date());
}
} 在cmd命令行输入 javadoc -d mydoc HelloDate.java
javadoc工具的使用格式如下
javadoc[选项][保存注释的文件名][源文件][@filie]
@file指的是包含文件

练习13:通过javadoc运行Documentation1.java, Documentation2.java和Documentation3.java,然后通过Web浏览器观看所产生的文档

练习14:在前一个练习的文档中加入各项的HTML列表

练习15:使用练习2的程序,加入注释文档。用javadoc提取此注释文档,并产生一个注释文件,然后通过Web浏览器查看结果。

练习16:找到第5章中的Overloading.java示例,并为它加入javadoc文档。然后用javadoc提取此注释文档,并产生一个HTML文件,最后,通过Web浏览器查看结果

Java编程思想第四版第二章练习题答案的更多相关文章

  1. java编程思想第四版第二章要点总结

    1. 基本类型 基本类型 二进制位数 包装器类 boolean - Boolean byte 8 Byte char 16 Character short 16 Short int 32 Intege ...

  2. java编程思想第四版第九章总结

    1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子, ...

  3. java编程思想第四版第九章习题

    第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...

  4. 《Java编程思想第四版》附录 B 对比 C++和 Java

    <Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...

  5. Java编程思想第四版勘误

    坊间传说这本书翻译得很烂,我倒觉得还好.虽然看原文更准确,但是如果在具备一定编程思维和基础.能够看出来疑问的情况下,还是看中文更快一些,而且这本书本身也不适合初学者看.当然,错误和不通顺还是有的,而且 ...

  6. java编程思想第四版中net.mindview.util包下载,及源码简单导入使用

    在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载 ...

  7. Java编程思想第四版完整中文高清版.pdf

    Java编程思想第四版完整中文高清版.pdf 链接: https://pan.baidu.com/s/1vV5BHF3L-bnaG6WGurdJ_A 提取码: vigy 复制这段内容后打开百度网盘手机 ...

  8. 《Java编程思想第四版完整中文高清版.pdf》-笔记

    D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...

  9. Java编程思想_笔记_第二章_一切都是对象

    第二章对于知识只是点到,会在以后章节会详细展开. 笔记的侧重会偏向记录自己知识模糊的地方.比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而 “使用对象.成员名称来使用成员变量”,较简单而 ...

随机推荐

  1. python print end=' ' 不换行

    python3.x 实现print 不换行 python中print之后是默认换行的,是因为其默认属性 end 默认值为"\n"(\n为换行符). 做练习99乘法表时不想换行,改变 ...

  2. Qt error ------ incomplete type 'QApplication' used in nested name specifier

    没有包含 ‘QApplication’ 头文件

  3. 利用Sentinel实现Redis主从切换

    利用Sentinel(哨兵)实现Redis集群的故障自主切换 首先部署redis主从集群,主要安装过程: cd redis make make install 主要看配置文件: master: bin ...

  4. 转:Block原理及引用循环问题

    2010年WWDC发布iOS4时Apple对Objective-C进行了一次重要的升级:支持Block.说到底这东西就是闭包,其他高级语音例如Java和C++已有支持,第一次使用Block感觉满简单好 ...

  5. 3.fIddler的使用

    https://blog.csdn.net/chaoyu168/article/details/51065644 https://blog.csdn.net/u013474436/article/de ...

  6. angularJS $watch $apply $digest

    看O'Reilly的书看到$watch这部分,不过没看懂,网上很多资料也含糊不清,不过还是找到了几个好的,简单记录一下. 一句话说明,$watch是用来监视变量的,好了直接上代码 <html&g ...

  7. Redis实战(一)CentOS 7上搭建redis-3.0.2

    1.安装redis wget http://download.redis.io/releases/redis-3.0.2.tar.gz tar zxvf redis-3.0.2.tar.gz cd   ...

  8. Linux/Unix 下自制番茄钟

    习惯使用番茄工作法,在Linux上工作时也需要一个番茄钟. 安装一个Linux下番茄钟工作软件? 其实根本没必要,我们可以用Linux下经典的at命令实现一个简单的番茄钟. 安装AT 一般Linux基 ...

  9. Python练习-递归二分算法

    # 编辑者:闫龙 #递归,二分算法演示 l = [i for i in range(1,100)]#定义一个列表l,并追加1-99的所有数字 def FindNum(num,l):#定义函数FindN ...

  10. JS设计模式——9.组合模式

    组合模式概述 组合模式是一种专为创建Web上的动态用户界面量身定制的模式.使用这种模式可以用一条命令在多个对象上激发复杂的递归的行为. 它可以用来把一批子对象组织成树形结构,并且使整棵树都可被遍历.所 ...