社区
Java SE
帖子详情
关于一个静态变量的问题
dyy830606
2008-03-31 07:35:30
我在父类里边定义一个变量,在子类的main函数中调用,提示非静太变量不能在静态 的变量中使用,难道非要将父类中的变量定义为静太的才能在子类的main函数中使用么.能不能具体的分析一下内存,说明一下为什么!
...全文
127
17
打赏
收藏
关于一个静态变量的问题
我在父类里边定义一个变量,在子类的main函数中调用,提示非静太变量不能在静态 的变量中使用,难道非要将父类中的变量定义为静太的才能在子类的main函数中使用么.能不能具体的分析一下内存,说明一下为什么!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nihuajie05
2008-04-02
打赏
举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
那是因为你的main是static,当然只能直接访问static的变量啦!
[/Quote]
奋斗并快乐着
2008-04-02
打赏
举报
回复
[Quote=引用 7 楼 liyuzhu_1984 的回复:]
static声明的变量存放在静态存储区中,相当于全局变量 也就是说只要有一个函数对它进行了修改 其他的函数得到的是这个变量的新值
由于它分配在静态存储区,所以他也只能被静态函数调用
[/Quote]
===>有点误导
dyy830606
2008-04-01
打赏
举报
回复
hehe,不错
badonly
2008-03-31
打赏
举报
回复
shibenjie 说的很清楚,静态变量和静态方法是在第一次被调用加载到内存的
非静态变量是每次实例化都要加载到内存!相对静态变量和方法来说,它是不确定的!
shibenjie
2008-03-31
打赏
举报
回复
原因是static修饰的不论是变量还是方法,都是在类没有实例化时前就被JVM加载了,
而你的变量如果没有static修饰的话,只有在类实例化后才可以访问到,
所以你在static的方法里访问普通变量是就会出现这种异常了
aking21alinjuju
2008-03-31
打赏
举报
回复
main定义成静态方法只能调用静态数据或其他的静态方法,记住这个原则就好了
fy_kenny
2008-03-31
打赏
举报
回复
static特性就是程序一加载就实例的。你用一个nonstatic的变量在static中是不能确定变量值的。所以不能在static的main()方法中使用nonstatic的变量。建议看看《java编程思想》或其他java基础书籍
shili150
2008-03-31
打赏
举报
回复
[Quote=引用 7 楼 liyuzhu_1984 的回复:]
static声明的变量存放在静态存储区中,相当于全局变量 也就是说只要有一个函数对它进行了修改 其他的函数得到的是这个变量的新值
由于它分配在静态存储区,所以他也只能被静态函数调用
[/Quote]
只记住一句话好了:静态只能调用静态的数据或是方法
liyuzhu_1984
2008-03-31
打赏
举报
回复
static声明的变量存放在静态存储区中,相当于全局变量 也就是说只要有一个函数对它进行了修改 其他的函数得到的是这个变量的新值
由于它分配在静态存储区,所以他也只能被静态函数调用
zhuhuazha
2008-03-31
打赏
举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
那是因为你的main是static,当然只能直接访问static的变量啦!
[/Quote]
zzkk_1980
2008-03-31
打赏
举报
回复
[Quote=引用 3 楼 soief 的回复:]
引用 1 楼 java2000_net 的回复:
那是因为你的main是static,当然只能直接访问static的变量啦!
[/Quote]
Gump09
2008-03-31
打赏
举报
回复
怎么有两个一样的帖子?
soief
2008-03-31
打赏
举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
那是因为你的main是static,当然只能直接访问static的变量啦!
[/Quote]
chenhongxin
2008-03-31
打赏
举报
回复
楼上说的对,你看看static 方法,只能访问非本方法之外的静态变量,或是该方法所属类的实例的变量....
老紫竹
2008-03-31
打赏
举报
回复
那是因为你的main是static,当然只能直接访问static的变量啦!
hendy
2008-03-31
打赏
举报
回复
因为子类就是静态的,否则,没初始化父类就不能初始化子类了
胡矣
2008-03-31
打赏
举报
回复
非static的变量是在实例化对象的时候才被JVM加载的.
想要使用该变量要先实例化该对象.
java六大必须理解的
问题
文档
` 这行代码创建了
一个
名为`s` 的变量,该变量指向
一个
包含“Hello world!”文本的`String` 对象。 - **`==` 操作符与 `.equals()` 方法的区别**: - `==` 用来比较两个变量是否引用同
一个
对象。 - `.equals()` ...
最全的C和C++语言笔试面试题汇总
#### 十四、如何引用
一个
已经定义过的全局变量? - 可以通过引用头文件或使用`extern`关键字。引用头文件时,如果变量名称拼写错误,编译时会报错;使用`extern`关键字时,即使拼写错误,编译时也不会报错,但链接...
静态变量
不能跨函数使用
这个程序从语法上没有错误,但是从逻辑上讲是有
问题
的。因为调用function()函数已经执行完毕函数内存的
静态变量
已经释放,p就不能指向i 但是却把 i的内存变量值读取出来了,这是不可以的。
静态变量
不可以跨函数使用 ...
静态变量
与普通变量区别
static变量也称作
静态变量
,
静态变量
和非
静态变量
的区别是:
静态变量
被所有的对象所共享,在内存中只有
一个
副本,它当且仅当在类初次加载时会被初始化。而非
静态变量
是对象所拥有的,在创建对象的时候被初始化,存在...
c语言
静态变量
总结,c语言什么是
静态变量
c语言
静态变量
的概念定义“
静态变量
”这一术语有两个容易混淆的定义:语言无关的通用定义:与程序有着相同生命周期(英语:Objectlifetime)的变量;C族语言特有的定义:以存储类声明的变量。而在以Pascal为代表的许多...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章