精华内容
下载资源
问答
  • java对象数组初始化空指针异常关注:112答案:6mip版解决时间 2021-01-31 08:01提问者繁华落尽2021-01-30 13:43public class Test{public static void main(String args[]){int[] id1 = {1,2,3,4,5,6,7,8,9,10};...

    java对象数组初始化空指针异常

    关注:112  答案:6  mip版

    解决时间 2021-01-31 08:01

    e6cb1a03ad541b3098697807b7bf1798.png

    提问者繁华落尽

    2021-01-30 13:43

    public class Test{

    public static void main(String args[]){

    int[] id1 = {1,2,3,4,5,6,7,8,9,10};

    String[] name1 = {"a","b","c","d","e","f","g","h","i","j"};

    for(int i=0;i<10;i++){

    Student.stu[i] = new Student(id1[i],name1[i]);

    }

    }

    }

    public class Student{

    private int id;

    private String name;

    static Student[] stu;

    public Student(int i,String n){

    this.id=i;

    this.name=n;

    }

    }

    最佳答案

    e6cb1a03ad541b3098697807b7bf1798.png

    二级知识专家風聲提筆

    2021-01-30 14:47

    你没有给static Student[] stu;

    初始化啊

    public static void main(String args[]){

    int[] id1 = {1,2,3,4,5,6,7,8,9,10};

    String[] name1 = {"a","b","c","d","e","f","g","h","i","j"};

    Student.stu[]=new Student[10];

    for(int i=0;i<10;i++){

    Student.stu[i] = new Student(id1[i],name1[i]);

    }

    }

    全部回答

    e6cb1a03ad541b3098697807b7bf1798.png

    1楼妳説啲訫動

    2021-01-30 19:51

    static Student[] stu;

    改成static Student[] stu= new Student[10];就好了

    e6cb1a03ad541b3098697807b7bf1798.png

    2楼热情烫伤我自

    2021-01-30 18:49

    Student这个类里的public Student(int i,String n){.....}是用来初始化的,而你这个语句Student.stu[i] = new Student(id1[i],name1[i]);明显有错,要想用Student.stu[i]必须使用结构体。你可以在Test这个类里定义Student []stu=new Student[10];然后再在for循环里进行初始化:stu[i] = new Student(id1[i],name1[i]);这样就可以了。不懂可以继续追问

    e6cb1a03ad541b3098697807b7bf1798.png

    3楼橙池未蓝

    2021-01-30 17:47

    我把你的类调正了一下,因为你的student里面的数组没有没有初始化,所以空指针了。

    public class TestMain {

    public static void main(String args[]) {

    Student[] studentGroup = null;

    int[] id1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    String[] name1 = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };

    studentGroup = new Student[name1.length];

    for (int i = 0; i < 10; i++) {

    studentGroup[i] = new Student(id1[i], name1[i]);

    }

    for (int i = 0; i < studentGroup.length; i++) {

    System.out.print(studentGroup[i].getId());

    System.out.println(studentGroup[i].getName());

    }

    }

    }

    public class Student {

    public int getId() {

    return id;

    }

    public void setId(int id) {

    this.id = id;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    private int id;

    private String name;

    public Student(int i, String n) {

    this.id = i;

    this.name = n;

    }

    }

    e6cb1a03ad541b3098697807b7bf1798.png

    4楼相忘于江湖

    2021-01-30 17:12

    你创建stus数组,但他并没有实例化,在创建数组语句后你可以打印数组第一个元素,他显示为null,说明当前对象元素并没有创建成功,因此stus[i] = input.nextint()中stus[i]是不存在的

    e6cb1a03ad541b3098697807b7bf1798.png

    5楼看厌了山川

    2021-01-30 16:09

    Student.stu没有初始化

    public class Test{

    public static void main(String args[]){

    int[] id1 = {1,2,3,4,5,6,7,8,9,10};

    String[] name1 = {"a","b","c","d","e","f","g","h","i","j"};

    Student.stu = new Student[10];

    for(int i=0;i<10;i++){

    Student.stu[i] = new Student(id1[i],name1[i]);

    }

    }

    }

    class Student {

    private int id;

    private String name;

    static Student[] stu;

    public Student(int i,String n){

    this.id=i;

    this.name=n;

    }

    }

    我要举报

    如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

    →点此我要举报以上信息!←

    推荐资讯

    大家都在看

    展开全文
  • 对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :...

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

    //设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息

    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

    雇员[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

    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());

    }

    }

    展开全文
  • import java.io.*;class BankAccount{private double balance;public BankAccount(double openingBanlance){balance=openingBanlance;}public void deposit(double amount){balance=balance+amount;}public void wit...

    import java.io.*;

    class BankAccount{

    private double balance;

    public BankAccount(double openingBanlance)

    {

    balance=openingBanlance;

    }

    public void deposit(double amount)

    {

    balance=balance+amount;

    }

    public void withdraw(double amount)

    {

    balance=balance-amount;

    }

    public void display()

    {

    System.out.println("balance" + balance);

    }

    }

    import java.io.*;

    class BankApp{

    public static void main(String []args)

    {

    BankAccount bal[]=new BankAccount[4];

    System.out.println(bal[0]);

    System.out.println(bal[1]);

    System.out.println(bal[2]);

    System.out.println(bal[3]);

    bal[0]=new BankAccount(100.00);

    bal[0].display();

    bal[1]=new BankAccount(111.00);

    bal[1].display();

    System.out.println(bal[0]);

    System.out.println(bal[1]);

    }

    }

    1  当只是定义一个大小为4的对象数组时(BankAccount bal[]=new BankAccount[4]),对象数组只是4个引用,并没有内容。所以运行

    System.out.println(bal[0]);

    System.out.println(bal[1]);

    System.out.println(bal[2]);

    System.out.println(bal[3]);

    得到的结果为:null  null   null  null

    为指向空的引用,因为4个引用都没有初始化,指向相应的内存区域。

    2

    bal[0]=new BankAccount(100.00);

    bal[0].display();

    bal[1]=new BankAccount(111.00);

    bal[1].display();

    System.out.println(bal[0]);

    System.out.println(bal[1]);

    分别初始化  bal[0]    bal[1]  ,使引用有了指向。

    运行结果为:BankAccount@1fb8ee3

    BankAccount@61de33

    结果分析:  是不是因为引用都是BankAccount数组的,所以指向地址为BankAccount@1fb8ee3

    BankAccount@61de33

    ???

    展开全文
  • JAVA中怎么初始化对象数组java中怎么创建对象数组?比如我创建了一个学生类Sclass Student{ } 类中怎么创建学生类兑现数组?学生类: class A{ private String name; private int age; public String getName() { ...

    java类怎样定义数组对象数组

    在c++编程中,怎么定义对象数组的指针?

    JAVA中怎么初始化对象数组?

    eac25e7f54bea1f70745faae58741155.png

    java中怎么创建对象数组?比如我创建了一个学生类Sclass Student{ } 类中怎么创建学生类兑现数组?

    学生类: class A{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age

    用new申请空间; 再在对每个数进行初始化; //动态定义和初始化二维数组 部分代码 coutrow >>col ; int **p2 ; p2 = new int*[row] ; for( i = 0 ; i < row ; i ++ ) p2[i] = new int[col] ; //输入二维数组的值 for( i = 0 ; i < row ; i ++ )

    1:对象数组的定义:类名 数组名[元素个数] Eg: student asa[10];//有10个元素的学生类对象数组 2:对象数组的访问形式:数组名[下标].成员名; Eg: asa[j].print(); 3:对象数组的初始化:对象数组的初始化通常也是由构造函数来完成的。

    在java中定义一个数组对象怎么赋值

    例如 : 第一个文件:文件名为:Department.php <?php class Department$a=array(); while ($row=mysql_fetch_array($result)) { $d= new Department(); $d->setDepartment($row[0]); $a[]=$d; }

    如何定义一个对象数组,然后输入数据成员

    如何定义一个对象数组,然后输入其中的数据成员

    展开全文
  • 我想初始化一个BlackJack游戏的Player对象数组。我已经阅读了很多有关初始化原始对象(如整数数组或字符串数组)的各种方法的信息,但是我无法将其理解为我在此处尝试做的事情(见下文)。我想返回一个初始化的Player...
  • public static void main(String[] args) { ...//1 初始化数组 for (int i = 0; i < 10; i++){ System.out.println(str[i]);//打印出来的是null } for (int i = 0; i < 10; i++){ str[i] =...
  • 展开全部当你产生某个存储对象数组时,真正产生的其实是个存储references的数组。此一数组建立之后,其中62616964757a686964616fe4b893e5b19e31333365643533的每一个reference皆会被自动设为某个特殊值。该值以...
  • java – int数组初始化

    千次阅读 2021-02-12 14:00:55
    首先要理解的是,局部变量存储...现在,发生的是,当您将数组引用声明为局部变量时,并使用数组初始化:int[] in = new int[5];数组引用(in)存储在堆栈中,为数组分配一个内存,能够在堆上保存5个整数元素(记住,对...
  • 第一种方式:通过定数组长度来赋值:public static void main(String[] args) {// TODO Auto-generated method stub//第一种方式:先指定数组长度,来给数组元素赋值String [] str = new String [4];str[0] = "k";...
  • //一维数组String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组String[] str = ...String数组初始化区别首先应该明白java数组里面存的是对象的引用,所以必须初始化才能用;String[] str ...
  • java数组初始化详解

    2021-03-09 08:02:13
    介绍学习Java的朋友想必...所谓数组初始化就是让数组名指向数组对象的过程,该过程主要分为两个步骤,一是对数组对象进行初始化,即为数组中的元素分配内存空间和赋值,二是对数组名进行初始化,即为数组名赋值为数...
  • <Java Class> 1.1数组初始化

    千次阅读 2021-02-12 23:19:41
    (初始化就是为数组元素分配存储空间并制定每个元素的初始值)数组初始化有两种方式:静态初始化:初始化时由程序员指定数组元素的初始值,有系统决定数组长度;动态初始化:初始化时由程序员指定数组长度,由系统为数...
  • java二维数组初始化及使用其长度

    千次阅读 2021-02-26 16:56:19
    二维数组初始化1.静态初始化int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};Java语言中,由于把二维数组看作是数组数组数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。2.动态初始化1) 直接为每一维...
  • Java数组初始化

    2021-02-12 09:08:40
    一、什么是初始化在...所谓数组初始化就是让数组名指向数组对象的过程,该过程主要分为两个步骤,一是对数组对象进行初始化,即为数组中的元素分配内存空间和赋值,二是对数组名进行初始化,即为数组名赋值为数组...
  • 这一章节我们来讨论一下数组初始化。1.数组是一个对象。package com.ray.ch01;public class Test {public static void main(String[] args) {int[] a = {};System.out.println(a instanceof Object);}}输出:true2...
  • 数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其后的索引依次递增:Java基础之数组初始化和数组JVM分析-1.jpg (10.98 KB, 下载次数: 0)2021-1-12 02:20 上传...
  • 1.数组初始化定义数组的方式:int[] arr1; 或 int arr1[];数组初始化通过上边的定义,我们只是得到了一个数组的引用。这时已经为引用分配了存储空间,但是还没有数组对象本身分配任何空间。想要数组对象分配存储...
  • Java数组静态初始化

    2021-03-05 17:09:35
    JAVA语法基础之数组一、一维数组数组是一组具有相同类型和名称的变量集合,能很方便的把一系列相同类型的数据保存在一起,这些变量称为数组元素。每个数组元素都有一个编号,这个编号叫做下标,可以通过下标来区别...
  • 1 Java静态引入import java.lang.Math.min;或import java.lang.Math.*;2 Java支持可变参数,用时再查3 finalizefinalize 可以说有点多余,用处不大,唯一的用处就是用来标识一些信息,以便发现错误。下面是一种它的...
  • 问题所以我正在声明并初始化一个int数组:static final int UN = 0;int[] arr = new int[size];for (int i = 0; i < size; i++) {arr[i] = UN;}说我这样做......int[] arr = new int[5];System.out.println(arr[0...
  • java初始化数组的方法

    2021-03-15 20:24:12
    java初始化数组的方法发布时间:2020-06-28 ...一、什么是初始化Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组...
  • java声明对象数组

    千次阅读 2021-03-15 03:45:06
    java如何对象创建数组初始化急夜影驱动编程小编今天和大家分享答案/** * 功能:声明一个学生类 * @author qqliweng * 时间:2009-10-22 * 版本:V1.0 */ public class Student { private String name; //学员姓名 ...
  • privateintnumber;privateinttypeIndex;privateMyDatedate;privatebooleanhasFinished;privateCompetitor[]competitors;privateintnumberOfCompetitors;...怎么样才能这个数组附上competitor的值? 展开
  • Java初始化数组

    2021-03-06 06:51:09
    数组是一种有用的数据类型,用于管理在连续内存位置中建模最好的集合元素。下面是如何有效地使用它们。Coffee beans and a cup of coffee有...Java 的情况与此类似,但是有一些额外的问题。一个数组的示例让我们在 ...
  • publicclassPersonDemo{publicstaticvoidmain(String[]args){...//声明对象数组persons[0]=newPerson("jiang",12);//用构造方法实例对象System.out.println(pers...public class PersonDemo {public static void...
  • Java数组定义及初始化

    2021-02-12 09:08:36
    数组定义及初始化数组这玩意是一种用于存放数据最常见数据结构。数组的的概念及注意点数组要求所有的数组元素具有相同的数据类型,且只能存在一种数据类型,要多专一有多专一。数据类型既可以是基本类型也可以是引用...
  • Java 泛型 泛型数组

    千次阅读 2021-03-09 20:43:19
    直接创建泛型数组不能通过编译,而转型对象数组通过编译但是不能在JVM运行 public class ArrayOfGeneric{static Generic[] gia;@SupperssWarnings("unchecked")public static void main(String[] args){gia = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 348,405
精华内容 139,362
关键字:

java给对象数组初始化

java 订阅