java数组空指针一场_Java使用自定义类数组报空指针异常
一开始自定义了一个学生类,类里面有几个属性。因为有很多个学生,所以想将这个类声明成数组使用,但是当我通过不同的下标给数组里不同对象赋值的时候一直报空指针异常
一开始代码是这样的
package _4_9_test;
public class EightTwoTest {
public static class Test{
String name;
int num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test[] = new Test[2];
test[0].name = "张珊";
test[0].num = 1;
test[1].name = "李四";
test[1].num = 2;
System.out.println(test[0].name+" "+test[0].num);
System.out.println(test[1].name+" "+test[1].num);
}
}
看了文档后发现**数组的创建不会给数组成员分配内存**
也就是说
Test test[] = new Test[2];
是没有地方可以存数据的。
只有每个成员进行声明后才会给这个成员分配内存
test[0] = new Test();
改良后的代码是这样的
package _4_9_test;
public class EightTwoTest {
public static class Test{
String name;
int num;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test[] = new Test[2];
test[0] = new Test();
test[0].name = "张珊";
test[0].num = 1;
test[1] = new Test();
test[1].name = "李四";
test[1].num = 2;
System.out.println(test[0].name+" "+test[0].num);
System.out.println(test[1].name+" "+test[1].num);
}
}
java数组空指针一场_Java使用自定义类数组报空指针异常相关推荐
- Java 自定义类数组的初始化
1 简介 若初始化不到位,常遇到"空指针异常"(java.lang.NullPointerException)的问题. 此类解决方案是:在声明自定义类数组后,必须再对每一个数组元素 ...
- C#中自定义类数组和结构数组的使用
如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...
- Java自定义类数组的创建和使用
目录 一.数组核心概念 1.数组是什么? 2.数组优点 3.数组缺点 4.数组用处 二.封装一个自定义数组类MyList 1.数组属性定义 2.数组初始化方法 3.数组扩容方法 4.增加元素方法 5. ...
- java调用自己写的类型_Java基础——自定义类的使用
自定义类 我们可以把类分为两种: 1.一种是java中已经定义好的类,如之前用过的Scanner类.Random类,这些我们直接拿过来用就可以了. 2.另一种是需要我们自己去定义的类,我们可以在类中定 ...
- java输出数组中的元素_java一行代码输出数组的所有元素内容
如果要用java把一个数组的元素都输出到控制台的话,你要怎么做呢? 是通过一个循环去循环数组中的各个元素,然后输出吗? 像不像二维数组 今天我要说的是,可以通过一行代码就完成这个工作.是一样什么样的代 ...
- java常用的集合对象_java常用实体类、集合类
java常用实体类.集合类 [转自51cto博客jichangwei的BLOG] 1:String类,字符串是常量,他们的值在创建之后不能更改,可以共享. equals()用来比较两个字符串的值,== ...
- c# 自定义类数组实例化与初始化
自定义的Student类,代码如下: public class Student {public int id;//学号public string name;//姓名 } 实例化类数组和初始化数组里面的 ...
- java class对象创建时机_Java面向对象编程-类的声明周期
第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...
- java枚举类型季节实例_Java之枚举类
目录 一.为何引入枚举类型(为了替代魔法值) 什么是魔法值?魔法值有哪些隐患,见另一篇文章编码规约之使用Enum枚举类替代魔法值 那么为什么不用静态变量来替换魔法值呢? 有时候,变量的取值只在一个有限 ...
最新文章
- 如何编写一个全新的 Git 协议
- python文件输出-python 文件的输入输出
- elk 搜索 语法_ELK学习笔记7| Lucence 的搜索语法
- 《炉石传说》架构设计赏析(3):Gameplay初探
- wrapper 并集如何使用
- java h5 上拉加载更多_移动端H5页面上拉加载更多功能实现(二)
- C++与Qt开发人机象棋(第二部分)
- 小帅小胖智能机器人价格_小胖机器人CEO魏然:机器人+教育,是未来教育大势所趋...
- C#中DllImport用法
- apache kafkac系列lient发展-java
- 一步一步打造基于TICK的工业级系统监控平台
- 编程基础(三)——体系结构之二
- Intel Fortran编译器安装
- 【Android Studio】XUI框架的使用记录:源代码Demo安装+从Demo中获取捷径快速开发自己的APP
- 北信源桌面终端管理系统部署与问题
- 【NOI2015】bzoj4199 品酒大会【解法一】
- 【Rosalind】Mortal Fibonacci Rabbits
- Sue 的小球 ball
- Matlab之绘制瀑布图
- 我慌了!我妈从床底掏出了我珍藏多年的小本本-----JAVA_Lambda表达式(笔记)
热门文章
- Mysql8 NDB集群二进制方式免安装配置图解
- 线性代数之矩阵偏导续
- 最长不重复字符串python_Python简单实现查找一个字符串中最长不重复子串的方法...
- 客户连接多个服务端_Dubbo源码解析之客户端Consumer
- C语言单片机数码管a段亮,各位大神,如何用C语言实现在数码管上实现1234同时亮...
- 统计学怎么求加权指数_我要自学生信之统计学:统计学概述(一)
- 基于深度学习的语义分割代码库
- Ibatis.net 属性字段中使用 IN 查询条件
- 微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
- 27.CSS3文本效果