Java基础知识笔记四(详细)

方法概述

Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合,方法包含于类或对象中,方法在程序中被创建,在其他地方被引用。

简单的说:方法就是完成特定功能的代码块
在很多语言里面都有函数的定义,函数在Java中被称为方法

方法格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}

package com.baidu.Demo;
public class DemoMethod {
    public static void main(String[] args) {
    }
    public static int getSum(int a,int b){
        int result = a +  b;
        return result;
    }
}

有些是没有返回值的

格式说明

  • 修饰符:目前固定写法 public static
  • 返回值类型:用于限定返回值的数据类型
  • 方法名: 一个名字,为了方便我们调用方法
  • 参数类型:用于限定调用方法时传入的数据的类型
  • 参数名 :用于接收调用方法时传入的数据的变量
  • 方法体:完成功能的代码
  • return :结束方法,把返回值带给调用者

方法案例

1,求两个数据之和

package com.baidu.Demo;
public class DemoMethod {
    public static void main(String[] args) {
        //方法一:输出调用
        //System.out.println(getSum(10,20));
        //方法二:赋值调用
        int result = getSum(10,20);
        System.out.println(result);
    }
    public static int getSum(int a,int b){
        int result = a +  b;
        return result;
    }
}

2,过程图解
在这里插入图片描述
3,键盘录入两个数据,返回两个数中的较大值

package com.baidu.Demo;
import java.util.Scanner;
public class methodTest {
    public static void main(String[] args) {
         Scanner sc=new Scanner(System.in);
         System.out.print("请输入两个数:");
         int a=sc.nextInt();
         int b=sc.nextInt();
        System.out.println("最大值是:"+getMax(a,b));
    }
    public static int getMax(int x,int y){
        if(x>y)
            return x;
        return y;
    }
}

4,键盘录入两个数据,比较两个数是否相等

package com.baidu.Demo;
import java.util.Scanner;
public class methodTest {
    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 falg=getCompare(a,b);
        System.out.println("这两个数:"+falg);
    }
    public static boolean getCompare(int a,int b){
        return a==b;
    }
}

方法重载

1,方法重载概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
2,方法重载特点
与返回值类型无关,只看方法名和参数列表
参数列表的不同,指的是参数个数不同和类型不同
在调用时,虚拟机通过参数列表的不同来区分同名方法

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 double sum(int a,int b,double c){
        return a+b+c;
    }

重载按例

1,计算两个数据之和,参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型

package com.baidu.Demo;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;
public class MedthodTest {
    public static void main(String[] args) {
        System.out.println(sum(10,23));
        System.out.println(sum((byte)10,(byte)23));
        System.out.println(sum((short)10,(short)23));
        System.out.println(sum(10l,23l));
    }
    public static byte sum(byte b1,byte b2){
        System.out.println("byte---");
        return (byte)(b1+b2);
    }
    public static short sum(short s1,short s2){
        System.out.println("short---");
        return (short)(s1+s2);
    }
    public static int sum(int i1,int i2){
        System.out.println("int---");
        return (i1+i2);
    }
    public static long sum(long l1,long l2){
        System.out.println("long---");
        return (l1+l2);
    }
}

传递问题

1,java方法参数的值传递,形式参数的改变不影响实际参数的数据值

package com.baidu.Demo;
public class args {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        System.out.println("a"+a+"|"+"b"+b);//10 20
        chang(a,b);
        System.out.println("a"+a+"|"+"b"+b);//10 20
    }
    public static void chang(int a,int b){
        System.out.println("a"+a+"|"+"b"+b);//10 20
        a=b;                                //20
        b=a+b;                               //30
        System.out.println("a"+a+"|"+"b"+b);//20 40
    }
}

2,图解
在这里插入图片描述
3,java 方法参数的引用传递 那么形式参数的改变会影响实际参数

package com.baidu.Demo;
public class args {
    public static void main(String[] args) {
        int[] arr={12,6,2,8,3};
        for (int i = 0; i <arr.length ; i++) {
            System.out.println(arr[i]);
        }
        chang(arr);
        for (int i = 0; i <arr.length ; i++) {
            System.out.println(arr[i]);
        }
    }
    public static void chang(int[] arr){
        for (int i = 0; i <arr.length ; i++) {
            if(arr[i]%2==0)
                arr[i]=-1;
        }
    }
}

4,图解
在这里插入图片描述

注意点

形式参数 用于接收实际参数的变量
实际参数 实际参与运算的变量
在java中重载与重写的区别
重载(Overload)
重写(Override)---面向对象

猜你喜欢

转载自blog.csdn.net/qq_45893999/article/details/106656793