java编程思想课后答案

第二章

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

你可能感兴趣的:(java编程思想课后答案)