`

错误与纠正<如何将对象加入数组与空指针> 日期: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;
这样就解决了这一个空指针的问题
分享到:
评论

相关推荐

    keil数组曲线显示 KArrayV144 ,To:2023.1.1

    《Keil数组曲线显示KArrayV144详解》 在嵌入式系统开发中,Keil MDK(Microcontroller Development Kit)是一款广泛使用的集成开发环境,尤其在8位、16位和32位微控制器的应用程序开发中占据重要地位。其中,...

    C++数组vector用法.pdf

    但是,CArray&lt;&gt; 是在 C++ 标准化之前很多年 (VC++2.0 时代) 设计的,当时对 C++ 程序设计,面向对象程序设计,模板程序设计等技术认知严重不足,尤其是在当时对面向对象技术的错误信仰与宣传,造成 CArray&lt;&gt; 的设计...

    超详细的项目管理的中文模板

    外包与采购管理.doc&lt;br&gt; .....................\附录Q-1 外包开发竞标邀请书.doc&lt;br&gt; .....................\附录Q-2 承包商评估报告.doc&lt;br&gt; .....................\附录Q-3 外包开发合同.doc&lt;br&gt; ...................

    baoshu.zip_https:m.baoshu.com_m baoshu_m. shubao

    描述 "m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)" 描述了一个经典的算法问题,通常被...

    指导实践:MATLAB 中的数组概述:定义.pdf

    ### 指导实践:MATLAB中的数组概述 #### 定义与理解 在本指导实践中,我们将深入了解MATLAB中的数组概念,特别是如何定义、索引以及操作向量和矩阵。MATLAB是一种广泛应用于工程计算、算法开发以及数据可视化领域...

    中对象数组的应用与实验

    #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 * ...

    网站自动模拟器(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编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它提供了一种方式来组织数据,使得可以高效地访问和...同时,熟练掌握数组的操作,如排序、查找,以及与集合类的对比,将有助于提升编程能力。

    结构体数组.zip

    它将结构体的灵活性与数组的便利性相结合,使得我们能够高效地管理和操作结构化数据。在实际项目中,无论是简单数据记录还是复杂的系统设计,都能看到结构体数组的身影。通过熟练掌握结构体数组的使用,开发者可以更...

    C语言程序设计数组字符串指针实用教案.ppt

    C语言程序设计数组字符串指针实用教案 一维数组的定义和使用方法 在C语言中,数组是一种构造数据类型,它可以存储多个相同类型的数据元素。数组的定义形式为:类型符 数组名 [常量表达式] ;其中,类型符是基本...

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

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

    C++中二维数组与指针关系的剖析.pdf

    本文将基于《C++中二维数组与指针关系的剖析》一文的核心观点,深入探讨二维数组与指针之间的内在联系及其在实际编程中的应用。 #### 1. 二维数组与指针的基本概念 首先,我们回顾一下二维数组和指针的基础概念。*...

    人大金仓驱动包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-...

    52.java二维数组静态初始化.zip

    52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....

    struts框架jar包

    struts-1.3.8 包(&lt;br&gt;&lt;br&gt;antlr-2.7.2.jar&lt;br&gt;bsf-2.3.0.jar&lt;br&gt;commons-beanutils-1.7.0.jar&lt;br&gt;commons-chain-1.1.jar&lt;br&gt;commons-digester-1.8.jar&lt;br&gt;commons-fileupload-1.1.1.jar&lt;br&gt;commons-io-1.1.jar&lt;br&gt;...

    2004~2015年程序员软考考试上午真题合集.pdf

    在数组和矩阵中,一维数组T[0...m*n-1]可以通过每隔n个元素取出一个元素依次存入数组B[1...m]中。 * question 14: A.T[(k-1)*n] B.T[k*n] C.T[(k-1)*m] D.T[k*m] 回答:A.T[(k-1)*n] 7.递归函数 在递归函数...

    JAVA类与对象及数组习题[借鉴].pdf

    JAVA 类和对象及数组习题 一、选择题 1. 构造方法的调用方式:正确答案是 C.只能通过 new 自动调用。 知识点:在 Java 中,构造方法是用来初始化对象的特殊方法,它只能通过 new 关键字自动调用,而不是由用户...

    Java数组练习题(带答案).doc

    2. **数组复制**:在Java中,当使用`=`复制数组时,实际上是在传递数组的引用,而不是复制整个数组的内容。 3. **内存管理**:JVM将数组存储在堆内存中,而不是栈内存。这是因为数组可能包含大量的元素,占用较大...

    C语言标准函数库详解.pdf

    这些头文件包括:&lt;assert.h&gt;、&lt;ctype.h&gt;、&lt;errno.h&gt;、&lt;limits.h&gt;、&lt;locale.h&gt;、&lt;math.h&gt;、&lt;setjmp.h&gt;、&lt;signal.h&gt;、&lt;stdarg.h&gt;、&lt;stddef.h&gt;、&lt;stdio.h&gt;、&lt;stdlib.h&gt;、&lt;time.h&gt;等。 每个头文件都提供了不同的函数,...

    数组 指针和字符串PPT学习教案.pptx

    在C++编程语言中,数组、指针和字符串是核心概念,它们在程序设计中扮演着重要角色。这里我们将深入探讨这些主题。 首先,我们来看数组。数组是一种数据结构,可以存储同一类型的数据集合。例如,你可以声明一个...

Global site tag (gtag.js) - Google Analytics