首页 > 编程语言 >Java自定义类创建对象数组并赋值

Java自定义类创建对象数组并赋值

时间:2022-09-19 23:23:27浏览次数:77  
标签:P1 Java 自定义 创建对象 Person Test new main public

以下代码执行会报错。

出错代码:

public class Test {
    public static void main(String[] args) {

        Person[] P1 = new Person[2];
        P1[0].setAge(20);
        P1[0].setName("小王");
        P1[0].setSalary(2000);

        for (int i= 0 ; i<P1.length;i++)
        {
            if (P1[i] != null) System.out.println(P1[i]);
        }
    }
}

error info:

Exception in thread "main" java.lang.NullPointerException
at com.blocktest.Test.main(Test.java:7)
错误原因:
创建Person的数组之后,在堆中开辟了该对象数组的地址空间。
该地址中只有2个(length)null的坑。
虽然能点出Person类的成员属性,但是因为是null,所以编译的时候,回报空指针。

正确代码:

public class Test {
    public static void main(String[] args) {

        Person[] P1 = new Person[2];
        P1[0] = new Person();
        P1[0].setAge(20);
        P1[0].setName("小王");
        P1[0].setSalary(2000);

        for (int i= 0 ; i<P1.length;i++)
        {
            if (P1[i] != null) System.out.println(P1[i]);
        }
    }
}

 



标签:P1,Java,自定义,创建对象,Person,Test,new,main,public
From: https://www.cnblogs.com/HappyBeibei/p/16709498.html

相关文章

  • Java基础04 整数拓展
    整数拓展publicclassdemo03{publicstaticvoidmain(String[]args){//整数拓展进制二进制0b十进制八进制0十六进制0xinti=10;......
  • Java基础04 浮点数拓展
    浮点数拓展publicclassdemo04{publicstaticvoidmain(String[]args){//浮点数拓展银行业务如何表示?钱//BigDeciaml数学工具类......
  • Java基础04 字符拓展
    字符拓展publicclassdemo05{publicstaticvoidmain(String[]args){//字符拓展//======================================================......
  • Java笔记积累—集合
    在Java中除了以Map结尾的类之外,其他类都实现了Collection接⼝。并且以Map结尾的类都实现了Map接⼝ List,Set,Map三者的区别?List(对付顺序的好帮⼿):存储的......
  • Java子方法中static去掉之后的报错
    importjava.util.Arrays;importjava.util.Random;publicclassac{ publicstaticvoidmain(Stringargs[]){ System.out.println("Thesquareofinteg......
  • Java中的SPI原理浅谈
    在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违......
  • java学习
    1.基本规范每个java文件只能有一个publicclass,且类名要与文件名相同文件调用的是publicstaticvoidmain(String[]args)函数类名(文件名)首字母大写,函数名单个单词......
  • JavaScript 函数定义
    https://m.runoob.com/js/js-function-definition.html JavaScript使用关键字function定义函数。函数可以通过声明定义,也可以是一个表达式。函数声明在之前的教......
  • jenv for windows[快速切换windows java版本]
    一直以来,切换java版本一直是令我头疼的问题,一开始我的解决办法太蠢了,将所有需要高版本java的软件装在一台虚拟机中,所有低版本java的软件装在一台虚拟机中。但显然,这样并不......
  • Java中如何遍历字符串呢?
    字符串是程序开发中我们见的最多的一种数据类型对字符串的操作,也是我们日常涉及的最多的一种操作方式,那么如何遍历字符串为字符并输出呢?下面笔者讲述三种操作方式,如下所......