Thinking in java 第2章 一切都是对象
习题
练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证Java执行了默认初始化。
public class E2_1 {
public int i;
public char c;
}
public class Main {
public static void main(String[] args) {
E2_1 e = new E2_1();
System.out.println(e.i);
System.out.println(e.c);
}
}
/*
0
*/
练习2:参照本章的HelloDate.java这个例子,创建一个“Hello,World”程序,该程序只要输出这句话即可。
public class E2_2 {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
/*
Hello, World
*/
练习3:找出含有ATypeName的代码段,将其改为完整的程序
public class E2_3 {
private int age;
private String name;
public E2_3() {
}
public E2_3(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "age=" + age +
", name='" + name;
}
}
public class Main {
public static void main(String[] args) {
E2_3 e = new E2_3();
e.setAge(18);
e.setName("ssss");
System.out.println(e);
}
}
/*
age=18, name='ssss
*/
练习4:将DataOnly代码段改写成一个程序。
略。同3
练习5:修改前一个联系,将DataOnly中的数据改写成mian()方法中赋值并打印出来。
略。同3
练习6:编写一个程序,让它含有本章所定义的storage()方法的代码段,并调用之。
public class E2_6 {
public static void main(String[] args) {
System.out.println(storage("abc"));
}
public static int storage(String s) {
return s.length()*2;
}
}
/*
6
*/
练习7:将Incrementtable的代码改写成一个完整的可运行程序。
public class E2_7 {
static int cnt = 0;
static void Increment() {
cnt++;
}
}
public class Main {
public static void main(String[] args) {
System.out.println(E2_7.cnt);
E2_7.Increment();
System.out.println(E2_7.cnt);
}
}
/*
0
1
*/
练习8:编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类中的某个特定的static域只有一个对象。
public class Main {
public static void main(String[] args) {
E2_7 e1 = new E2_7();
E2_7 e2 = new E2_7();
System.out.println(e1.cnt);
System.out.println(e2.cnt);
e1.Increment();
System.out.println(e1.cnt);
System.out.println(e2.cnt);
}
}
/*
0
0
1
1
*/
练习9:编写一个程序,展示自动包装功能对所有的基本类型和包装器类型都起作用。
略。即类似int和Integer可以自动装箱&拆箱。
练习10:编写一个程序,打印出从命令行获取的三个参数。为此,要确定命令行数组中String的下标。
import java.util.Scanner;
public class E2_10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String b = sc.next();
double c = sc.nextDouble();
System.out.println(b + a + c);
}
}
>10 aaaa 2.1
aaaa102.1
练习11:将AllTheColorsOfTheRainbow这个示例改写成一个程序。
略。同3
练习12-练习16 javadoc相关
略。