关于java中的参数传递

来源:互联网 发布:spark 用户画像算法 编辑:程序博客网 时间:2024/05/11 01:32

             作为一个JAVA的初学者,不得不说参数传递是一个很让人头疼的问题,特别是在“无数个类互相调用”,传引用时。大一学过一年的C++(接下去大二,看来还很嫩奋斗),平时的题目传参还停留在传基本数据类型的参数,但是当用JAVA做扫雷游戏时,需求多了,类自然也多了,那么很多时候类的属性会是类类型的。这个时候,当多个类之间相互调用时,会遇到两个问题:第一,如何提炼参数?第二,参数如何传递,且参数间接传递时如何避免混淆?

以扫雷为例,作以下分析:

1.为什么要传递参数?

   首先,我们来思考为什么我们把mineMenu,mineState,mineTimer,mineField,作为单独的部分分离出来?如果像起初,我们把这四部分给整合在startFrame里面,那么,举其中一个细节:如果我要选中级,我就得在new一个startFrame,且通过构造方法来设窗体的长和宽。这样显然不是一个好方法。因为窗体有重复使用的需求,我们可以理解为,我们需要经常调用某个类,经分析,我们可以把以上四个类给分离出来。

    那么,我们会遇到另外一个问题------一个类如何去调用别的类中的方法?答案是,参数传递。如果A类要调用B类中的方法b,我们通常的思路是在A类中创建一个B类的对象,然后通过这个对象来调用。这个思路是对的,但是,出于对数据的保护,我们通常用B类创建一个对象来最为A类的实例成员变量(当然它是私有的),然后将传进来的B类对象赋给A类的这个实例成员变量,然后通过这个实例成员变量来调用B类的方法。这里顺便再提一下,如果是在A类的匿名内部类调用,一定要在调用前加A,以表示是A的实例成语变量,如MineState.this.startFrame.reStart();

原创粉丝点击