【Day06 方法】

1.什么是方法

 我们也可以自己去定义一些其他的方法 

2.方法的格式

2.1方法格式

 2.2方法的定义

2.2.1总体格式:

2.2.2最简单的方法定义与调用

定义:

 调用 

 示例代码:

package method;

public class test1 {
    public static void main(String[] args) {
        //最简单的方法定义和调用的格式
        
        phonenumber();//调用方法
    }
    public static void phonenumber(){//定义

        System.out.println("1");
        System.out.println("0");
        System.out.println("0");
        System.out.println("8");
        System.out.println("6");

    }
}
package method;

public class test3 {
    public static void main(String[] args) {
        //需求:在方法里定义两个变量并求和打印
        getSum();
    }

    public static void getSum(){
        int num1=10;
        int num2=20;
        int result=num1+num2;
        System.out.println(result);
    }
}

2.2.3带参数的方法定义

示例代码:

package method;

public class test5 {
    public static void main(String[] args) {

        getSum(12,15);//27
    }

    public static void getSum(int num1, int num2) {
        int result = num1 + num2;
        System.out.println(result);
    }
}

 形参和实参:

 练习1:人肉计算器1   

计算周长:

代码:

package method;

import java.util.Scanner;

public class test6 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入长和宽");
        longthSum(sc.nextInt(), sc.nextInt());//形参里面需要什么填什么
    }

    public static void longthSum(int longth, int weith) {

        System.out.println(2 * (longth + weith));
    }
}

计算圆的面积:

package method;

import java.util.Scanner;

public class test7 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        areath(sc.nextDouble());
    }
    public static void areath(double r){
        System.out.println(3.14*r*r);
    }
}

2.2.4带返回值的方法的定义

原因:

 说人话:后续重复使用这个模板,就用带返回值的

格式:

 调用方式:          

 示例代码:

package method;
//需求:计算一季度营业额
public class test8 {
    //带返回值的方法定义和调用
    public static void main(String[] args) {
        //直接调用
        getSum(10, 20, 30);
        //赋值调用
        int sum = getSum(10, 20, 30);
        System.out.println(sum);
        //输出调用
        System.out.println(getSum(10,23,12));
    }

    public static int getSum(int num1, int num2, int num3) {

        int result = num1 + num2 + num3;
        return result;//返回到调用处
    }
}

练习:比较两个长方形周长大小

代码:

package method;

import java.util.Scanner;

public class test9 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个长方形");
        int sum1 = getSum(sc.nextInt(), sc.nextInt());
        System.out.println("输入第二个长方形");
        int sum2 = getSum(sc.nextInt(), sc.nextInt());
        if (sum1 > sum2) {
            System.out.println("bigger");
        } else {
            System.out.println("shorter");
        }
    }

    public static int getSum(int len, int weith) {
        int sum = 2 * (len + weith);

        return sum;
    }
}

2.2.5 小结

2.3 方法的重载

 简单区分一下:

 

练习:使用重载思想设计比较两个整数是否相同

要求:兼容全整数类型(byte,short,int,long)

代码:

package method;

public class test10 {
    //练习:使用重载思想设计比较两个整数是否相同
    //
    //要求:兼容全整数类型(byte,short,int,long)
    public static void main(String[] args) {

        //调用
        compare(10, 10);

        byte b1 = 10;
        byte b2 = 10;
        compare(b1, b2);
    }


    public static void compare(int i1, int i2) {
        System.out.println(i1 == i2);
    }

    public static void compare(short s1, short s2) {
        System.out.println(s1 == s2);
    }

    public static void compare(byte b1, byte b2) {
        System.out.println(b1 == b2);
    }

    public static void compare(long l1, long l2) {
        System.out.println(l1 == l2);
    }
}

 2.4 四大练习

2.4.1  数组遍历

代码:

package method;

public class test11 {
    public static void main(String[] args) {
        int[] arr1 = {11, 22, 33, 44, 55};

        intArr(arr1);
        //System.out.println("abc");//打印abc并换行
        //System.out.print("abc");//打印abc,不换行

        //System.out.println();//不打印任何数据单纯换行
        //System.out.println(arr1.length);数组长度为5
    }

    public static void intArr(int[] arr){

        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                System.out.print(arr[i]);//下标为4时,只打印数字
            }else{
                System.out.print(arr[i]+",");//下标不是4时,打印数字加逗号
            }
        }
        System.out.print("]");
    }
}

2.4.2  数组最大值

package method;

public class test12 {
    public static void main(String[] args) {

        int[] arr = {1, 2, 4, 64, 12, 456, 75, 21, 24, 5, 65, 5456, 4, 5, 5, 55, 2, 26, 54, 51, 2, 512, 2415, 2};
        int max = getMax(arr);//选中方法名  ctrl+alt+v  快捷键生成数据类型
        System.out.println(max);
    }
    

    public static int getMax(int[] arr) {

        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;

    }


}

2.4.3  判断是否存在

代码:

package method;
//判断数组中是否存在指定数据
public class test13 {
    public static void main(String[] args) {
        int[]arr={12,21,4,5,23,12,4,45};
        boolean b = ifCantain(5, arr);
        System.out.println(b);
    }
public static boolean ifCantain(int num,int []arr){
    for (int i = 0; i < arr.length; i++) {
        if(arr[i]==num){
            return true;
        }
    }
    return false;//放在遍历外,全部比较后没有再输出false
        
}

}

2.4.4  拷贝(复制数组)

 思路:

代码:

package method;

public class test14 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] result = copyOfRange(arr, 2, 6);//定义新数组
        for (int i = 0; i < result.length; i++) {//遍历[]result
            System.out.print(result[i] + " ");
        }
    }

    public static int[] copyOfRange(int[] arr, int from, int to) {
        //1.定义数组
        int[] arr1 = new int[to - from];//数组的动态初始化
        //2.把原数组中的from到to拷贝到新数组中
        int index = 0;//伪造一个索引 
        for (int i = from; i < to; i++) {
            arr1[index] = arr[i];
            index++;
        }
        return arr1;
    }

}

 2.5  方法的内存(偏理论)

2.5.1方法调用的基本内存原理

2.5.2方法传递基本数据类型的内存原理

2.5.3方法传递引用数据类型的内存原理


版权声明:本文为chijijixiaozhang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。