Thinking in Java 习题 - 第六章

Thinking in Java 习题 - 第六章

Sep 30, 2013
Java

练习1 #

package access;
//在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例。
public class Test1{
    public Test1 (){
        System.out.println("实例");
    }
}
import access.*;
public class Test {
    public static void main (String args[]){
        new Test1();
    }
}

练习2 #

//将本节中的代码片段改写为完整的程序,并校验实际所发生的冲突。

练习3 #

//创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,
//而第二版本什么也不做,使用静态import语句将该类导入到一个测试程序中,并示范条件编译效果。
package access;
import static debug.Test.*;

public class Main {
	public static void main (String args[]){
		debug("hello");
	}
}/*Output:
s:hello
*/
package debug;

public class Test {
	public static void debug (String s){
		System.out.println("s:"+s);
	}
}
package debugoff;

public class Test {
	public static void Test(){
		return;
	}
}

练习4 #

//展示protected方法具有包访问权限,但是它仍旧不是public的。
package access.local;

class Main {
	public static void main (String args[]){
		System.out.println("main:");
		access.debug.Test.greet();
	}
}//编译不通过
package access.debug;
public class Test{
	protected static void greet(){
		System.out.println("helloworld");
	}
}
package access.debug;

public class Test1 {
	public static void main(String args[]){
		System.out.println("Test1:");
		access.debug.Test.greet();
	}
}

练习5 #

package access.local;
//创建一个带有public,private,protected和包访问权限域以及方法成员的类。创建一个该类的一个对象,看看在你试图调用所有类成员时,
//会得到什么类型的编译信息。请注意,处于同一个目录中的所有类都是默认包的一部分。
public class Main{
	public int a;
	protected int b;
	private int c;
	int d;
	public void f1(){
		System.out.println("f1()");
	}
	protected void f2(){
		System.out.println("f2()");
	}
	private void f3(){
		System.out.println("f3()");
	}
	void f4(){
		System.out.println("f4()");
	}
	public static void main (String args[]){
		Main test = new Main();
		test.a=1;
		test.b=2;
		test.c=3;
		test.d=4;
		System.out.println(test.a);
		System.out.println(test.b);
		System.out.println(test.c);
		System.out.println(test.d);

		test.f1();
		test.f2();
		test.f3();
		test.f4();
	}
}

练习6 #

package access.local;
//创建一个带有protected数据的类,运用在第一个类中处理protected数据的方法在相同的文件中创建第二个类。
class Test{
	protected int a;
}
class Main{
	public static void main (String args[]){
		Test test = new Test();
		test.a=1;
		System.out.println("a="+test.a);
	}
}/*Output:
a=1
*/

练习7 #

//根据描述access和Widget的代码片段创建类库,在某个不属于access类库的类中创建一个Widget实例
package access.local;
import access.debug.Widget;;
public class Main {
	public static void main(String args[]){
		new Widget();
	}
}/*Output:
Widget!
*/
package access.debug;

public class Widget {
	public Widget(){
		System.out.println("Widget!");
	}
}

练习8 #

//效仿实例Lunch.java的形式,创建一个名为ConnectionManager的类,该类管理一个元素为Connection对象的固定数组。客户端程序员不能直接创建Connection对象,
//而只能通过ConnectionManager中的某个static方法来获取他们。当ConnectionManager之中不再有对象时,它会返回null引用。在main()之中检测这些类。

练习9 #

这章有点吃力。。本来以为挺简单的规则,看来这样复杂,需要经常回来看。

本文以 CC 署名-非商业性使用-禁止演绎 4.0 国际 协议进行许可。

上一篇:Thinking in Java 习题 - 第五章

下一篇:Thinking in Java 习题 - 第七章