设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
为什么类的成员变量可以是不给定长的?数组类型的 ...
返回列表
发新帖
为什么类的成员变量可以是不给定长的?数组类型的
[复制链接]
11
|
7
|
2021-1-27 06:09:33
|
显示全部楼层
|
阅读模式
1数组在成员方法中定义局部变量需要定长,但可以不初始化!如inta[]=newint[5];
2为什么类的成员变量不用定长,
int[]a;
如果是因为成员变量默认值数组长度为0?
那么数组长度不是不可变吗?为啥还可以给成员变量a添加元素呢?这样不就改变了数组的长度了吗?
分 -->
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
如inta[]=newint[5],你可以打印一下内容看看,全部都是0,已经初始化了
类的成员变量不需要初始化,是因为在没有new一个对象之前,这个属性还没有占据内存堆栈。一旦你new好之后,在使用这个变量,就必须要初始化了。
数组长度确实是不可变的,但那是针对内存中的变量或对象而言的。
不可变的含义是当前对象的不可变,但是不代表不可以扩容,扩容会复制一份新的大小的数组,然后把原先的指针指向新的对象。就达到了你所说的‘改变’大小的效果。
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
因为,当你在方法里面定义了数据的时候,如inta[]=newint[5];那么这时候已经创建好了5个int类型的空间,你只要往这个空间里存值就可以了。
inta[]=newint[5];
你也可以拆分为:
inta[];
a=newint[5];
当然,当你不想要这个int[5]的时候,a=newint[6];可以让a重新指向一个6空间的int数组呀~(如果是c的话,估计还得把之前的int[5]释放掉)
但是,对于类来说,他只是写好了一个引用,当你实例化这个类时,才确定他的属性域。
也就是,类里面只有第一句代码:inta[];
实例化的时候:再执行a=newint[?];
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
所谓的数组是定长的,针对的不是a[],而是newint[5]这个东西,如果你要改变a的长度,重新newint[6],让a指向int[6]就行了呀~
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
类成员变量只是做了声明,并没有初始化,只是在使用的时候才初始化或接收已初始化的参数。
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
首先数组是引用数据类型,而且再局部方法中也是可以不初始化的
但是在方法之后调用时一定要初始化否则会编译错误;
数组在声明的时候并没有初始化那么这个时候会在栈中开辟一块内存存储这个变量但是其引用地址并没有指向堆
所以此时调用该变量时会NullPointException,所以不允许调用未初始化的数组变量;
但是在成员变量与局部变量中是有区别的
在局部变量中变量未初始化那么这个变量一定不会初始化,所以会抛出编译异常
但是在成员变量中(也叫全局变量)这个变量未初始化时可以在其他方法中使用是因为不确定是否在其调用之前会被初始化所以编译时是没有问题的(编译异常只是为了一定程度上保证运行时不出错)但是在实际运行中未初始化调用就会抛出NullPointException
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
未初始化调用
作为成员变量时
红框内的方法先调用那么程序就是没问题的
但是在编译期是无法判断的(那么只能认为程序正确)
回复
使用道具
举报
千问
|
2021-1-27 06:09:33
|
显示全部楼层
关于你说的数组长度变化问题
publicclassTests{
int[]s;
publicvoids(){
s[0]=1;
}
publicvoida(){
s=newint[10];
}
publicvoidb(){
s=newint[20];
}
}
看代码数组变量s被赋值不同大小的数组;
数组大小是无法变化的就比如你有一个1L的桶最多只能装1L水桶是不会自己变大的想装更多的水可以换一个更大的桶(也就是数组变大了)
上边这句话中"你"就是变量,桶是数组,水是实际的数据;
有你没桶那么你就没办法装水
有桶没你那么桶跟水就只能放在那里无法操作
比如你拿到桶是初始化
你家是局部
外界是全局
家里可以有你但是没桶(没初始化)那你肯定没办法装水
你在外边的话现在没桶没关系可以去别人家拿嘛
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
智能奔腾电饭煲进水怎么办
2
3g内存 虚拟内存设置多小比较合适
3
'我想很拉风的回家,所以我就选择了骑车子回家!'翻译
4
你好,给我一个win7系统开摄像头的软件好吗?谢谢,邮箱是
[email protected]
5
9分裤适合身高165身材瘦瘦的男生吗?
6
初二上学期语文第一、二、三课原文
7
华硕笔记本锁触摸板!!!
8
电脑出现system32问题
9
杭州有那些有名大学
10
电脑硬盘是磁盘还是光盘?
11
怎么打电话到台湾
12
滑头鬼之孙第一二季高清,rmvb格式,有中文字幕
13
《灵珠》大结局,问天和丁瑶在一起没有?
14
梶浦由记fiction 2专辑下载 zyq1994928·qq.com谢谢!
15
在苏宁买的索尼笔记本有两个月左右了 没有用过 想换一个款式的 可以吗?
16
前几天在千百意买的窗帘轨道,很精致质量也好,有点不大会安装,有哪们知道怎么安装的吗?
17
家里笔记本的有线网不好上了,想买个无线路由器,可是不知道该怎么用?求高人指点!!
18
小米M2 那么便宜..硬件行吗
19
哈尔滨太阳岛退休军官免费吗
20
EVA 怎样注塑加工
21
想知道: 唐山市 滦南都有什么快递 在哪
22
诗人在时歌中用反衬的手法来抒发黑暗腐朽社会的憎恨,请选择恰当的选项填空
23
读川外的法语专业高考大概要多少分?
24
白银投资群,只加正在投资或有一项投资的朋友,业务员免进。QQ群:86123279
25
我们生产的热轧螺纹刚是镇静钢对吗?
26
中国的祖先真的是龙么?
27
北京市010 56026343详细地址是哪里
28
肝炎小三阳的治疗方法?四川哪里治疗好?
29
拉丁舞教师怎么带学生考级 详细找哪个机构
30
淮安好太太电动晾衣架866型号的多少钱
31
英语问题3道
32
这个头得留多长时间,我现在头发到眉毛那、
33
谁知道河北宣化教师招聘考试时间都在几月啊,距报名有多长时间呢
34
U699手机要多少钱
35
2012年还愿吉日
36
手机内存损坏
37
杵臼交多用来指不计身份而结交的朋友。这里的杵臼在古代是用来做什么的?
38
一件普通灰色的v领t要卖多少钱
39
这配置能玩gta4不
40
问问穿越火线一扣币好多游戏点、如果买个女角色要多人扣币、是永久吗、 本人新手重庆一区的
41
新房装修需要铺设4厘米厚的木质地板,已知新房的面积是144平方米,铺设它至少要用多少立方米的木材?
42
梦幻停在59、69玩什么门派好(求高手)
43
这段情到底该怎么办
44
电脑型号 技嘉 G31M-ES2C 台式电脑 操作系统 Windows XP 专业版 32位 SP3 ( DirectX 9.0c ) 处理器 英特尔
45
oracle10g 执行 select XXX_id.nextval from dual 报没有权限执行 要怎么授权?
46
初二上学期语文第一、二、三课原文,,,,,jijjjijijijijijij
47
老师,您好!我即将升入初三,您能给我提供一些好的参考书吗?是有难度的、能提高自己的能力的那种。谢谢!
48
csonline怎么获得旋风斧头
49
求。圣安地列斯刷车。工具
50
我本科护理专业,想做护理教师,能去教育局报名吗?
51
谁能告诉我在甘肃定西市做豆腐生意怎么样?
52
请问有什么办法让我的新创作在网络上惊动每个人
53
填写单词,i like the watch very much.but it,s
54
为什么找不到合适的作文?
55
我女朋友现在怀上我的小孩了,但她是结过婚的还有两个小孩,我们这样要小孩会受到法律的制裁吗?
56
现在lol是不是不再禁止未满18岁的玩家玩了?
57
0238区号是那里的?
58
塞班手机软件的数字证书错误怎么解决?
59
The children should be ___not to play jokes ___the disabled.
60
烟台大学图书馆都有什么书
61
求一首歌 里面有很多"girl(什么)girl(什么)girl(什么)"连唱的 是女的唱的
62
孙艺洲到底结婚了没啊?
63
dnf没有宁神符咒任务
64
热点问题调查报告怎样写?
65
and or but 等并列连词连接,则需用一般过去时?
66
黑执事中女王为什么要命令天使杀死夏尔的父母?
67
我买了一套二手房,房产证已过户,国有土地使用证没过户,想写好协议和公证就行,不知道有后续麻烦吗?
68
哪有卖索尼nwz-b172f硅胶套的
69
为什么安卓模拟器不能运行?
70
以lyy结尾的单词
71
这是借口还是事实
72
HTC IMEI翻译
73
为什么国产车的喷漆那么糟糕!像比亚迪吉利奇瑞等等…看车的时候光看车漆的光泽度就知道是不是国产车了
74
IPHONE4S怎样用无线猫上网。。求解阿。。。
75
求解啊~HTC G1刷完系统开不开机了。
76
我想在鼓浪屿租房,月租。两室一室都可以
77
美食大战老鼠如何打芝士城堡、玛奇朵港、雪顶火山。
78
爱情公寓粉丝群91352437
79
美国留学签证,税单问题
80
急急急!这两道数学题,跪求啊!
81
求一个视频里的背景歌曲
82
ruby里怎么把对象作为参数传给方法,还要求在方法中读出对象的属性值,具体给个代码例子
83
问个高等代数多项式的问题
84
张家港有紧固件公司吗
85
暑假到了向提高日常生活英语,大家都是怎么学的?
86
一题七上数学题(方程)!
87
我患有多年的骨病,想问问能到济南五洲看好吗?
88
为什么今年夏季下雨比去年多啊??
89
PC水果忍者变态版电脑板的谁有?发到我的QQ邮箱好吗?
90
谁有【极致的狩猎】txt?帮帮忙
91
如何使用HTML5实现横向滚动?
92
三国志11和三国志12共存,11却打不开
93
我在电脑上登陆qq,为什么手机在线的好友全是电脑在线的图标,头像右下角没有手机标志
94
跪求猎人BG同人,男主西索 闪灵同人BG 男主赤尸
95
我这是不是牙根尖炎?或者牙髓炎?
96
幸村,你走开(网王+小丸子)全文txt 1——91章 O(∩_∩)O谢谢 请发送到:
[email protected]
97
现在我怎么找不到百度音乐的MP3地址,求《千千阙歌》MP3地址,最好附上方法。万分感谢!
98
求 飞旋的怀恋版 实况足球8 2012最新球员名单补丁!谢谢邮箱
[email protected]
99
如果有陌生人突然对你好这代表什么
100
好看的qq网名,有符号,最好没人用过