听课的几点疑问
问题1:
如图所示,使用private修饰了同一类中的两个方法进行封装,然后使用对象名.方法名来实现调用,答案是15。
不是说使用private修饰的属性、方法就是不能被对象名.方法名调用吗?
问题2:
添加了static的属性或方法,是不是在内存空间中,不是被对象所具有的的空间存储的?对象使用它时,难道是要访问static所在的空间才行? 我的意思是,一般的属性或方法,在对象实例化,并且set、get以后,是存储在对象自己的空间里,像是把食物买回家了,可以私藏了。而添加了static的属性、方法,类似食堂,你要去吃就得离开家去食堂,不能把食物带回家。就是说,static保持了自己的共有、共享?
问题3:
在属性和方法的类中创建set方法,并且在方法体内写好了this.XXX=XXX;,但是在测试类中并没有使用对象调用set,那么这时候set方法里的this.XXX=XXX会不会对private的对应属性赋值?
问题4:
如图所示,在class类的静态方法getMChar()方法里,调用同一类的非静态成员ch是会报错的。我这里的疑问是,在主方法中打印的写法:
new Demo().getMChar();
这是在以前的视频里没有讲过的调用方式,课程里教的是通过实例化对象,然后对象名.方法名来调用方法,可是在这里却是这样写,对象都没有创建,怎么能这样用?
问题5:
如图所示,在静态方法里调用非静态方法是错误的,但是此题还有一处错误是:在run方法里没有传入参数。
这我就不能理解了,run(String name),括号里不是有字符串类型的参数name吗,打印的是(name+"快跑"),name进来了啊,怎么没有传入参数?
正在回答
同学你好,关于Demo demo=new Demo的解释,其实就是创建对象的过程,在链接:http://class.imooc.com/course/qadetail/109533 中已经解释了Cat cat=new Cat()对象的创建,两者意义相同。解释如下:
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,两个问答同学问了同一个问题哦~上一个回答中,老师已经为同学解答了,但是链接多了一个句号,正确的链接如下:http://class.imooc.com/course/qadetail/109533 。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,关于Demo demo=new Demo的解释,老师在另一个问答中已经回复,同学可以参考链接下的回复:http://class.imooc.com/course/qadetail/109533。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,new Demo()表示创建一个新的对象。在这里给同学举一个例子。
Cat cat1=new Cat();
cat1.setName("kitty");
cat1.setSex("男");
这时创建了一个名为kitty的小猫,性别为男。
new Cat().setName("小一");
new Cat().setSex("女");
这时创建了两个小猫,一个名为小一,性别没有赋值。另一只名字没有赋值,性别为女。
所以说,在选择对象调用方法或属性时,选择new Demo().XXX还是demo.XXX要看具体的程序逻辑是什么样的。
如果方法的定义中定义了参数,那么在调用方法时,必须要进行传值,所以,run方法中必须传值。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,
private表示私有,意思就是自己对象内部可以直接调用,但不能被除自己对象之外的任何对象调用。这里,两个add对象都在Test类中,调用也在Test类当中,所以,这样写没有问题。
对于static,同学理解的没错哦。
当没有调用方法时,不会执行方法体中的语句哦,所以set方法中的赋值语句不会执行。
在这里给同学举个小例子,Demo demo=new Demo();这句话中,分为三步。
第一步:Demo demo;定义一个Demo类型的引用,
第二步:new Demo();这句才是创建对象的语句,
第三步:Demo demo=new Demo();将引用指向真正的对象。
所以new Demo().getMChar()其实就相当于demo.getMChar()方法,这里为了方便,是种省略的写法。
没有传入参数的意思是:调用方法时需要传入参数,即调用run方法时需要传入一个字符串类型的值(这里是名字),写法为:run("小猫")。
同学可以理解为在调用run(String name)方法时,为name赋值为传入的参数即“小猫”,执行方法语句时,会输出“小猫快跑”。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星