首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
类方法中可以直接调用对象变量。( )
[单选题]
类方法中可以直接调用对象变量?
正确
错误
查看正确选项
添加笔记
求解答(37)
邀请回答
收藏(2510)
分享
91个回答
添加回答
296
后劲好大
静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用
发表于 2017-06-05 19:45:38
回复(22)
116
Payon
我真的很晕这些题,如果题目明确指出是“
直接调用
”那么我肯定认为是错误的,但如果仅仅是写出“
调用
”那么我仍然是可以new出一个对象然后进行调用,此时这题就是正确的。
发表于 2017-06-01 17:22:57
回复(12)
65
Z4Knight
当试图在类方法(也就是静态方法)中调用类的非静态变量时,eclipse 给出了这么一句话
Cannot make a static reference to the non-static field xxx(xxx代表你所写的非静态域的名字)。
这句话意思很简单,
就是不能静态方法中引用非静态的域。
原因也很简单
关于类初始化的过程中,静态域是随着类加载就完成了初始化,而非静态域此时都没有完成初始化,你引用它肯定就出错了。
如有不对之处,还请指出!
发表于 2017-05-19 16:49:44
回复(9)
51
老黑NO1
类方法是属于一个类的 是类的静态方法。调用方法是 类名.方法名(); 类方法主要用于工具类的方法。 类变量也叫静态变量,也就是在变量前加了static 的变量; 实例变量也叫对象变量,即没加static 的变量; static修饰的方法不能直接调用没有static的方法 要new一个对象出来 才能调用
发表于 2018-04-04 18:07:10
回复(2)
20
小胖java攻城狮
类方法=类的静态方法 类变量=类的静态变量 对象方法=类的非静态方法 对象变量=类的非静态变量 所以static方法调用非静态变量不行,必须初始化对象之后调用
发表于 2021-03-05 15:12:54
回复(0)
9
ELLIOTnT
静态方法中调用非静态变量时不行
编辑于 2017-11-07 16:15:10
回复(0)
8
🐮年offer收割机
类方法指的是类的静态方法
发表于 2017-06-12 20:42:45
回复(0)
6
笨小孩ovo
千万别忽略了静态方法,静态方法是不能调用对象的变量,因为他们初始化的时期都对不上,静态方法是在类加载时就初始化了,而对象变量需要在新建对象,也就是实例化后才可以使用。
发表于 2021-12-17 11:42:03
回复(0)
6
ZL125
我还寻思对象变量是什么鬼,直接自己new一个String 也是对象变量啊,竟然隐含说的是成员变量。。
发表于 2019-03-27 19:32:04
回复(1)
5
bbblemon
选B
同一个类中的成员变量是在类加载完成后,实例化时才用的,比静态方法出现的晚,可能不能访问。
编辑于 2018-06-29 11:35:20
回复(0)
3
坚持每天刷题
这个从JVM层面看就会显得很合理了,如果硬记的话就很容易忘记的。
首先类方法是指被static修饰的方法,类方法在类加载的时候就会分配内存,但是对象变量(成员变量)在实例化的时候才分配内存,所以在对象变量不存在的时候,类方法已经存在了,此时调用类方法调用不存在的对象变量属于非法操作,所以不允许。
发表于 2023-06-26 19:33:43
回复(0)
2
林夕寻
静态方法不能调用对象变量
发表于 2022-10-12 23:13:48
回复(0)
2
牛客436278495号
此处的类方法指的是静态方法,对象变量指的是非静态变量
发表于 2022-07-25 15:51:11
回复(0)
2
执梗
类方法就是静态方法,是属于静态域的,对象变量是非静态变量,是属于非静态域的。静态域在类初始化就存在了,这时还没有初始化非静态域,调用非静态域的方法或变量肯定都是错的。试想我们的main函数就只能调用静态方法,因为main方法是静态方法
发表于 2021-11-29 10:08:04
回复(0)
2
飞翔的企鹅3550771168
就我一个C++来的吗,请不要把Java标签和C++放在一起,服了
发表于 2020-12-02 22:15:59
回复(0)
2
北飃馬
这题忽略了静态方法不能调用对象变量
发表于 2018-04-15 13:31:31
回复(0)
2
课代表01
什么是对象变量!?
发表于 2017-07-28 00:31:29
回复(0)
0
Warming0126
静态方法中只能使用static修饰的变量,即静态变量,对象变量是指类的成员变量,即需要new出来才能调用。类的静态方法是在类编译时就会加载,而对象变量是在运行实例化之后才会使用。
发表于 2024-03-27 23:19:35
回复(0)
0
牛牛-小林同学
我new出来调用 难道不是直接调用吗 文字游戏
编辑于 2024-02-29 09:43:17
回复(0)
0
开心的啤酒肚这就开摆
在Java中,类方法(静态方法)中不能直接调用对象变量。类方法是属于类而不是实例的,因此它们不能直接访问实例变量。类方法只能访问类变量(静态变量)和其他类方法。
如果你在类方法中需要使用对象变量,你需要通过方法的参数将对象传递给类方法,或者在类方法内部创建一个对象实例
发表于 2023-11-16 15:08:46
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++
Java
上传者:
Letitia
难度:
91条回答
2510收藏
11976浏览
热门推荐
相关试题
运行 ldd hello 可以得到...
百度
C++
评论
(3)
能被多个质数整除的第K长子段
基础数学
评论
(1)
三张财务报表的哪个最重要,其次是哪...
财会基础
评论
(1)
说一下对IFRS15(新收入准则)...
财会基础
评论
(1)
你对内部审计工作有什么认识吗?内部...
岗位认知
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题