一、方法定义和使用
- 函数方法的作用是把相对独立的某个功能抽象出来,使之成为一个独立的实体
- Java定义一个方法的格式:
[修饰符] [返回类型] 方法名([参数类型] 参数名) {
//方法体执行语句
} - 修饰符为可选项,他告诉编译器如何调用该方法,定义了该方法被访问的权限
- 方法名为必填项,命名规则和Java中其他的标识符相同,有限的方法名以字母或下划线开头,后面跟字母、数字或下划线。方法名应该能够反映方法所执行的任务
方法参数,也称为入参,为可选项,是指调用一个方法时可以传递的参数,可以是多个入参,也可以不存在任何参数。每个参数都需要定义参数类型,如基本数据类型或对象
- 方法体执行语句,是指任何可以出现在方法内部的有效代码
- 返回类型,是指声明定义的方法执行完成后返回值的类型
- Java中定义的方法不能独立出现,必须出现在类中,其他类要调用该类的方法,就需要指明调用方法是在哪个类中
- 方法参数
- Java中的变量分为基本类型和引用类型,基本类型变量保存数值本身,引用类型变量保存引用内存空间的地址
- 基本类型即Java中基本数据类型
- 引用类型有类,String字符串,数组,接口和集合类等
- 基本类型在定义变量时就分配了空间
- 引用类型在定义时只是给变量定义了引用空间,不分配数据空间,所以在定义引用类型是并不需要初始化赋值
- 按值传递:会将实参的值赋给形参,在函数内部的操作针对形参进行,操作的结果不会影响到实参。因为该方法接收到的只是原始实参的一份拷贝,此时内存中存在两个相等的基本类型
- 按引用传递:将实参的内存地址传递给形参,方法中实参和形参都指向同一个内存地址,在方法内部所有对形参的操作都会影响到实参的值
- 类似String、Integer、Double、Float等基本类型的包装类都是(immutable)类型,没有提供自身修改的函数,所以每次操作时都是新生成一个对象,可以理解为与基本类型相似,也是按值传递
- Java不支持默认值传参
- 方法返回值是使用return关键字,方法返回值通过使用可选的返回语句返回,可以返回包括数组和对象的任意类型,函数返回语句会立即终止函数的运行,并且将控制权交回调用该方法的代码行
- 当方法返回值定义为除void之外的其他类型时,必须使用return返回数值,而且返回值的类型必须和方法定义的返回值类型一致,否则会导致编译失败
二、可变参数方法
- Java支持在一个方法中传递数量不定的同类型参数,即可变参数类型
- 在方法声明时,在指定的入参类型后面加一个英文省略号“…”
- [修饰符][返回类型]方法名([参数类型]…参数名){
方法体执行语句
} - 一个方法中可以定义多个参数,但是可变参数只能定义一个,并且位置必须为方法入参中的最后一个参数任何其他普通的参数定义必须在可变入参之前
- 可变参数在Java编译时会被处理为一个相应类型的数组
- 调用可变入参方法是,入参个数也可以为零
- 方法可以重载,即存在两个名称相同但是入参不同的方法,调用这样的方法时,固定参数的方法会被优先调用
- 存在两个可变参数入参的同名方法,编译会报错