`

错误与纠正<如何将对象加入数组与空指针> 日期:2011.2.20

J# 
阅读更多
1.xx类的数组(队列)才可以放入xx类的对象,xx类的数组(队列)不能存放yy类的对象
例如:
student[][] stu=new student[i][j];
//i,j你自己规定
student stu1=new student
stu[k][l]=stu1;

如果变成
stud stu2=new stud;
stu[k][l]=stu2
就会报错,类型不一致

2.空指针问题
//创建一个类
public class student{
int i,j;
//名字
private int Num;
//声明一个二维数组
private student[][] stu;


//重载构造器
public student(int i,int j){
this.i=i;
this.j=j;
stu=new student[i][j];
}


//输出方法,重点
public void Show(){
for(int i=0;i<this.i;i++){
for(int j=0;j<this.j;j++){
stu[i][j].num=i+j;
}
}
}
}
看那一行代码有问题没有?
在编译器里会报错:空指针;
为什么?
答案:因为,我们创建一个二维数组(盒子)是存放student对象的,在代码中没有对象,因此stu[i][j]==null;所以,stu[i][j].num等价于null.num;因此会报错
解决方法:在之前创建一个student得对象:然后用stu2调用里面的属性,例如:
student stu2=new student();
stu2.Num=i+j;
stu[i][j]=stu2;
这样就解决了这一个空指针的问题
分享到:
评论

相关推荐

    比较快速的将DBGridEh中的数据导出到Excel中

    ):&lt;br&gt;procedure TForm1.btn2Click(Sender: TObject);&lt;br&gt;var&lt;br&gt; DBGridEhToExcel: TDBGridEhToExcel;&lt;br&gt; ExcelFileName: string;&lt;br&gt;begin&lt;br&gt; DBGridEhToExcel := TDBGridEhToExcel.Create(nil);&lt;br&gt; try&lt;br&gt; ...

    RXLib V2.7.7在Delphi 7.0中的安装方法(含控件)

    依次打开将RXLib V2.75的\packages\Delphi7子目录下的各个运行时组件包的源文件进行编译(不要安装):&lt;br&gt; &lt;br&gt; RxCtl.dpk&lt;br&gt; RxDb.dpk&lt;br&gt; RxBDE.dpk&lt;br&gt; &lt;br&gt; 备注:由于各个包无res文件,打开dpk时警告,请自动...

    中对象数组的应用与实验

    #include&lt;iostream&gt; using namespace std; class Circle { public: double radius; Circle() { radius = 1.0; } Circle(double newRadius) { radius = newRadius; } double getArea() { return(radius * ...

    c语言指针数组-·详解数组指针与指针数组

    一、数组指针与指针数组的区别 1. 数组指针:数组指针是指向一个数组的指针,例如`int (*p)[5]`。这里的`p`是一个指针,它可以直接指向一个大小为5的整型数组。当你通过`p`访问数组时,`p`实际上是指向整个数组的首...

    java数组练习题目 (2).pdf

    2. 数组复制:"="运算符在数组复制时并不真正复制数组,而是复制数组的引用,即一个数组指向另一个数组的相同内存位置。 3. 静态数组:没有显式引用变量的数组称为静态数组,它们在编译时就确定了大小和类型。 4. ...

    将DBGrid中的数据快速导出到Excel的控件

    &lt;br&gt;&lt;br&gt;特点:&lt;br&gt;一、不需安装Excel即可导出。&lt;br&gt;二、有进度条。&lt;br&gt;三、最多可以导出多少条,我没试,我试了5万条没有问题,时间也就是只需1-5分钟(我电脑较慢)。&lt;br&gt;四、不需安装组件。&lt;br&gt;&lt;br&gt;使用方法(注:...

    网站自动模拟器(AutoWeb)(c#源码)

    )&lt;br&gt;&lt;br&gt;使用说明:&lt;br&gt;可以采用函数式编写命令来实现你所需的自动化功能,&lt;br&gt;函数严格区分大小写,&lt;br&gt;语句之间以分号隔开。&lt;br&gt;函数说明:&lt;br&gt; 1.ClickButtonByID(参数)&lt;br&gt; 功能:模拟鼠标点击网页中的按钮&lt;br&gt; ...

    Java中什么是数组共2页.pdf.zip

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它提供了一种方式来组织数据,使得可以高效地访问和...同时,熟练掌握数组的操作,如排序、查找,以及与集合类的对比,将有助于提升编程能力。

    MFC读位图像素到二维数组,将数组中像素显示位图.zip

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来读取位图文件的像素数据,并将其存储到二维数组中。接着,我们将介绍如何将这些数组中的像素重新绘制为位图,以及如何将像素点的值写入文本...

    Java数组练习题目.pdf

    2. 数组复制:`System.arraycopy()`方法用于将一个数组的元素复制到另一个数组。例如,`System.arraycopy(src, srcPos, dest, destPos, length)`,将源数组src从srcPos位置开始的length个元素复制到目标数组dest的...

    c语言设计Brian W. Kernighan Dennis M. Ritchie

    目 录 译者序 序 第1版序 前言 第1章 基本概念 1.1 入门 1.2 变量与算术表达式 1.3 for语句 ...B.10 日期与时间函数:&lt;time.h&gt; B.11 由实现定义的限制:&lt;limits.h&gt;和 &lt;float.h&gt; 附录C 变更小结

    微信小程序的数组添加、wx:for循环、删除、显示与隐藏,可以记录每一件事情

    如果你想记录每一件事情,你可以创建一个包含事件详细信息的对象数组,如`tasks`,每个对象包含`title`(事件标题)、`description`(描述)和`date`(日期)等字段。然后,你可以使用`wx:for`循环遍历这个数组,...

    C程序设计:指针与数组.ppt

    6. **指针与数组**:指针可以用于遍历和操作数组。数组名实际上是一个指向数组首元素的指针,因此可以使用指针进行数组的访问和操作。例如,`int arr[5]; int *ptr = arr;`这里的`ptr`现在指向数组的第一个元素。 7...

    人大金仓驱动包kingbasejdbc.jar V8.6.0、8.8.0驱动jar包

    &lt;artifactId&gt;kingbase8&lt;/artifactId&gt; &lt;version&gt;8.6.0&lt;/version&gt; &lt;scope&gt;system&lt;/scope&gt; &lt;systemPath&gt;${basedir}/src/main/resources/jar/kingbase8-8.6.0.jar&lt;/systemPath&gt; &lt;/dependency&gt; jdbc driver-class-...

    labview学习资料-labview初级例程源码(76个).zip

    数组与数组大小不同.vi 数组交织.vi 数组创建.vi 数组初始化.vi 数组大小举例.vi 数组子集.vi 数组拆分.vi 数组排序例子.vi 数组插值.vi 数组搜索.vi 数组最大最小.vi 数组移位.vi 数组索引.vi 数组至矩阵转换.vi ...

    51.java二维数组动态初始化.zip

    51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化....

    error C1083: 无法打开包括文件:“pthread.h”

    error C1083: 无法打开包括文件:“pthread.h”: No such file or directory cocos2d-x-2.1.5\extensions\AssetsManager\AssetsManager.h 30 1 AssetsManagerTest

    js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...

    mybatis配置dtd文件

    1. `&lt;select&gt;`:定义SQL查询,返回结果通常映射到Java对象。 2. `&lt;insert&gt;`:定义插入操作,支持动态SQL和返回自动生成的主键。 3. `&lt;update&gt;`:定义更新操作,同样支持动态SQL。 4. `&lt;delete&gt;`:定义删除操作。 5. ...

    Java 数组练习题目.doc.docx

    2. **数组复制**:使用赋值运算符`=`不能真正地复制一个数组,而是复制了数组的引用,即两个数组指向同一个内存空间。真正的复制可以使用`System.arraycopy()`方法或者创建新的数组并遍历原数组进行复制。 3. **...

Global site tag (gtag.js) - Google Analytics