第二章
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