Thinking in Java 习题 - 第二章
9月 8, 2013
练习1 #
/*创建一个类,它包含一个int域和一个char域,
他们都没有被初始化,将他们打印出来,
以验证java执行了默认初始化。*/
public class Test{
int i;
char c;
public Test(){
System.out.println("i="+i);
System.out.println("c=["+ c + ']');
}
public static void main(String[] args){
new Test();
}
}/*output:
i=0
c=[ ]
*/
练习2 #
/*创建一个Hello,world程序,该程序只要输出这句话即可。*/
class Test{
public static void main(String[] args){
System.out.println("Hello World");
}
}/*output:
Hello World
*/
练习3 #
/*找出含有ATypeName的代码段,将其改写成完整的程序,
然后编译,运行。
*/
class ATypeName{
public static void main(String[] args){
ATypeName a = new ATypeName();
}
}///:~
练习4 #
/*将DataOnly代码段改写成一个程序,然后编译,运行。*/
class DataOnly{
int i;
double d;
boolean b;
public static void main (String[] args){
DataOnly D = new DataOnly();
D.i=1;
D.d=1.23;
D.b=false;
}
}/*Output:
D.i=1
D.d=1.23
D.b=false
*/
练习5 #
/*修改前一个练习,将DataOnly中的数据在main()方法中赋值并打印出来。*/
class DataOnly{
int i;
double d;
boolean b;
public static void main (String[] args){
DataOnly D = new DataOnly();
D.i=1;
D.d=1.23;
D.b=false;
System.out.println("D.i="+D.i);
System.out.println("D.d="+D.d);
System.out.println("D.b="+D.b);
}
}/*Output:
D.i=1
D.d=1.23
D.b=false
*/
练习6 #
/*编写一个程序,让它含有本章所定义的storage()方法的代码段,并调用之。*/
class Storage{
static String s="Hello";
int storage(String s){
return s.length()*2;
}
public static void main(String[] args){
Storage st = new Storage();
System.out.println("Storage(s)=" + st.storage(s));
}
} /*output:
Storage(s)=10
*/
练习7 #
/*将Incrementable的代码段改写成一个完整的可运行程序*/
class StaticTest{
static int i = 0;
}
class Incrementable{
static void increment(){
StaticTest.i++;
}
public static void main (String args[]){
Incrementable st = new Incrementable();
Incrementable.increment();
}
}
练习8 #
/*编写一个程序,展示无论你创建了某个特定类的多少个对象,
这个类中的某个特定的static域只有一个实例*/
class Test{
static int i = 21;
public static void main(String args[]){
Test t1 = new Test();
Test t2 = new Test();
System.out.println("t1.i="+t1.i+";t2.i="+t2.i);
t1.i++;
System.out.println("t1.i="+t1.i+";t2.i="+t2.i);
}
} /*output:
t1.i=21;t2.i=21
t1.i=22;t2.i=22
*/
练习9 #
/*编写一个程序,展示自动包装功能对所有的基本类型和包装器类型都起作用*/
class AutoBoxTest{
public static void main (String args[]){
boolean b = true;
int i = 21;
char c ='c';
long l = 1L;
double d = 2.1d;
float f = 2.1f;
boolean B = b;
int I = i;
char C = c;
long L = l;
double D = d;
float F = f;
System.out.println("boolean="+B);
System.out.println("int="+I);
System.out.println("char="+C);
System.out.println("long="+L);
System.out.println("double="+D);
System.out.println("float="+F);
}
}/*Output:
boolean=true
int=21
char=c
long=1
double=2.1
float=2.1
*/
练习10 #
/*编写一个程序,打印出从命令行获得的三个参数,为此,
* 需要确定命令行数组中String的下表。*/
class Test{
public static void main(String[] args){
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
}
}/*答案是这样写的,编译不过,也不懂,求解!!*/
练习11 #
/*将AllTheColorsOfTheRainbow这个实例改写成一个程序,然后编译,运行*/
class AllTheColorsOfTheRainbow{
int AnIntegerRepresentingColors;
void changeTheHueOfTheColor(int newHue){
AnIntegerRepresentingColors = newHue;
}
public static void main (String[] args){
AllTheColorsOfTheRainbow all = new AllTheColorsOfTheRainbow();
all.changeTheHueOfTheColor(27);
}
}
练习12 #
/*找出HelloData.java的第二个版本,也就是那个简单注释文档的示例,对该文件执行javadoc,然后通过web浏览器观看运行结果*/
import java.util.*;
/*The first Thinking in Java example program.
* Displays a string and today's date
* @author Bruce Eckel
* @author www.MindView.net
* @version 4.0
* */
public class HelloDate{
/*Entry point to class &application.
* @param args array of string arguments
* @throws exceptions No exceptions thrown
* */
public static void main (String[] args){
System.out.println("Hello,it's:");
System.out.println(new Date());
}
}/*Output:
Hello,it's:
Sun Sep 08 12:11:08 CST 201
*/
后面的几个练习是关于 javadoc 的,不涉及程序问题。
第二章习题完结。