Java基础篇之方法篇

目录

1.Java方法:

案例1:求两个数据之和:

进一步:调用方法:

方法调用图解:

案例2:方法求两个数据较大值:

案例3:比较两个数据是否相等:

2.重点:没有明确返回值的方法:

1.练习:方法在控制台打印所有的水仙花数:

2.练习2:在控制台打印1-n的数据:

3.方法重载:

1.方法重载练习1:

4.方法参数传递问题:

1.方法参数是基本类型的情况:

2.方法参数是引用类型的情况:

3.方法练习:

4.方法练习2:获取数组最值:


Java方法:

方法:其实就是完成特定功能的代码块

定义格式:

              修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,...){

              方法体;

              return 返回值;

}

格式解释:

修饰符:目前只需记住 public static即可

返回值类型 : 用于限定返回值的数据类型

方法名: 方便我们调用方法

参数类型: 用于限定调用方法时传入的数据的数据类型

参数名: 用于接收调用方法时传入的数据的变量

方法体: 完成特定功能的代码

return 返回值:结束方法,并且把返回值带给调用者

案例1:求两个数据之和:

思路:

返回值类型:其实就是要我们明确方法结果的数据类型

参数列表:其实就是要我们明确有几个参数参加,并且每个参数都是什么数据类型的

注意事项:方法与方法是平级关系,不能嵌套定义

两个明确:

                返回值类型:int

                参数列表:int a,int b

下为定义方法:

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

    }
    public static int sum(int a,int b){
        return a + b ;
    }
}

进一步:调用方法:

调用方法,不仅仅要看方法名,还要看方法的参数(个数和类型)

A:单独调用,没有意义

B:赋值调用(推荐方式)

C:输出调用

public class MethodDemo {
    public static void main(String[] args) {
        //单独调用
        sum(10, 20);
        //赋值调用
        int result = sum(10, 20);
        System.out.println(result);
        //输出调用
        System.out.println(sum(10, 20));
    }

    public static int sum(int a, int b) {
        return a + b;
    }
}

方法调用图解:

案例2:方法求两个数据较大值:

需求:录入两个数据,返回两个数中的较大值

应当把键盘录入数据的动作放在main方法中

命名习惯问题:

类:如果是一个单词,首字母大写

       如果为多个单词,每个单词的首字母大写

方法:如果是一个单词,首字母小写

           如果是多个单词,第二个单词首字母大写

代码如下:

public class MethodDemotest2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //获取数据
        System.out.println("请输入第一个数据的值:");
        int a = sc.nextInt();
        System.out.println("请输入第二个数据的值:");
        int b = sc.nextInt();
        //输出结果
        int max = getMax(a,b);
        System.out.println("最大值为:"+max);
    }
    public static int getMax(int a,int b){
        if(a>b){
            return a;
        }else{
            return b;
        }
    }
}

案例3:比较两个数据是否相等:

需求:键盘录入两个数据,比较两个数据是否相等

两个明确:

返回值类型:Boolean

参数列表:int a,int b

public class Method_Demo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数据:");
        int a =sc.nextInt();
        System.out.println("请输入第二个数据:");
        int b =sc.nextInt();
        boolean c = compare(a,b);
        System.out.println("c:"+c);
    }
    public static boolean compare(int a ,int b){
        if(a == b){
            return true;
        }else{
            return false;
        }
    }
}

重点:没有明确返回值的方法:

需求:写一个方法,输出十次HelloWorld案例

两个明确:

返回值类型:void

参数列表:无参数

如果一个方法没有明确的返回值类型,也不能把返回值类型的地方空出来

这里应该用void表示该方法无返回值类型

方法调用:(void修饰的方法)

只能单独调用

public class Method_Demo4 {
    public static void main(String[] args) {
        printHello();
    }
    public static void printHello(){
        for (int x = 1;x<=10;x++){
            System.out.println("HelloWorld");
        }
    }
}

输出结果:

HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld

练习:方法在控制台打印所有的水仙花数:

两个明确:

返回值类型:void

参数列表:

