第二章
1.創建一個類,它包含一個int域和char域,它們都沒有被初始化,將它們的值打印出來,已驗證Java執行了默認初始化;
import java.util.*;
public class D對象習題答案 {
private int a;
private char b;
public D對象習題答案()
{
System.out.println("a is:"+a);
System.out.println("b is:"+b);
}
// public static void ff()
// {
// System.out.println("a is:"+a);
// System.out.println("b is:"+b);
// }
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner (System.in);
new D對象習題答案();
//ff();
}
}
運行結果:
a is:0
b is:
2.找出含有ATypeName的代碼段,將其改寫成完整的程序,然后編譯,運行;
public class ATypeName{
public static void main(String[] args)
{
ATypeName aTypeName=new ATypeName();
System.out.println(aTypeName);
}
}
運行結果:
ATypeName@15db9742
3.將DataOnly改寫成一個程序,然后編譯,運行;
public class DataOnly{
int i;
double d;
boolean b;
public static void main(String[] args)
{
DataOnly dataOnly=new DataOnly();
dataOnly.i=6;
dataOnly.d=2.1;
dataOnly.b=true;
System.out.println("i:"+dataOnly.i);
System.out.println("d:"+dataOnly.d);
System.out.println("b:"+dataOnly.b);
}
}
運行結果:
i:6
d:2.1
b:true
第五章初始化與清理
構造器
1.創建一個類,它包含一個未初始化的String引用,驗證該引用被Java初始化成了null;
public class Y1用構造器確保初始化 {
String s;
public static void main(String[] args)
{
Y1用構造器確保初始化 aa=new Y1用構造器確保初始化();
System.out.println(aa.s);
}
}
output:
null
2.創建一個類,它包含一個在定義時就被初始化了的String域,以及另一個通過構造器初始化的String域,這兩種方式有何差異?
ublic class Y1用構造器確保初始化{
String s1="s1";
String s2;
{
System.out.println("before constructor s1="+s1+",s2="+s2);
}
public Y1用構造器確保初始化(String s2)
{
this.s1=s1;
System.out.println("in constructor s1="+s1+",s2="+s2);
}
public static void main(String[] args)
{
Y1用構造器確保初始化 aa=new Y1用構造器確保初始化("s2");
}
}
output:
before constructor s1=s1,s2=null
in constructor s1=s1,s2=s2