黑马程序员技术交流社区

标题: 数组有关问题 [打印本页]

作者: 詹英鹏    时间: 2011-12-31 18:06
标题: 数组有关问题
本帖最后由 詹英鹏 于 2012-1-2 11:26 编辑

可以这样定义一个int型数组int[] arr=new int[5];
然后初始化arr[1]=6;arr[2]=9......

比如一个
class Cat
     {
           String name;
          Cat(String name)
           {
                this.name=new name;
           }
     }
一个猫的类,可以不可以定义一个全是猫的数组,使用for语句要如何初始化啊
还有,数组元素还可以是什么呢,对象,函数?
作者: 杨旭    时间: 2011-12-31 18:33
  1. class Cat{
  2.         String name;
  3.         Cat(String name){
  4.                 this.name = name ;
  5.         }
  6. }
  7. public class Demo{
  8.         public static void main(String[] args) {
  9.                 Cat[] cats = new Cat[10];
  10.                 for (int i = 0; i < cats.length; i++) {
  11.                         cats[i] = new Cat("Maomao"+i);
  12.                 }
  13.                 for (Cat cat : cats) {
  14.                         System.out.println(cat.name);
  15.                 }
  16.         }
  17. }
复制代码

作者: 周吉明    时间: 2011-12-31 18:54
使用for循环初始化
int[] Arr = new int[5];
for(int i=0; i<intArr.length; i++){
    Arr[i] = i ;
}
“还有,数组元素还可以是什么呢,对象,函数?”数组元素好像只能是字符、数字、地址值等确定的值,你这一问我也不太清楚了。
作者: 李盈科    时间: 2011-12-31 20:12
先说第二个问题 数组可以存放任何类型,你定义什么类型就存放什么类型 也就是说可以存放原生数据类型 和 引用数据类型

程序的话我觉得2楼的同学写的不错
作者: 代臣    时间: 2011-12-31 21:01
this.name = new name;
按照你的定义,上面这条语句应该是用来把Cat方法传递过来的name赋值给新建对象的,即赋值给新建对象在堆中的name,首先语句使用就有问题,有语法错误,应该改为this.name = name;
其次你所说的“数组元素还可以是什么呢,对象,函数?”,首先数组定义的是什么数据类型或者类的类型(类的内容是什么),就给元素赋什么样的值,自不用问,比如例子中如果arr[]这个数组的数据类型如果是Cat(猫)类型,那么元素肯定是猫这个对象。
  1. class Cat
  2. {
  3.         String name;
  4.         Cat(String name)//这个地方用到了构造函数
  5.         {
  6.                 //this.name = new name;
  7.                 /*按照你的定义,上面这条语句应该是用来把Cat方法传递过来的name赋值给新建对象的,
  8.                 即赋值给堆中的对象的name,首先语句使用就有问题,有语法错误,应该替换为
  9.                 下面这条语句*/
  10.                 this.name = name;
  11.                 show();//定义了一个show方法输出Cat对象的name
  12.         }
  13.         //show方法
  14.         public void show()
  15.         {
  16.                 System.out.println("name="+this.name);
  17.         }
  18. }

  19. class  ArrayDemo
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Cat C = new Cat("加菲猫");
  24.                 /*构造函数新建对象即初始化,即在建立对象之后就已经给对象初始化了,
  25.                 所以会输出name=加菲猫*/

  26.                 //定义猫的数组
  27.                 Cat[] C1 = new Cat[3];
  28.                 //上面是用for循环实现的,这里用下面的方法实现
  29.                 for (int i = 0; i < C1.length; i ++)
  30.                 {
  31.                         C1[2] = new Cat("波斯猫"+i);
  32.                 }
  33.         }
  34. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2