this.name = new name;
按照你的定义,上面这条语句应该是用来把Cat方法传递过来的name赋值给新建对象的,即赋值给新建对象在堆中的name,首先语句使用就有问题,有语法错误,应该改为this.name = name;
其次你所说的“数组元素还可以是什么呢,对象,函数?”,首先数组定义的是什么数据类型或者类的类型(类的内容是什么),就给元素赋什么样的值,自不用问,比如例子中如果arr[]这个数组的数据类型如果是Cat(猫)类型,那么元素肯定是猫这个对象。- class Cat
- {
- String name;
- Cat(String name)//这个地方用到了构造函数
- {
- //this.name = new name;
- /*按照你的定义,上面这条语句应该是用来把Cat方法传递过来的name赋值给新建对象的,
- 即赋值给堆中的对象的name,首先语句使用就有问题,有语法错误,应该替换为
- 下面这条语句*/
- this.name = name;
- show();//定义了一个show方法输出Cat对象的name
- }
- //show方法
- public void show()
- {
- System.out.println("name="+this.name);
- }
- }
- class ArrayDemo
- {
- public static void main(String[] args)
- {
- Cat C = new Cat("加菲猫");
- /*构造函数新建对象即初始化,即在建立对象之后就已经给对象初始化了,
- 所以会输出name=加菲猫*/
- //定义猫的数组
- Cat[] C1 = new Cat[3];
- //上面是用for循环实现的,这里用下面的方法实现
- for (int i = 0; i < C1.length; i ++)
- {
- C1[2] = new Cat("波斯猫"+i);
- }
- }
- }
复制代码 |