public class Method_Test {
    public static void main(String[] args) {
        flower();
    }
    public static void flower(){
        for (int x = 100;x<=999;x++){
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/100;
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai == x){
                System.out.println(x);
            }
        }
    }
}

输出:

153
370
371
407

练习2:在控制台打印1-n的数据:

思考:

两个明确:

返回值类型:void

参数列表:int

方法重载:

方法重载:在 同一个类中,出现了方法名相同的情况。

方法重载的特点:

方法名相同,参数列表不同,方法重载与返回值无关

注意事项:

在调用方法的时候,Java虚拟机会根据方法及参数列表的不同来区分方法

参数列表不同:

A:参数个数不同

B:参数对应的数据类型不同

public class Method_Demo6 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        System.out.println(sum(a,b));
        System.out.println(sum(a,b,c));
    }
    public static int sum(int a ,int b){
        return a+b;
    }
    public static int sum(int a, int b,int c){
        return a+b+c;
    }
    public static float sum(float a ,float b){
        return a+b;
    }
}

方法重载练习1:

需求:

比较两个数据是否相等

参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型

并在main方法中进行测试

public class Method_Demo7 {
    public static void main(String[] args) {
        System.out.println(compare(10,20));
        System.out.println(compare((byte)20,(byte)10));
    }
    public static boolean compare(byte a ,byte b){
        return a == b;
    }
    public static boolean compare(short a ,short b){
        return a == b;
    }
    public static boolean compare(int a ,int b){
        return a == b;
    }
    public static boolean compare(long a ,long b){
        return a == b;
    }
}

输出结果:

false
false

方法参数传递问题:

方法参数是基本类型的情况:

public class test8 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a:" + a + ",b:" + b);
        change(a, b);
        System.out.println("a:" + a + ",b:" + b);
    }

    public static void change(int a, int b) {
        System.out.println("a:" + a + ",b:" + b);
        a = b;
        b = a + b;
        System.out.println("a:" + a + ",b:" + b);
    }
}

输出结果:

a:10,b:20
a:10,b:20
a:20,b:40
a:10,b:20

图解:

注意:方法调用完毕,就会从内存中消失

基本类型作方法的参数,形式参数的改变不影响实际参数。

形式参数:用于接收实际参数的变量

实际参数:实际参与运算的数据

方法参数是引用类型的情况:

案例

public class test9 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        for (int x = 0; x < arr.length; x++) {
            System.out.print(arr[x]+" ");
        }
        change(arr);
        System.out.println("");
        System.out.println("--------");
        for (int x = 0; x < arr.length; x++) {
            System.out.print(arr[x]+" ");
        }
    }

    public static void change(int[] arr) {
        for (int x = 0; x < arr.length; x++) {
            if (arr[x] % 2 == 0) {
                arr[x] *= 2;
            }
        }
    }
}

输出结果:

1 2 3 4 5
--------
1 4 3 8 5

图解:

引用数据类型作为参数传递,形式参数的改变直接影响实际参数

方法练习:

需求:把数组遍历改为方法实现,并调用方法

两个明确:

返回值类型:void

参数列表:int【】arr

public class test_10 {
    public static void main(String[] args) {
        int []arr = {11,22,33,44,55};
        printarray(arr);
    }
    public static void printarray(int []arr){
        System.out.print("[");
        for (int x = 0;x<arr.length;x++){
            if(x == arr.length-1) {
                System.out.print(arr[x]+"]");
                System.out.println("");
            }else{
                System.out.print(arr[x]+", ");
            }
        }
    }
}

输出结果:

[11, 22, 33, 44, 55]

方法练习2:获取数组最值:

两个明确:

返回值类型:int

参数列表int【】arr

public class test_11 {
    public static void main(String[] args) {
        int []arr = {24,36,48,75,81};
        int max = getMax(arr);
        System.out.println("max:"+max);
    }
    public static int getMax(int []arr){
        int max = arr[0];
        for (int x =1;x<arr.length;x++){
            if(arr[x]>max){
                max = arr[x];
            }
        }
        return max;
    }
}

输出:

max:81

 

发布了8 篇原创文章 · 获赞 0 · 访问量 156
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览