[Java]Java编程思想(Thinking in Java)第二章习题

Head Pic: 「miku 口哨糖」/「千夜QYS3」のイラスト [pixiv]

练习1

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package xyz.cinema000.thinkinginjava.exercise.chapter2;

class Test{
int a;
char c;
}

public class Exercise1 {
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.a);
System.out.println(t.c);
}
}
/* Output:
* 0
*
*/

练习2

参照本章的HelloDate.java这个例子,创建一个Hello, World程序,该程序只要输出这句话即可。

1
2
3
4
5
6
7
8
9
10
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise2 {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
/* Output:
* Hello, World
*/

练习3

找出含有ATypeName的代码段,将其改为完整的程序。

1
2
3
4
5
6
7
8
9
10
11
package xyz.cinema000.thinkinginjava.exercise.chapter2;

class ATypeName{
/* Class body goes here. */
}

public class Exercise3 {
public static void main(String[] args) {
ATypeName a = new ATypeName();
}
}

练习4

DataOnly代码段改成一个程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package xyz.cinema000.thinkinginjava.exercise.chapter2;

class DataOnly{
int i;
double d;
boolean b;
}

public class Exercise4 {
public static void main(String[] args) {
DataOnly data = new DataOnly();
data.i = 47;
data.d = 1.1;
data.b = false;
}
}

练习5

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise5{
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);
}
}
/* Output:
* 47
* 1.1
* false
*/

练习6

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise6{
public static int storage(String s){
return s.length() * 2;
}

public static void main(String[] args){
System.out.println(storage("Hello"));
}
}
/* Output:
* 10
*/

练习7

Incrementable的代码段改写成一个完整的可运行程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package xyz.cinema000.thinkinginjava.exercise.chapter2;

class StaticTest{
static int i = 47;
}

class Incrementable{
static void increment(){
StaticTest.i++;
}
}

public class Exercise7{
public static void main(String[] args){
Incrementable.increment();
System.out.println(StaticTest.i);
}
}
/* Output:
* 48
*/

练习8

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package xyz.cinema000.thinkinginjava.exercise.chapter2;

class Static{
static int i = 0;
}

public class Exercise8{
@SuppressWarnings("static-access")
public static void main(String[] args){
Static a = new Static();
Static b = new Static();
a.i++;
System.out.println(a.i + "\n" + b.i);
b.i++;
System.out.println(a.i + "\n" + b.i);
}
}
/* Output:
* 1
* 1
* 2
* 2
*/

练习9

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise9{
@SuppressWarnings("unused")
public static void main(String[] args){
Boolean bo = true;
boolean b = bo;

Character ch = 'x';
char c = ch;

Byte byt = 0;
byte by = byt;

Short sh = 0;
short s = sh;

Integer in = 0;
int i = in;

Long lo = 0L;
long l = lo;

Float fl = 0.0F;
float f = fl;

Double dou = 0.0;
double d = dou;
}
}

练习10

编写一个程序,打印从命令行获取的三个参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise10 {
public static void main(String[] args) {
System.out.println(args[0] + " " + args[1] + " " + args[2]);
}
}

/*
* run arguments: java Exercise 666 777 888
* Output:
* 666 777 888
*/

练习11

AllTheColorOfTheRainbow这个示例改写成一个程序。

原谅我在这一章没有找到这个示例。

练习12

HelloDate.java的第二个版本执行javadoc。

此处

练习13

Documentation1.java,Documentation2.java,Documentation3.java执行javadoc。

此处

练习14

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise14 {

}

/**
* A class comment.
* @author cinema
*
*/
class Documentation1{
/**
* A field comment.
*/
public int i;
/**
* A method comment.
*/
public void f() {

}
}

/**
* <pre>
* System.out.println(new Date());
* </pre>
*/

/**
* You can <em>even</em> insert a list;
* <ol>
* <li>Item one</li>
* <li>Item two</li>
* <li>Item three</li>
* </ol>
*/

练习15

通过练习2的程序,加入文档注释,并执行javadoc。

略。

练习16

对第五章中Overloading.java加入文档注释,并执行javadoc。

略。

分享到: