1-Java基础回顾整理_05_方法

1、方法

  main()方法是交给主程序来使用的;

  main()方法外面的方法,不能直接使用,需要添加static关键字后,成为类方法,才能进行直接调用;

  设计方法的原则:

    最好要保持方法的原则性,也就是一个方法只完成一个功能,这样的话方便后期的维护和扩展。

2、main()方法

  main()方法是在栈的最底层,涉及到JVM方面的内容;

3、方法组成

  方法包含一个方法头和一个方法体,具体包含内容:修饰符、返回值类型、方法名、参数列表、方法体

  方法最主要的三要素:

    方法名(使用驼峰命名)、返回值类型、参数列表

  注意:

    1)方法的参数分为:实参、形参

      实参:就是调用方法的时候传递的实际参数值,如:test(1,2)

      形参:就是在定义方法的时候,括号里面设定的变量参数,用来赋值调用,如:test(int a,int b)

    2)方法的返回值类型若有,即为int、String这些,那么要在方法的最后写生return语句,否则会报错;

       若没有返回值类型,即为void,那么就不需要写return语句;

4、return的作用

  1)返回对应的参数;

  2)终止方法的执行;

5、方法调用

  Java支持两种方法的调用方式,主要是根据返回值类型来进行判断

  1)当有返回值时,方法调用通常被当做一个值,如:int num = max(30,40);

  2)当无返回值时,方法调用一定是一条语句,如:System.out.println("Hello world");

6、值传递与引用传递

  Java采用的是值传递,基本都是通过方法里面的参数来进行值传递,值传递有一个拷贝的概念;具体会在JVM中涉及

7、方法的重载

  在一个类中,方法名相同,形参不同的方法,就叫做方法的重载;

  注意:

    如果一个方法仅仅是返回值类型不同,那么不足以成为方法的重载。

8、命令行传参

  有时候我们想在运行一个程序的时候再传递给它消息,那么就要靠传递命令行参数来给main()方法实现;如:在terminal窗口的命令行输入java Demo01 this is test 那么就能实现,对应的功能

9、可变参数

  又叫做不定项参数,就是不确定参数具体有多少个,在指定参数类型的后面加上...符号,如:test(int ...i)

  注意:

    1)可变参数必须放在参数列表的最后面

    2)它是JDK1.5出现的产物

10、调用方法的方式

  1)在方法上添加static关键字,成为类方法,然后通过类名.方法名(),调用

  2)new 对象,通过对象名.方法名()

11、方法递归  (面试高频)

  说白了就是方法自己调用自己,但是如果没有任何考虑和限制条件的话,会报异常,会发生“栈溢出”的问题

  递归的结构:包含递归头和递归体两部分;

    递归头:就是确定什么时候不调用自身方法,是一个条件,如果没有递归头的话,那么将会陷入死循环;

    递归体:就是确定什么时候需要调用自身方法

    如:求阶乘  首先需要在开头加一个停止调用自身的条件,if(n == 1) return 1; 然后设置什么时候调用自己,else return n * f(n - 1);

      也就是说需要有一个边界条件(官方说法)

      前阶段      返回阶段 n * (n - 1)

12、栈(扩展内容)

  Java都是使用栈机制的,栈相当于一个罐子,当调用一个方法的时候,就把这个方法压在罐子底部,调用一个往里面压一下,称为压栈,然后当使用完毕的时候,会从最上面依次向下将方法拿出来;

  即:后进先出原则

13、接11的递归

  所以当遇到一些嵌套层次比较深的算法时,递归可能就不太适用了,可能会发生内存崩溃的问题,因为每嵌套一层,在调用的时候就会扩展一层,会占用内存空间,所以嵌套层次太多的话,就会发生内存崩溃的问题;

  也就是说,当递归的深度越大,那么它的时控性就不行了,就会变得很慢,而且会占用大量的内存空间,所以一般情况下,能不用递归就不用递归,当嵌套基数比较小时,可以适当的考虑

  我们主要使用的是递归的思想,利用它的思想来解决问题。

原文地址:https://www.cnblogs.com/hand-blog/p/13097055.html