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;
这样就解决了这一个空指针的问题
分享到:
相关推荐
JMeter导入jmx运行脚本时出现这样的错误jmeter.save.SaveService: Conversion error com.thoughtworks.xstream.converters.ConversionException:2016/12/20 13:51:55 ERROR - jmeter.save.SaveService: Conversion ...
2. `<array>`:提供了固定大小数组的封装,简化了数组的操作。 3. `<bitset>`:提供了一个可以动态操作的位集容器,可以用来存储一组二进制位。 4. `<chrono>`:用于处理时间和日期,支持时间点、时间间隔等类型。...
):<br>procedure TForm1.btn2Click(Sender: TObject);<br>var<br> DBGridEhToExcel: TDBGridEhToExcel;<br> ExcelFileName: string;<br>begin<br> DBGridEhToExcel := TDBGridEhToExcel.Create(nil);<br> try<br> ...
<br> 作者:Caidao (核心代码来自Ehlib)<br> 时间:2003-04-09<br> 地点:汕头<br><br>我演测试的代码:<br>特点:<br>一、不需安装Excel即可导出。<br>三、最多可以导出多少条,我没试,我试了5万条没有问题,时间...
#include<iostream> using namespace std; class Circle { public: double radius; Circle() { radius = 1.0; } Circle(double newRadius) { radius = newRadius; } double getArea() { return(radius * ...
2. 数组复制:"="运算符在数组复制时并不真正复制数组,而是复制数组的引用,即一个数组指向另一个数组的相同内存位置。 3. 静态数组:没有显式引用变量的数组称为静态数组,它们在编译时就确定了大小和类型。 4. ...
)<br><br>使用说明:<br>可以采用函数式编写命令来实现你所需的自动化功能,<br>函数严格区分大小写,<br>语句之间以分号隔开。<br>函数说明:<br> 1.ClickButtonByID(参数)<br> 功能:模拟鼠标点击网页中的按钮<br> ...
2. **数组操作**:指针可以用于遍历和操作数组。 3. **函数参数**:指针作为函数参数可以避免数据复制,实现对原始数据的修改。 4. **字符串操作**:字符串在C语言中通常以字符数组的形式表示,指针用于访问和操作...
46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip...
【C语言-数组、结构体与指针的综合应用实验报告】 本次实验旨在掌握C语言中数组、结构体和指针的基本用法,以及初步理解链表的概念和操作。实验内容涉及设计一个结构体来存储学生信息,包括学号、姓名、三科成绩和...
4. <array>:数组库,提供array类,允许创建固定大小的数组,并支持与普通数组相同的操作,如访问元素、赋值等。 5. <atomic>:原子操作库,提供了atomic结构以及相关函数,用于创建原子类型,进行线程安全的无锁...
2. 遍历整个数组,对于每个元素,将其加入当前子数组中,如果当前子数组和大于最大子数组和,则更新最大子数组和。 3. 如果当前子数组和小于0,则将其清零,重新开始构建子数组。 4. 遍历完整个数组后,得到的最大...
2. 数组复制:`System.arraycopy()`方法用于将一个数组的元素复制到另一个数组。例如,`System.arraycopy(src, srcPos, dest, destPos, length)`,将源数组src从srcPos位置开始的length个元素复制到目标数组dest的...
目 录 译者序 序 第1版序 前言 第1章 基本概念 1.1 入门 1.2 变量与算术表达式 1.3 for语句 ...B.10 日期与时间函数:<time.h> B.11 由实现定义的限制:<limits.h>和 <float.h> 附录C 变更小结
如果你想记录每一件事情,你可以创建一个包含事件详细信息的对象数组,如`tasks`,每个对象包含`title`(事件标题)、`description`(描述)和`date`(日期)等字段。然后,你可以使用`wx:for`循环遍历这个数组,...
6. **指针与数组**:指针可以用于遍历和操作数组。数组名实际上是一个指向数组首元素的指针,因此可以使用指针进行数组的访问和操作。例如,`int arr[5]; int *ptr = arr;`这里的`ptr`现在指向数组的第一个元素。 7...
#include <stdlib.h> #define ringbuf_malloc malloc // 定义 malloc 函数 #endif #ifndef ringbuf_free #define ringbuf_free free // 定义 free 函数 #endif ``` 通过这种方式,用户可以灵活地选择内存管理方式,...
数组与数组大小不同.vi 数组交织.vi 数组创建.vi 数组初始化.vi 数组大小举例.vi 数组子集.vi 数组拆分.vi 数组排序例子.vi 数组插值.vi 数组搜索.vi 数组最大最小.vi 数组移位.vi 数组索引.vi 数组至矩阵转换.vi ...
error C1083: 无法打开包括文件:“pthread.h”: No such file or directory cocos2d-x-2.1.5\extensions\AssetsManager\AssetsManager.h 30 1 AssetsManagerTest
尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...