Java面向对象——方法

1.方法的重载(overload)

概念:在Java中,同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可(如Arrays类中存在多个binarySearch方法,它们的参数各不相同)。不是按照形参名分。

特点:与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区分。

示例:

        int add(int x,int y) {
            return x+y;
        }
        int add(int x,int y,int z) {
            return x+y+z;
        }
        double add(double x,double y) {
            return x+y;
        }

2.可变形参的方法

JavaSE 5.0中提供了Varargs机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参

格式:

  数类型 ... 变量名  

示例:

package com.xlx.java;

public class HelloWorld {
    public static void main(String[] args) {
        Person p1=new Person();        // 创建实例
        p1.show("a","123","xxx");    // 调用show方法(所有实参需要类型相同)
    }
}

class Person{
    public void show(String ... strs) {
        System.out.println(strs); // 输出的是一个地址值
    }
}

注意:

  • 当调用可变个数形参的方法时,传入的参数个数可以是0、1、2。。。
  • 可变个数形参的方法与奔雷中方法名相同,形参不同的方法之间构成重载
  • 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。
  • 可以使用遍历数组的方法获取所有成员
  • 可变个数形参在方法的形参中,必须声明在末尾

3.方法参数的值传递机制

Java里方法的参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响

  • 形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参
  • 形参是引用数据类型,将实参引用数据类型变量的“地址值“传递给形参(方法内无法修改形参的值)

4.递归方法

  一个方法体内调用它自身