听课的疑问

听课的疑问

1、在同一个类中,get方法写在set方法前,会不会导致get直接把属性的默认值返回测试类?

2、在视频结尾,对象实例化过程中,使用带参构造实例化对象,Cat one=new Cat(-3);,也就是把年龄month传成了负数,可是不是用getMonth返回测试类吗?在测试类中专门使用了if(one.getMonth==0)来判断是否要打印,那还干嘛要在带参的构造方法中调用同一个类中的setMonth(month);呢?

3、即便我不去理解上面的困惑,继续听课,还是有两点疑惑:
课程里讲,Cat one = new Cat(-3);,此时传值导致逻辑错误,需要构造方法 public Cat(int month)在方法体内调用同一类中的public void setMonth(int month)方法体内的if限制条件,if(month<0){打印输出信息错误;}else{this.setMonth(month);}
一、老师,这也太麻烦了,能不能直接在构造方法里去写if的限制条件,这样就不用调用setMonth(int month)了?
二、还有,在使用this调用setMonth(month)的方法时,怎么把参数month的类型 int 给省略了,写成了: this.setMonth(month);?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,在拥有属性和方法的类中,创建set、get方法的顺序对赋值、获取值没有任何影响。只与在Test类中的调用set、get方法的顺序有关。所以,就算在属性的方法的类里,get方法写在set之前,只要先调用了set方法赋值,再使用get方法获取,就会返回已经赋值过了的属性。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-04-17 18:53:13

同学你好,方法只有在调用的时候才会生效,与调用方法的顺序有关,与方法在类中的顺序没有关系。另外,老师不明白同学,“先使用对象名.set方法名实现赋值,把get方法放在set的前面,肯定没问题吧?”这句话的意思,如果还有什么不明白的,还需要同学详细描述一下问题。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    好的,我有点描述不清。按顺序描述: 1、在拥有属性和方法的类中,先使用private创建属性,然后创建set、get方法,但是将get方法写在set方法前。 2、在测试类中,实例化一个对象,然后使用对象调用set()赋值,set回到自己的类里,将数值通过this.属性名传过去。 3、在测试类里,使用对象名.get()实现读取。我的问题就在这里,因为在属性的方法的类里,get方法是写在set之前,这里还是会返回已经赋值过了的属性,没错吧?
    2019-04-17 19:07:33
吃吃吃鱼的猫 2019-04-17 14:56:08

 同学,你好!非常抱歉让你误解了,老师没有质疑你的意思,只是说了一下学习方法。如果同学已经这么做了,是非常棒哒!同学有问题可以继续提问,我们会认真解答的。祝学习愉快! 

  • 提问者 鱼儿0001 #1
    好的,谢谢
    2019-04-17 15:58:11
吃吃吃鱼的猫 2019-04-17 12:05:42

同学你好,1.是的。2.构造方法中调用setMonth(month)方法是在初始化Cat对象时进行month的判断。3.一:可以在构造方法中去写if的限制条件,不再调用setMonth(int month)方法了。二:在定义方法时,方法参数需要写参数类型,但在调用方法时,不需要写参数类型,这是java语法所规定的。建议同学不要只看视频,要跟着视频代码多敲几遍,这样才能熟练的掌握知识。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    建议同学不要只看视频,要跟着视频代码多敲几遍,这样才能熟练的掌握知识。 你这话说的我好像没有练似的,请不要随便揣测别人,好吗?
    2019-04-17 14:35:10
  • 提问者 鱼儿0001 #2
    不懂就会问,我难道有错了?你怎么知道我没有练?
    2019-04-17 14:36:30
  • 提问者 鱼儿0001 #3
    你们回复的那么慢,往往需要等几个小时,才能回答我的问题,而到那时即便给出了答案,我都会忘了当时是哪里卡住了我,不趁热打铁立马就凉了,你告诉我怎么办?要你们为我的学习负责? 你们还有一天只能提10个问题的限制,我都不说了,买课程的时候可没有说过。 我都学得这么认真了,就别给建议了,好好回答我的问题吧
    2019-04-17 14:42:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师