帮我解析下这道java基础题,谢谢

publicclassQ6{publicstaticvoidmain(Stringargs[]){Holderh=newHolder();h.held=100;h.bum... public class Q6 {
public static void main(String args[]){
Holder h=new Holder();
h.held=100;
h.bump(h);/*这里为啥是h.bump,却不是bump*/
System.out.println(h.held);
}
}
class Holder{
public int held=100;/*为什么这里加上System.out.println(held);会报错呢?*/
public void bump(Holder theHolde)/*这里的Holder theHolde也理解不大清楚*/
{
theHolde.held--;
}
}
展开
 我来答
hdparrot
2013-11-20 · TA获得超过2404个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1151万
展开全部
因为bump是Holder类的方法,对你的主程序来说,这个方法是不可见的,必须用Holder类的对象来调用。
System.out.println(held);这样的语句只能写到方法里,不能直接写在类里,类里只能定义属性和方法,不能调用属性和方法。
Holder theHolde说明这个方法接受一个Holder类型的对象,对象的名字倒是无所谓,也可以是Holder abc,只不过这样的话,方法体里就应该是abc.held--;了
严肃的甲道士
2013-11-20 · 传播技术传播爱,笔芯❤️
严肃的甲道士
采纳数:337 获赞数:619

向TA提问 私信TA
展开全部
1、/*这里为啥是h.bump,却不是bump*/ bump未声明是个黑户
2、/*为什么这里加上System.out.println(held);会报错呢?*/ 方法必须在方法体里面调用,你能在澡堂前厅光身子洗澡吗?

3、/*这里的Holder theHolde也理解不大清楚*/ theHolde 这就是个名字,你写HelloKitty也可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hnhygkx1987
2013-11-20 · TA获得超过209个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:138万
展开全部
h.bump(h);/*这里为啥是h.bump,却不是bump*/
在staic 总发起对非staic的调用,只能调用对象实例,所以要new 一个
Holder再进行调用! public int held=100;/*为什么这里加上System.out.println(held);会报错呢?*/

因为System.out.println不能直接再类里进行操作,而要写在方法体重,你可以写在构造函数中进行调用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
herox_hu
2013-11-20 · TA获得超过776个赞
知道小有建树答主
回答量:1122
采纳率:0%
帮助的人:323万
展开全部
public int held=100;/*为什么这里加上System.out.println(held);会报错呢?*/
System.out.println语句必须写在方法体内,这个java基础没学好了哈
public void bump(Holder theHolde)/*这里的Holder theHolde也理解不大清楚*/
这里的 theHolde 的类型 是 Holder
就如同 public void bump(String theHolde)中
这里的 theHolde 的类型 是 String 一样
这样解释,理解问题不大吧。
h.bump(h);/*这里为啥是h.bump,却不是bump*/
bunp()是类Holder中的方法,只有对象才能调用方法。
所以 需要写成h.bump
追问
搞明白了 你的最通俗易懂  谢谢哈,也谢谢其他回答问题的银
追答
你 应该是个java初学者吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式