关于方案一的理解

关于方案一的理解

为何在测试类中直接写

//方案一
//	public void getRead(Man man) {
//		man.read();
//	}
//	public void getRead(Woman woman) {
//		woman.read();
//	}

之前的课程有提过这种写法吗?是在哪一章?

我直接这么写不是一样可以调用Man类或者Woman的read方法吗?这样算不算方案4了,也是之前常用的方式啊

public class Test {

	public static void main(String[] args) {
		Man one=new Man();
		Woman two=new Woman();
		one.read();
		two.read();
	}

}


正在回答

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

2回答

同学你好,案例一中,如果想执行getRead方法,则必须传入getRead中需要的实例对象(man或者woman)。例如下图,我们在调用getRead方法时,就传入了实例化的对象 one和two(也就是man或者woman的实例对象)。所以这里我们创建这个方法时,就默认这里已经传入了实例对象,去用的传过来的实例化对象去调用的方法。

http://img1.sycdn.imooc.com//climg/5dd275e50941b97a06880442.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小尤 2019-11-18 14:52:09

同学你好,1. public void getRead(Man man)是在main方法中创建Man对象,然后调用getRead方法,将Man对象传进去,然后在getRead方法中,使用传进来的Man对象,调用其read方法。

注:传进来的参数是可以直接使用的,不一定要将其赋值给一个变量,然后再使用。

2. 同学的方式也是可以调用到Man类或Woman的read方法的。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 课桌刻着小时候 #1
    老师好,我疑惑的是方案一的对象实例化过程, public void getRead(Man man)并不是在main方法中创建Man对象吧?是在测试类中的main方法外,而方案一没看到new对象,那是如何调用的?因为在已学的知识中,非静态成员的测试类,只能通关对象实例化且在main方法中来调用子类或者父类的成员.
    2019-11-18 17:41:35
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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