6方法

72 阅读5分钟
-   能够知道方法定义和通用格式
-   能够使用方法完成两个较大数的获取并调用方法
-   能够使用方法完成数组遍历并调用方法
-   能够使用方法完成获取数组最大值并调用方法
-        int sum = getSum(a, b);
-        //定义方法完成计算两个int数据之和
 /*
	定义方法需要考虑哪些问题?
		1.方法名称: 就是给方法起个名字,使用名字调用方法
                -   **明确返回值类型**:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。
                -   **明确参数列表**:计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的变量,由调用者调用方法时传递
		2.是否有未知数据参加运算: 
			并不清楚具体的对那两个数求和,但是调用方法时肯定会给两个int数据,
			所以定义两个int变量接收需要求和的数据
		3.是否产生结果: 两个int数据的和一定是有结果的,而且结果也必然是int类型
	
    需要注意的地方:
    	1.public static: 目前固定写法
    	2.int: 方法内部产生的结果的类型
    	3.return result: 把结果result返回给调用的地方
	
*/
修饰符 返回值类型 方法名(参数列表){
	//代码省略...
    return 结果;
}
-   修饰符: public static 固定写法
-   返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
-   参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
-   return:将方法执行后的结果带给调用者,方法执行到`return` ,整体方法运行结束

> 小贴士:return **结果**; 这里的"结果"在开发中,我们正确的叫法成为**方法的返回值**
//定义方法完成计算两个int数据之和
public static int getSum(int a, int b) {
	int result = a + b;
	return result;
} 
    计算一个int数据是否是偶数 
        //调用方法isOu,传递num,获取结果保存到boolean变量result中
        boolean result = isOu( num ); 
        //使用三元运算符,计算num是否是偶数
        boolean result = (num % 2 == 0) ? true : false;
  发现方法内部没有产生具体的结果数据,返回值类型必须写成void
  方法内部可以写return ; 但是建议省略,绝对不能写 return 数据;    
   定义方法,将一个int数字指定给一个int数组的每个元素
   package com.itheima03;
   import java.util.Arrays;   
public class Demo06FillArray {
    public static void main(String[] args) {
        System.out.println("main...start...");
        int[] arr = new int[10];
        System.out.print("数组元素默认值: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        //调用fillArray方法,把数组中的所有元素值都修改为1000
        int num = 1000;
        fillArray(arr,num);
        System.out.print("数组元素修改后的值: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        System.out.println("main...end...");
    }

    /*
        定义方法,将一个int数字指定给一个int数组的每个元素
        三要素:
        (1)方法名称:                fillArray
        (2)是否有未知数据参加运算:   int[] array,int value
        (3)是否产生结果数据:         没有具体的结果数据,此时返回值类型必须写为void
  没有未知数据参加运算,没有参数,不用写参数列表,但是必须保留()       
     */
    public static void fillArray(int[] array, int value) {
        for (int i = 0; i < array.length; i++) {
            array[i] = value;
        }
        return ;//结束方法,返回到方法的调用处,建议省略
    }
}
定义方法的注意事项
-   方法不能嵌套定义
-   返回值类型,必须要和`return`语句返回的类型相同,否则编译失败 。
-   不能在`return` 后面写代码,`return` 意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
  public static void methodOne() {
		public static void methodTwo() {
       		// 这里会引发编译错误!!!
    	}
    }
   // 返回值类型要求是int
public static int getSum() {
    return 5;// 正确,int类型
    return 1.2;// 错误,类型不匹配
    return true;// 错误,类型不匹配
} 
-   void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
public class MethodDemo {
    public static void main(String[] args) {

    }
    public static void methodTwo() {
        //return 100; 编译错误,因为没有具体返回值类型
        return;	
        //System.out.println(100); return语句后面不能跟数据或代码
    }
}
/*
    有返回值的方法的调用
   1.赋值调用: 把调用有返回值方法的返回的结果赋值给左侧的变量         ---推荐使用---
            数据类型 变量名称 = 方法名称(参数列表....)
   2.打印/输出调用: 把调用有返回值方法的返回的结果直接交给输出语句
   3.单独/独立/直接调用: 直接调用有返回值方法,对结果数据没有任何处理(丢失了结果)       ---不推荐使用---
            方法名称(参数列表....);
/*
    无返回值的方法调用方式
       1.单独/独立/直接调用: 直接调用有返回值方法,对结果数据没有任何处理   ---只能使用这种方式---
           方法名称(参数列表....);

       无返回值.赋值调用  打印/输出调用 错误的
 */
 计算两个double数据的最小值
  方法不调用,不执行
        调用格式:
        	//把调用方法后,产生的结果数据赋值给左侧的变量
            数据类型 变量名称 = 方法名称(参数列表...);
 public class Demo01DefineMethod {
    public static void main(String[] args) {
        //定义2个double变量m,n 并初始化
        double m = 1.0, n = 2.0;
        //1.调用getMin方法,保存到double变量min中
        double z = getMin(m,n);
        System.out.println(z);
    }
    /*
        1.定义方法,计算两个double数据的最小值
     */
    public static double getMin(double a, double b) {
        double min;
        if(a<b) {
            min = a;
        } else {
            min = b;
        }
        return min;
    }
}
 定义方法,判断一个字符是否是字母 
        if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')) {
            return true;
        }
        return false;
定义方法,计算一个int数组的和 
    public static int getArraySum(int[] array) {
        int sum = 0;
        for(int i = 0;i<array.length;i++) {
            sum += array[i];
        }
        return sum;
    }      
 定义方法,计算两个int数组是否相同     
 定义方法,计算两个int数组是否相同 
    public static boolean isSame(int[] arrayA, int[] arrayB) {
        if(arrayA.length != arrayB.length)  {
            return false;
        }
        for(int i = 0;i<arrayA.length;i++) {
            if(arrayA[i] != arrayB[i]) {
                return false;
            }
        }
        return true;
    }