方 法

方 法,第1张

目录

一、定义声明

二、调用及参数传递

三、可变参数

四、匿名,基本数据,引用类型当参数

五、递归


一、定义声明
  • 1、方法的作用

    Java语言中的"方法"(Method)在其他语言当中也可能被称为"函数"(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到"随时任意使用",就可以将这些代码放在“{}”中,并且起一个名字。使用代码的时候,直接找到名字调用即可。

  • 2、定义: 成员方法是类中进行数据处理(对象的行为),实现相关功能的函数。

    方决定了一个对象能够接收什么样的消息。

    方法的基本组成部分包括:名称、参数、返回值和方法体

  • 3、声明形式:

    [访问权限修饰符] [修饰符] 返回值数据类型 (形式参数列表){

    执行语句;

    return 返回值;

    }

    • 4、方法的各部分解析

      ①方法的命名:第一个单词应以小写字母开头,后面的单词则使用驼峰命名法。 sendMessge

      ②访问权限修饰符及修饰符:

      ③返回值类型 :方法运行后的返回结果的数据类型。返回类型可以是任意的Java数据类型

              有返回值的情况:返回值类型和return后的返回值的数据类型必须一致.

              无返回值的情况:返回值类型用void,此时return可以省略不写或者return;

      ④形式参数列表:就是变量列表,用于存储调用方法时传递给方法的实际参数。

              语法:方法名(数据类型1 参数名1,数据类型2 参数名2,数据类型3 参数名3....)

              参数的个数可以是0个、1个或者多个

      ⑤return:用于结束方法以及返回方法指定类型的值。

      ⑥返回值:该方法执行后的结果,该结果会返回给调用者。

      ⑦方法体:方法体里面不能再定义方法,但可以调用其他,可以写局部变量、运算符、流程控制、数组等一切符合java规范的代码

  • 5、有明确返回值的方法调用

    • 单独调用,没有意义
    • 输出调用,有意义,但是不够好,因为我不一定非要把结果输出
    • 赋值调用,推荐方式
  • 6、没有明确返回值的方法调用

    • 其实就是void类型方法的调用
    • 只能单独调用
  • 7、特点

    • 定义方法可以将功能代码进行封装。
    • 方法只有被调用才会执行。
    • 方法的出现提高代码的复用性。
    • 方法若没有返回值,则用关键字void表示,那么该方法中的return语句如果在最后一行可以省略不写。
    • 方法中可以调用方法,不可以在方法内部定义方法。
    • 定义方法时,方法的结果应返回给调用者,交由调用者来处理

方法不能返回多个值,如果想返回多个值,可以定义一个类,把多个值定义为成员变量,最后返回自定义类的对象。

二、调用及参数传递

语法:对象名.方法名(实际参数列表)

注意:1.实际参数就是传递实际的值。

          2.实际参数可以是0个、1个或者多个,多个实际参数使用逗号分隔。

三、可变参数

修饰符 返回值类型 方法名(数据类型...变量名){}

如果有多个参数,可变参数一定放在最后面,并且一个方法只有一个可变参数

拥有可变参数的方法可以被重载,在被调用时,优先调用参数定长的方法;

可变参数和数组作为参数去实现重载时会报错,说明可变参数与数组冲突

可变参数可以兼容数组参数,数组参数无法兼容可变参数

  • 特点
    • Java把可变参数当做数组处理
    • 可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项
    • 可变参数用...代替标识,...位于变量类型和变量名之间,前后有无空格都可以
    • 用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
四、匿名,基本数据,引用类型当参数
  • 匿名对象不会当成垃圾
  • 基本数据类型传递的是值,独立的空间,相互不影响的。String传递的也是值
  • 引用数据类型传递的是地址。但是String类型和基本数据类型的值传递一致
五、递归
  • 递归要点:
    • 每次递归调用都要使问题简单化
    • 必然后一个边界条件
    • 使用递归代码往往更加简洁,可读性强。
public class RecursionTest {
  public static void main(String[] args) {
    int result = f(5);
    System.out.println(result);
  }
  // 5的阶乘   5*4的阶乘   4*3阶乘    n*(n-1)的阶乘
  //使用Java代码求5的阶乘
  public static int f(int n) {
    if (1 == n){
             return 1; 
        } else {
            return n * f(n - 1);
        }  
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/727335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存