1. 方法的基本使用

将一段特定功能的代码块,放在{ }中,并且起一个名字,方便我们使用该功能

  1. public static void 方法名称(){
  2. //方法体
  3. }
  4. //参考main方法
  5. public static void main(String[] args) {
  6. }

如何使用:方法名();
方法必须先定义,然后才能使用
方法要想执行,必须要调用,不调用是不会执行的,main方法除外
定义方法时,不要在方法中定义方法,但是可以嵌套使用
方法不能提高程序的执行效率,只能提高代码的复用性

2. 方法的完整格式

  1. public static 返回值类型 方法名(参数数据类型 参数名1,参数数据类型 参数名2....){
  2. 方法体
  3. return 结果;
  4. }
  5. public static: 修饰符,目前来说是固定写法
  6. 返回值类型: 该方法功能完成之后,需要给调用都返回一个结果,该结果是什么类型。
  7. 方法名: 方法的名称,根据标识符的命名规则进行命名即可,小驼峰
  8. 参数数据类型 参数名1: 该方法功能执行时,需要的参数列表
  9. 方法体: 完成功能的具体代码是什么
  10. return: 返回结果的,该功能执行完毕之后,将结果返回给调用者
  11. return的作用:
  12. * 用于结束方法
  13. * 将结果返回给调用者

3. 方法的案例

  • 定义方法的两个明确?
    总结:
    明确参数列表:
    明确返回值类型:
    > 案例一: 在控制台打印10次HelloWorld
    两个明确:
    参数列表: 没有参数列表 ,打印的次数是固定10次
    返回值类型: 没有,只是打印HelloWorld , 用void表示该方法没有返回值
    >
    案例二: 实现不定次数打印HelloWorld
    两个明确:
    参数列表: 不固定次数,到底是多少次,确定的是次数是一个整数, int
    返回值类型:没有,只是打印HelloWorld , 用void表示该方法没有返回值
    > 案例三: 定义方法实现两个整数的求和计算
    两个明确:
    参数列表: 求和,是那两个数进行求和, 两个整数int类型的 , int a,int b
    返回值类型: 两个数的和,最终的一个结果肯定是一个整数,int类型
    >
    案例四: 定义方法实现比较两个整数是否相同
    两个明确:
    参数列表: 比较的是那两个整数,确定的是一个整数,int . int a,int b
    返回值类型: 比较的最终的一个结果,要么是true 要么是false 类型是boolean类型
    > 案例五: 定义方法实现:计算1+2+3…+100的和
    两个明确:
    参数列表: 求固定范围内的整数和 没有参数
    返回值类型: 整数范围内求和,结果肯定是一个整数,int
    调用方式:
    直接调用
    方法名(参数列表);
    输出调用
    sout(方法名(参数列表));
    赋值调用
    数据类型 变量名 = 方法名(参数列表);

    4. 方法的注意事项

    1. 方法与方法之间是平级关系, 不能在方法中定义方法(不能嵌套),但是可以嵌套使用
      2. 方法定义的前后顺序无所谓, 只跟调用顺序有关
      3. 方法不调用就不执行
      4. 如果方法是有返回值的, 那么必须由return语句带回一个值.(无论什么情况下)
      5. 如果方法是有返回值的, 那么返回值类型跟返回值(必须)一致.
      6. 如果方法没有返回值类型(void) 那么就不能由return带回具体的值, 但是可以直接写return;
      7. 如果方法没有返回值, 那么return语句可以省略不写.
      8. 一个方法当中可以有多个return语句, 但是执行执行一个.以后写方法,最好是一个方法完成一个功能
      9. return 后面不能有任何代码,属于无效代码

      5. 方法的重载

      必须是在同一个类中,方法名相同,参数列表不同这就是方法的重载
      方法名相同,参数列表不同,与方法的返回值无关
      好处就是简化了我们记忆方法的名称罢了

      6. 方法参数传递

      引用数据类型作为方法的参数:
      方法的参数是引用数据类型时,形式参数的改变会影响实际参数的改变
      基本数据类型作为方法的参数:
      方法的参数是基本数据类型时,形式参数的改变不影响实际参数的改变
      数组作为方法参数:
      方法的参数是一个数组类型, 那么在调用方法的时候, 传递的是数组的什么?
      地址值

      7. 方法参数传递案例

      定义方法遍历数组 ```java public class MethodTest { public static void main(String[] args) { //定义一个数组,用静态初始化完成数组元素初始化 int[] arr = {11, 22, 33, 44, 55};
  1. //调用方法
  2. printArray(arr);
  3. }
  4. // 定义一个方法,用数组遍历通用格式对数组进行遍历
  5. /*
  6. 两个明确:
  7. 返回值类型:void
  8. 参数:int[] arr
  9. */
  10. public static void printArray(int[] arr) {
  11. System.out.print("[");
  12. for(int x=0; x<arr.length; x++) {
  13. if(x == arr.length-1) {
  14. System.out.print(arr[x]);
  15. } else {
  16. System.out.print(arr[x]+", ");
  17. }
  18. }
  19. System.out.println("]");
  20. }

}

  1. 定义方法实现数组的最值
  2. ```java
  3. public class MethodTest {
  4. public static void main(String[] args) {
  5. //定义一个数组,用静态初始化完成数组元素初始化
  6. int[] arr = {12, 45, 98, 73, 60};
  7. //调用获取最大值方法,用变量接收返回结果
  8. int number = getMax(arr);
  9. //把结果输出在控制台
  10. System.out.println("number:" + number);
  11. }
  12. //定义一个方法,用来获取数组中的最大值
  13. /*
  14. 两个明确:
  15. 返回值类型:int
  16. 参数:int[] arr
  17. */
  18. public static int getMax(int[] arr) {
  19. int max = arr[0];
  20. for(int x=1; x<arr.length; x++) {
  21. if(arr[x] > max) {
  22. max = arr[x];
  23. }
  24. }
  25. return max;
  26. }
  27. }