Java编程思想-练习题(4.7)

时间:2023-02-22 16:17:45
  1. 默认构造器创建一个类(没有自变量),打印一条消息。创建属于这个类的一个对象。
class Bowl {
    Bowl(){
        System.out.println("this is class Bowl");
    }
}
public class Test {
    public static void main(String[] args) {
        new Bowl();
}   
}

运行结果:
this is class Bowl
2. 练习1的基础上增加一个过载的构造器,令其采用一个String的变量, 并随同自己的消息打印出来。

class Bowl {
    Bowl(){
        System.out.println("this is class Bowl");
    }
    Bowl(String s){
        System.out.println("this is class Bowl " + s);
    }
}
public class Test {
    public static void main(String[] args) {
        new Bowl("hello");
}   
}

运行结果:
this is class Bowl hello
3. 以练习2创建的类为基础,创建属于它对象句柄的一个数组,但不要实际创建对象并分配到数组里。运行程序时,注意是否打印来自构建器调用的初始化信息。

class Bowl {
    Bowl(){
        System.out.println("this is class Bowl");
    }
    Bowl(String s){
        System.out.println("this is class Bowl " + s);
    }
}
public class Test {
    public static void main(String[] args) {
        Bowl[] b = new Bowl[5];
        System.out.println(b.length);
}   
}

运行结果:
5
这种方式并没有实际创建Bowl对象,故没有调用Bowl的构造器。
仅仅表示创建Bowl句柄数组,数组内的句柄此时都为null。

  1. 创建同句柄数组联系起来的对象,并最终完成练习3。
class Bowl {
    Bowl(){
        System.out.println("this is class Bowl");
    }
    Bowl(String s){
        System.out.println("this is class Bowl " + s);
    }
}
public class Test {
    public static void main(String[] args) {
        Bowl[] b = new Bowl[5];
        for(int i = 0;i < b.length; i++){
            b[i] = new Bowl();
        }
        System.out.println(b.length);
}

运行结果:
this is class Bowl
this is class Bowl
this is class Bowl
this is class Bowl
this is class Bowl
5
此时创建5个Bowl对象,并将其与句柄数组关联起来。