各位大虾,各位前辈,各位学长学姐:
    我刚学JAVA时间不长 ,由于上课时间紧,课程开的很快,所以带参的方法听的有点糊涂  尤其是引用类型,对象类型,对象数组类型。快把我整崩溃了·!~!
     HTML的课程又快开了~!我那个急啊!
   所以,想问下各位高手,带参的方法怎么学能好理解,好掌握点。
 另:  本人比较笨!!!

解决方案 »

  1.   

    传入参数,返回值,,,
    public int add(a, b) {
        int c= a+b;
        return c;
    }
    public int add() {
        int c = 1+2;
        return c;
    }
    第二个有用吗,,,
      

  2.   

    方法的参数,就是这个方法需要的输入,如 
    int add(int a, int b)
    方法的参数是a和b,由于是基础类型,这里是传值的,也就是在运行程序时,a和b的值会拷贝一个直接传入此方法,然后在方法内进行操作;出了方法体后,a、b还是原来的值,不管方法内做了什么改变;void replace(String str, char a, char b)
    str是一个String类型的对象,这里按引用传入,也就是一个指针副本。如果在方法内,修改str的某个字符的值,那会对出方法后的str仍然有效; 楼主需要慢慢体会体会。
      

  3.   

    为什么要纠结什么带参的呢,LZ你要知道JAVA没有指针
      

  4.   

      方法参数(取自《Java2核心技术卷Ⅰ:基础知识》p114)
      先来回顾一下程序设计语言中有关参数传递的计算机科学术语。“传值调用”(call by value)表示方法得到的是调用者提供的值。与之相对,“传引用调用”(call by reference)表示方法得到的是调用者提供的变量地址。这样,方法可以修改引用调用所传递变量的值,但不能修改传值调用送来的变量。不论是在Java中还是在其他各种程序设计语言中,术语“...调用”(call by ...)都是用来描述方法参数行为的标准计算机科学术语。
      Java语言总是使用传值调用。这也意味着方法得到的只是所有参数值的拷贝。因此,方法不能修改传递给它的任何参数变量的内容。
      例如:下面的调用:
      double percent = 10;
      harry.raiseSalay(percent);
      不管这个方法如何实现,方法调用后,percent的值仍然会是10。
      主我们稍微仔细地研究一下这种情况。假设一个方法要使方法参数的值增至3倍:
      public static void tripleValue(double x);//不能工作
      {
        x = 3 * x;
      }
      然后,我们调用此方法:
      double percent = 10;
      tripleValue(percent);
      然而,这样做无法达到目的。方法调用后,percent的值仍旧是10。下面是有关的执行过程:
      1)x被初始化为percent值的一个拷贝(即10)。
      2)x被增至3倍,变成30。但percent仍旧是10(参见下图)。
      3)方法结束后,参数变量x不再使用。
               ┌────┐
           ┌───│值的拷贝│
           ↓   └────┘
      percent= 10
      ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
         x= 30
           ↑   ┌─────┐
           └───│值增至3倍│
               └─────┘
      方法参数共有两种:
      ●基本类型(数字、布尔值);
      ●对象引用。
      方法不能改变基本类型的参数。但对于对象参数来说,情况则有所不同。我们可以很容易地实现一个方法,把员工的薪金增至3倍。
      public static void tripleSalary(Employee x)//能够工作
      {
        x.raiseSalary(200);
      }
      执行调用:
      harry = new Employee(...);
      tripleSalayr(harry);
      的具体工作过程如下:
      1)x被初始化为harry值的一个拷贝,即一个对象引用。
      2)向此对象引用应用raiseSalary方法。x和harry都指向的那个Employee对象的薪金被提高了200%.
      3)方法结束后,参数变量x不再使用。但对象变量harry继续指向薪金被增至3倍的那个对象。
      可以看到,实现改变对象参数状态的方法很容易。实际上,这种方式也很普遍。后面的原因很简单。方法得到对对象引用的一个拷贝,原来的对象变量和这个拷贝所指向的是同一个对象。
      很多程序设计语言(尤其是C++和Pascal)有两种参数调用的方法:传值调用和传引用调用。所以,有一些程序员(不幸的是,其中有些甚至是某些书的作者)声称Java程序设计语言对对象使用的是传引用调用。这种理解是错误的。由于,这种误解的普遍性,我们在下面举出一个反例来进行详细阐述。
      下面的方法用来交换两个员工对象:
      public static void swap(Employee x, Employee y)//无法工作
      {
        Employee temp = x;
        x = y;
        y = temp;
      }
      如果Java程序设计语言对对象使用的是传引用调用,那么这个方法将会达成目标:
      Employee a = new Employee("Alice"..);
      Employee b = new Employee("Bom"..);
      swap(a,b);
      //
      可是,这个方法事实上并没有改变存储在变量a和变量b中的对象引用。swap方法中的x和y参数被初始化为这两个引用的拷贝。然后,这个方法交换两个拷贝。
      //
      Employee temp = x;
      x = y;
      y = temp;
      但最终这么做是徒劳无功的。当方法结束后,参数变量x和y就被丢弃了。原来的变量a和b仍旧指向方法调用前各自所指向的对象。
      上面的讨论说明Java程序设计语言中并不向对象使用引用调用。实际上,对象引用是通过值来传递的。
      下面归纳了Java程序设计语言中利用方法参数可以做到和不能做到的几种情况:
      ●方法不能修改基本类型(即数字或布尔型)的参数。
      ●方法可以修改对象参数的状态。
      ●方法不能让对象参数指向新的对象。
    -----------------------
      C++既有传值调用,也有传引用调用。传引用调用只需在引用参数前标上&。例如,可以容易实现修改其引用参数的方法void tripleValue(double& x)或者void swap(Employee& x, Employee& y)。
    ----------------------
      

  5.   

    举例说明问题现在有个方法.
    这个方法是 去找女朋友 findgirlf();
    这时候问题来了, 找女朋友需要钱money
    所以我们给找女朋友这个方法设置个参数findgirlf(Money money)
    (Money money) 这里面前面表示的是类名  钱, 后面是传进来的钱的名字下面我们就是用这个方法
    Person zhangsan = new Person();
    zhangsan.findgirlf();
    张三去找女朋友,但是他没有钱,所以不能找女朋友,方法报错.zhangsan.findgirlf(100块);
    张三有了钱,就可以用找女朋友这个方法了 (这里面的100块 就是Money类型)
      

  6.   

    看我的博客吧,你可能疑惑的是值传递,数组传递的问题。
    http://blog.csdn.net/niuniu20008/article/details/2953785