Java11 方法 方法重载 return 关键字

 

 

 

 

 

 

 

定义方法的完整格式

public class MethodsDemo1 {
    public static void main(String[] args) {
        //目标:学习方法的完整定义格式,并理解其调用和执行流程
        int rs= add(199,22);
        System.out.println(rs);
    }
    //求和方法
    public static int add(int a, int b){
        int c=a+b;
        return c;
    }
}
View Code

方法的其他写法

public class MethodsDemo2 {
    public static void main(String[] args) {
        print("hello",3);
    }

    public static void print(String a,int b){
        for (int i = 0; i <b ; i++) {
            System.out.println(a);
        }
    }
}
View Code

 

 

public class MethodsDemo4 {
    public static void main(String[] args) {
        //直接调用 让方法跑一下,但是方法返回的结果它不要了
        System.out.println(sum(1, 2));
        System.out.println("______");
        //无返回值的方法只能调用一下
        print();
    }

    //求和方法
    public static int sum(int a,int b){
        int c=a+b;
        return c;
    }

    //有具体的返回值 则必须有返回值 也必须有返回值的类型 也必须一致
    public static void print(){
        System.out.println("helloworld");
    }
}
View Code

 

方法的几个小案例

public class FuncDemo {
    public static void main(String[] args) {
        System.out.println(addNum(10));
        System.out.println(result(2));
        int [] arr={1,2,3,423,56,6};
        System.out.println(arrMax(arr));
    }

    //求和方法
    public static int addNum(int n) {
        int c = 0;
        for (int i = 1; i <= n; i++) {
            c += i;
        }
        return c;
    }


    //判断一个数是整数还是奇数
    public static String result(int a) {
        String r = "";
        if (a % 2 == 0) {
            r = "偶数";
        } else if (a % 2 != 0) {
            r = "奇数";
        }
        return r;
    }

    //找出数组中的最大值 求最值方法
    public static int arrMax(int[] a) {
//        int num,max;
//        if(a.length>=2){
//            //冒泡排序求最大值
//            for (int i = 0; i < a.length; i++) {
//                for (int j = 0; j < a.length - i - 1; j++) {
//                    if (a[j] > a[j + 1]) {
//                        num = a[j + 1];
//                        a[j + 1] = a[j];
//                        a[j] = num;
//                    }
//                }
//            }
//        }
//        int len=a.length-1;
//        max=a[len];
        int max=a[0];
        for (int i = 0; i <a.length ; i++) {
            if(max<a[i]){
                max=a[i];
            }
        }
        return max;
    }
}
View Code

 

 

 

public class FuncDemo1 {
    public static void main(String[] args) {
        // 目标 理解方法的内存运行机制
        /*
        先将main方法推入到栈方法中执行,之后将方法去的study方法在推入到栈内存中
        在将方法去内的eat 方法推入到 栈内存中  执行玩eat方法 将 eat 方法冲栈内存中 推出去
        在将方法去内的sleep方法 推如到栈内存中 ,在执行sleep方法,执行完后 在将sleep方法 推出栈内存
        执行完后 在将study方法推出 栈内存
        执行完后 在将main方法推出 栈内存
        程序执行完毕
         */
        study();
    }
    public static void study(){
        eat();
        System.out.println("开始学习");
        sleep();
    }

    public static void sleep(){
        System.out.println("开始睡觉");
    }

    public static void eat(){
        System.out.println("开始吃饭");
    }
}
View Code

 Java方法的基本类型的参数传递机制

 

public class FuncDemo2 {
    public static void main(String[] args) {
        //目标:理解Java的基本类型的参数传递:值传递
        int a=10;
        change(a);
        System.out.println(a);//10
    }

    public static void  change(int a){
        System.out.println(a);//10
        a=20;
        System.out.println(a);//20
    }
}
View Code

 

 

Java 方法的引用类型的值传递

public class FuncDemo3 {
    public static void main(String[] args) {
        //Java 方法的引用类型的参数传递
        int [] arr={1,2,34,45,6};
        changeArray(arr);//2
        System.out.println(arr[1]);//333
    }

    public static void changeArray(int [] a){
        System.out.println(a[1]);//2
        a[1]=333;
        System.out.println(a[1]);//333
    }
}
View Code

 

方法实现的几个小需求 

public class FuncDemo3 {
    public static void main(String[] args) {
        //Java 方法的引用类型的参数传递
        int[] arr = {1, 2, 34, 45, 6};
        int[] arr1={1,2,4,5};
        changeArray(arr);//2
        System.out.println(arr[1]);//333
        dealArray(arr);

        System.out.println(findIndex(arr, 3));
        System.out.println(findIndex(arr, 1));

        System.out.println("----------------");
        System.out.println(compare(arr, arr));
        System.out.println(compare(arr, arr1));
    }

    public static void changeArray(int[] a) {
        System.out.println(a[1]);//2
        a[1] = 333;
        System.out.println(a[1]);//333
    }

    //需求 答应出数组类型 [1,2,4,56,6] 这种类型 print 打印 不换行
    public static void dealArray(int[] args) {
        System.out.print("[");
        if (args.length > 0 && args != null) {
            for (int i = 0; i < args.length; i++) {
                if (i == args.length - 1) {
                    System.out.print(args[i]);
                } else {
                    System.out.print(args[i] + ",");
                }
            }
        }
        System.out.println("]");
    }


    //需求 查找数组中指定元素值的位置  找到返回指定索引 没找到返回-1
    public static int findIndex(int[] arr,int a){
        int index=-1;
        boolean result=false;
        for (int i = 0; i < arr.length; i++) {
            if(a==arr[i]){
                index=i;
                result=true;
                break;
            }
        }
      return  index=result?index:-1;
    }

    //3 需求 比较两个整型数组的内容是否一样
    public static boolean  compare(int [] a, int [] b){
        if(a.length==b.length){
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < b.length; j++) {
                    if(a[i]!=b[i]){
                        return false;
                    }
                }
            }
            return true;
        }else{
            return false;
        }
    }
}
View Code

 

方法重载

 

 

public class FuncDemo5 {
    public static void main(String[] args) {
        //目标:识别方法重载的形式,并理解其调用刘晨给,最后需要知道使用方法重载的好处
        fire();//开火
        fire("黑洞");//向黑洞发送
        fire("黑洞",5);//向黑洞发送5枚
    }

    public static void fire(){
        System.out.println("开火");
    }

    public static void fire(String location){
        System.out.println("向"+location+"发送");
    }

    public static void fire(String location,int num){
        System.out.println("向"+location+"发送"+num+"枚");

    }
}
View Code

 

 

 return 关键字

 

 

 

posted @ 2022-06-21 17:45  还有什么值得拥有  阅读(20)  评论(0编辑  收藏  举报