精华内容
下载资源
问答
  • C++: Temp *a = new Temp[n];  这时候C++不仅创建了一个Temp类型的数组,而且将数组的...这时候Java只创建了一个Temp类型的数组,如果要使用数组里的元素必须对数组进行初始化 for()循环对数组的元素进行初始化

    C++:

    Temp *a = new Temp[n]; 

    这时候C++不仅创建了一个Temp类型的数组,而且将数组的所有元素实例化,都会调用构造函数

    Java:

    Temp[] a = new Temp[n];

    这时候Java只创建了一个Temp类型的数组,如果要使用数组里的元素必须对数组进行初始化

    for()循环对数组的元素进行初始化


    展开全文
  • 一维数组初始化: 动态初始化:(声明并开辟数组) 数据类型[ ] 数组名称=new 数据类型[长度] int[ ] data=new int [5] :声明并开辟一个长度为5的数组 数组通过下标索引来获取元素,下标默认从0开始。数组下标...

    数组属于引用数据类型,在使用前必须初始化,否则会报NullPointerException(空指针异常:运行时异常)
    一维数组初始化:
    动态初始化:(声明并开辟数组)
    数据类型[ ] 数组名称=new 数据类型[长度]

    int[ ] data=new int [5] :声明并开辟一个长度为5的数组

    数组通过下标索引来获取元素,下标默认从0开始。数组下标超出数组长度,数组越界异常(运行时异常)

    数组中每个元素都有默认值,默认值是该数据类型默认值

    数组长度:数组名称.length

    数组遍历推荐使用JDK1.5 提供for-each循环(仅限于数组内容读取),要修改数组内容,还是使用常规for循环

        for(int x : data)
    

    {
    System.out.println(x+" ");
    }
    引用传递:多个栈内存指向同一块堆内存

    int[ ] tmp=data; //引用传递 注意是地址的传递
    tmp[3]=10; ----> x[3]=10;

    数组静态初始化
    简化格式:
    数据类型[ ] 数组名称 ={值,值…}
    完整格式: (推荐使用)
    数据类型[ ] 数组名称 =new 数据类型[ ]{值,值…}
    int[ ] data =new int[ ] {1,2,3} ;

    长度 :数组名称.length ,静态初始化长度固定,根据值的个数确定长度,并且长度不可修改

    匿名数组:没有任何栈内存指向,在使用一次后会变成垃圾,只会使用一次

    二维数组
    动态初始化:数据类型[ ][ ] 数据名称 =new 数据类型[ 行个数] [列个数]

    int[ ] [ ]data =new int [3][4];开辟行数为3,列数为4的整型数组

    静态初始化:
    数据类型[ ][ ] 数组名称 =new 数据类型[ ][ ]{ {第一行的值},{第二行的值}…}

    int[ ][ ] data={{1,2,3},{4,5,6},{7}};

    x<data.length

    y<data[x].length

    对象数组初始化:

    首先看对象数组动态初始化:

    对象数组动态初始化
    public class ArrayDemo
    {
        public static void main(String[] args)
        {
            String[] str=new String[3];  //数组动态初始化,每个元素都是其对应数据类型的默认值
            for(String num :str)
            {
                System.out.print(num+"、"); //null、null、null、
            }
            str[0]=new String("pick");
            str[1]=new String("happy");
            str[2]=new String("day");
           for(String num :str)
           {
               System.out.print(num+"、"); //pick、happy、day、
           }
        }
    }
    

    对象数组静态初始化:

    public class ArrayDemo
    {
        public static void main(String[] args)
        {
            String[] str=new String[]{"pick","happy","day"};  //数组静态初始化,pick、happy、day、
           for(String num :str)
           {
               System.out.print(num+"、"); //pick、happy、day、
           }
        }
    }
    
    展开全文
  • java对象数组初始化

    2014-11-13 11:04:38
    对象数组初始化的过程中,
    在对象数组初始化的过程中,一定要用对象的构造方法为数组各项赋值。否则初始化不完整。报java.lang.NullPointerException。如下代码如果注释掉dogs[i] = new dog();将会出错。虽然是个小问题,但是在写大型程序时尤其要注意,因为在eclipse保存文件后此错误不提示,运行后会发现。如果是大型程序调试会比较麻烦。
    public class dog {
    	
    	int color;
    	int size;
    	public dog(){
    		this.color = 8;
    		this.size = 9;
    	}
    	
    	public static void main(String args[]){
    		dog[] dogs;
    		dogs = new dog[2];
    		for(int i = 0; i < dogs.length ; i++){
    //			dogs[i] = new dog();
    			System.out.println(dogs[i].color);
    		}
    	}
    
    }
    

    展开全文
  • java对象数组 创建对象数组初始化对象数组

    万次阅读 多人点赞 2019-07-30 16:34:15
    对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构...

    对象数组的概念:
    如果一个数组中的元素是对象类型,则称该数组为对象数组。
    当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。
    对象数组的定义和使用:
    对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。
    对象数组的声明形式是:
    类名 对象数组名 [ ];
    为对象数组分配内存空间:
    对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了
    可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程:
    for(int i=0;i<stu.length;i++)
    stu[i]=new Student();
    实例化以后就可以使用每一个元素对象。
    设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息

    //设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
    class Employee {   //雇员类
     private String id;  //编号
     private String name; //姓名
     private int age;     //年龄
     private String vocation; //职务
     public Employee(){} //构造方法一
     public Employee(String id,String name,int age,String vocation){
      set(id,name,age,vocation);
     }
     //设置属性的方法
     public void set(String id,String name,int age,String vocation){
      this.id=id;
      this.name=name;
      this.age=age;
      this.vocation=vocation;
     }
     public String toString() {
      String mess=id+","+name+","+age+","+vocation;
      return mess;
     }
    }
    public class Example4  {
     public static void main(String[] args) {
      Employee 雇员[]=new Employee[3];
      int i;
      for(i=0;i<雇员.length;i++)//为对象数组中每一个元素实例化
      雇员[i]=new Employee();//如果没有写构造方法一,而这样写,会出错
      //因为类中有有参的构造方法,系统就不会在默认给无参的构造方法了,
      //所以当类中写了有参的构造方法后,要用无参的构造方法时必须写出来
      
      //每一个对象元素分别初始化
      雇员[0].set("0001","张文军",50,"总经理");
      雇员[1].set("0002","李琦",45,"副经理");
      雇员[2].set("1016","张丽",28,"秘书");
      for (Employee employee:雇员)
       System.out.println(employee.toString());
     }
    }
    

    在这里插入图片描述
    普通型for循环和增强型for循环
    普通型

    a={1,2,3,4,5};
    for(int i=0;i<a.length;i++) {
     System.out.println9(a[1]);
    }
    

    增强型

    for(int element:a) {
    System.out.println(element);
    }
    

    两者结果相同,但是增强型更为简洁

    对象数组还可以采用初始化的方法创建。创建形式是:
    类名 对象数组名[ ]={对象列表};

    设计一个雇员类,创建雇员类的对象数组并初始化,输出每个雇员的信息,仍然沿用上面的Employee类,程序如下

    class Employee {   //雇员类
     private String id;  //编号
     private String name; //姓名
     private int age;     //年龄
     private String vocation; //职务
     public Employee(){} //构造方法一
     public Employee(String id,String name,int age,String vocation){
      set(id,name,age,vocation);
     }
     //设置属性的方法
     public void set(String id,String name,int age,String vocation){
      this.id=id;
      this.name=name;
      this.age=age;
      this.vocation=vocation;
     }
     public String toString() {
      String mess=id+","+name+","+age+","+vocation;
      return mess;
     }
    }
    public class Example11 {
     public static void main(String[] args) {
      //先创建3个雇员对象
      Employee employee1=new Employee("0001","张文军",50,"总经理");
      Employee employee2=new Employee("0005","李琦",45,"副经理");
      Employee employee3=new Employee("1016","张丽",28,"秘书");
      //声明对象数组并直接初始化
      Employee 雇员1[]={employee1,employee2,employee3};
      output(雇员1);//输出雇员信息
      System.out.println("------------------");//分割线
      //声明对象数组并直接初始化,初始化元素直接调用
      //构造方法创建对象
      Employee 雇员2[]={new Employee("0001","张文军",50,"总经理"),
      new Employee("0005","李琦",45,"副经理"),
      new Employee("1016","张丽",28,"秘书")};
      output(雇员2);
     }
     //定义方法用于输出雇员信息,注意方法是private,static
     private static void output(Employee 雇员[]){
      for(Employee employee:雇员)
       System.out.println(employee.toString());
     }
    }
    

    在这里插入图片描述

    展开全文
  • Java对象数组初始化和排序

    千次阅读 2017-09-26 21:32:01
    java对象数组初始化和排序由于今天上机的一道题感觉比较坑,所以总结一下。
  • InnerClass是一个类,上述情况只是声明了arrays变量为一个长度为5类型为InnerClass的数组,每个对象的值都为null。 private InnerClass[] arrays = {new InnerClass(), new InnerClass(), new Inn
  • 中创建完对象数组之后你必须要对数组中的每一个对象进行实例化之后,才 可以去使用。 为啥要实例化的原因: 数组本身不是空,但是数组元素都是null , 需要自己去手动初始化,它并 没有调用元素对象的构造方法,不能...
  • -------------因为对象数组不会自动初始化,所以要对每个元素初始化。 而平常我们见到的int、double等类型是基本数据类型,对于基本数据类型的数组,如果没有人为初始化, 那么系统会自动初始化
  • 对象数组初始化(三种方法)

    万次阅读 2013-09-13 21:11:47
    参考自《More Effective ... 类对象数组初始化参考自《More Effective C++中文版》  类对象数组初始化  如有一个如下类:  class EquipmentPiece {  private:  int IDNumber;  public:  Equipm
  • 和基本数据类型一样,对象数组初始化也分为静态初始化,动态初始化两种 对象数组动态初始化 //定义Person类 class Person { public int age; } //主类 public class Test { public static void main(String[] ...
  • java数组 初始化 具有使用C或FORTRAN等语言进行编程的经验的人熟悉数组的概念。 它们基本上是一个连续的内存块,每个位置都是某种类型:整数,浮点数或您所拥有的。 Java中的情况与此类似,但有一些额外的折痕。 ...
  • import java.util.*; //要使用Scanner类public class testMain{ public static void main(String[] arg) { Student[] s=new Student[3];//没有对各个元素初始化 init(s);... } //初始化数组,如果没有初
  • Java数组初始化

    千次阅读 2019-05-06 22:34:32
    1.Java数组初始化的两种方法: 静态初始化:程序员在初始化数组时为数组每个元素赋值; 动态初始化:数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。 Java数组是一种引用数据类型。数组...
  • java初学,将遇到的问题记录一下。与继承有关的问题现有父类与子类:class Parent { void func() { System.out.println("father"); } }class Child extends Parent { void func() { System.out.println("child...
  • JAVA数组初始化

    万次阅读 2018-05-24 15:56:15
    JAVA数组初始化主要有两种方式,如下: dataType[] arrayRefVar;或者dataType arrayRefVar[]; 其中dataType可以是java支持的八中数据类型的任意一种,前者为首选方法; 通常用法如下: 创建一个包含n个元素的...
  • 所谓数组初始化,就是在堆内存中为数组对象分配一块连续的内存空间,并为每个数组元素指定初始值。 三、数组初始化方式 有两种方式: 1、静态初始化:由程序员显式指定每个数组元素的初始值,由系统确定数组...
  • java数组初始化以及数组拷贝

    千次阅读 2017-03-20 18:19:54
    //这里创建了一个可以存储100个整数的数组,当创建数值数组时,所有的元素都被初始化为0,boolean数组初始化为false,对象数组初始化为null值 2.数组的初始化  int[] a = {2,4,5,7,8};//数组的长度由
  • 非基本类型数组和基本类型数组初始化时的区别
  • java数组初始化详解

    2019-01-07 16:15:02
     //只声明数组a,没有初始化 2. int[] a = new int[5]; //初始化为默认值,int型为0 3. int[] a = {1,2,3,4,5}; //初始化为给定值 4. int[] a = new int[] {1,2,3,4,5}; //初始化为给定值  int[] a = new ...
  • 对象数组初始化 分为 静态初始化 和动态初始化
  • java中的默认初始化,针对的是基本的数据类型, 而对于 对象数组来说,默认值是null,是该对象的引用,而非对象本身,
  • java数组初始化与初始值

    千次阅读 2013-11-08 21:30:24
    初始化是为数组对象的元素分配内存空间,并为每个数组元素指定初始值。...java语言是典型的静态语言,因此数组是静态的,即是当数组初始化后,该长度是不可变的。 在java中,当执行动态初始化时,系统将为数
  • Java-数组初始化方式

    2017-05-19 15:45:18
    Java语言中: 一维数组的声明方式为: type arrayName[]或type[]...1.在Java语言中,数组被创建后,会根据数组存放的数据的数据类型初始化成对应的初始,例如int类型会初始化为0,对象类型会初始化为null; 2.另一
  • java 数组初始化

    2014-07-12 20:25:07
    Java语言的数组必须经过初始化才能够使用。所谓初始化就是为元素分配内存空间,并为每个数组元素指定初始值。 数组初始化方式有以下两种: 静态初始化:指在定义数组变量的同时指定数组元素。 int [] arr =...
  • Java是静态语言,所以Java数组也是静态的,即:数组初始化后,长度不可变 静态初始化:显式指定每个数组元素的初始值,系统决定数组长度 String[] books = new String[]{"疯狂Java讲义","Thinking in Java",...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 312,529
精华内容 125,011
关键字:

对象数组初始化java

java 订阅