java中方法的使用

一.方法是什么

1.方法的定义

方法是就是一段具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,可供重复调用。

2.方法的位置

类里面,别的方法外面。

二.无参的方法

1.无参的方法的基本格式
public static void 方法名(){
   方法体;
}    
2.无参的方法的调用
 方法名();
3.代码示列

判断奇偶数

public static void main(String[] args) {
    isEvenNumber();//调用同类中的方法
}
public static void isEvenNumber(){
    int number = 10;
    if (number%2==0){
        System.out.println("偶数");
    }else {
        System.out.println("奇数");
    }
}

运行结果

   偶数

三.带参的方法

1.带参的方法的基本格式
public static void 方法名(数据类型 变量名,数据类型 变量名){
   方法体;
}
2.带参的方法的调用
方法名(参数);
3.代码示列

获取两个数中谁更大的方法

public static void main(String[] args) {
    int a = 10;
    int b = 8;
    getMax(a, b); //a,b是实参
    getMax(15, 20); //15,20是实参
}
//获取最大值的方法
public static void getMax(int a1, int a2) {  //a1,a2是形参
    if (a1 >= a2) {
        System.out.println(a1);
    } else {
        System.out.println(a2);
    }
    return; //可省略
}

运行结果

10
20

知识点补充:

  • void是无返回值的关键字,表示可以无返回值,可以省略return,也可以单独书写return,后面不加数据。
  • 基于数据类型的参数,形式参数的改变,不影响实际参数的值。
    形参:方法定义中的参数
    实参:方法调用中的参数

四.带返回值的方法

1.带返回值的方法的基本格式
public static 数据类型 方法名(参数){
   方法体;
   return 数据;
}

知识点补充:

  • return:结束方法,返回对应参数
  • 返回值类型需要和方法发定义数据类型相同
2.带返回值的方法调用
数据类型 变量名=方法名(参数);
3.代码示列

判断是否是偶数

public static void main(String[] args) {
    boolean flag=isEvenNumber(10);
    System.out.println(flag);
}
public static boolean isEvenNumber(int a){
    if (a%2==0){
        return true;
    }else {
        return false;
    }
}

运行结果

 true

五.方法的调用

1.代码示列

分别对有返回值和无返回值的方法进行单独调用,赋值调用,打印调用

public static void main(String[] args) {
    //单独调用(多用于无返回值的方法。对于有返回值类型的,接收不到。)
    jsq(10,20);
    method();
    //赋值调用(只能使用于有返回值的方法)
   int c=jsq(12,13);
    System.out.println(c);
    //打印调用(只能使用于有返回值的方法)
    System.out.println(jsq(11,14));
}
//无返回值方法
public static void method(){
    System.out.println(1);
}
//有返回值方法
public static int jsq(int a,int b){
    int sum=a+b;
    return sum;
}

运行结果

 1
25
25

六.方法的重载

1.方法的重载判定条件

  • 多个方法在一个类里面
  • 多个方法名相同
  • 多个方法的参数列表不同,参数个数或者类型或者顺序不同
  • 注意
    重载与返回值无关,在调用的时候,java虚拟机通过参数的不同来区分调用哪个方法。
2.代码示列

案例一:参数不同的重载

 public static void main(String[] args) {
    System.out.println(sum(1, 2));
    System.out.println(sum(1.2, 1.8));
    System.out.println(sum(1, 2, 3));
}

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(double a, double b) {
    return a + b;
}
//参数类型不同
public static int sum(int a, double b) {
    return 1;
}
//类型顺序不同
public static int sum(double a, int b) {
    return 1;
}

运行结果

3
3.0
6

案例二:参数类型不同的方法重载

public static void main(String[] args) {
    System.out.println(compare(10,20));
    System.out.println(compare((byte) 10,(byte) 20));
    System.out.println(compare((short) 10,(short) 20));
    System.out.println(compare(10L,20L));
}

public static boolean compare(int a, int b) {
    System.out.println("int");
    return a==b;
}
public static boolean compare(byte a, byte b) {
    System.out.println("byte");
    return a==b;
}
public static boolean compare(short a, short b) {
    System.out.println("short");
    return a==b;
}
public static boolean compare(long a, long b) {
    System.out.println("long");
    return a==b;
}

运行结果

int
false
byte
false
short
false
long
false

七.方法参数传递(引用数据类型)

1.代码示列

案例一:基本数据类型的参数

public static void main(String[] args) {
    int num=100;
    System.out.println("调用之前:"+num);
    chang(num);
    System.out.println("调用之后:"+num);

}
public static void chang(int num){
    num=200;
}

运行结果

调用之前:100
调用之后:100

知识点补充

  • 基于基本数据类型的参数,形式参数的改变,不影响实际参数的值。
  • 形参:方法定义中的参数
    实参:方法调用中的参数

案例二:引用类型的参数

public static void main(String[] args) {
    int[] arr={1,2,3};
    System.out.println("调用前:"+arr[1]);
    change(arr); //这里传递的是地址值,所以找到的是同一个空间,所以会被影响改变
    System.out.println("调用后:"+arr[1]);
}
public static void change(int[] hh){
    hh[1]=20;
}

运行结果

调用前:2
调用后:20

知识点补充

  • 对于引用类型的参数,形式参数改变,会影响实际参数的值。

八.综合案例

1.代码示列

数组遍历和数组最大值

public static void main(String[] args) {
    int[] arr = {11, 33, 22, 44};
    int[] arr1 = {1, 3, 2, 4};
    //打印数组
    printArray(arr);
    printArray(arr1);
    //求数组最大值
    int a = getArrayMax(arr);
    int b = getArrayMax(arr1);
    System.out.println(a);
    System.out.println(b);
}

//打印数组
public static void printArray(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
    System.out.println();
}

//求数组最大值
public static int getArrayMax(int[] arr) {
    int max = arr[0];
    for (int i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}

运行结果

11 33 22 44 
1 3 2 4 
44
4
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值