JAVA基础——JAVA方法(附示例代码)

JAVA方法

概念

1.方法是解决一类问题的有序步骤组合
2.方法包含于类或对象
3.方法在程序中被创建,在其他地方被调用
方法设计原则
保持方法的原子性,即一个方法只完成一个功能,这样有利于后期扩展
方法的命名原则
首字母小写+驼峰原则

JAVA是值传递:值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

补充:引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。


方法定义

    /*
    修饰符 返回值类型 方法名(参数类型 参数名){
    方法体
    return 返回值
    }
     */
   //retrun可以终止方法

1.修饰符:可选,例如public等,告诉编译器如何调用该方法,定义了该方法的访问类型
2.返回值类型:returnValueType,如果方法没有返回值,这里使用void
3.方法名:注意命名规范,方法名和参数表共同构成方法签名
4.参数类型:当方法被调用时,传递值给参数(方法可以不包含参数)

  • 形式参数:在方法被调用时用于接收外界输入的数据

  • 实参:调用方法时实际传给方法的数据

  • 参数列表:方法的参数类型、顺序、参数个数

5.方法体:方法包含的具体语句,定义该方法的功能


方法调用

//对象名.方法名(实参列表)

JAVA支持两种调用方法,根据是否具有返回值来进行选择
方法一
方法返回一个值,方法调用通常被当作一个值,例如

int larger = max(30,40);

方法二
方法返回值为void,方法调用一定是一条语句,例如

System.out.println("hello");

可变参数

    /*
    public void sum(int... i)//参数类型后面加...表示可变参数
     */

注意
1.一个方法中只能有一个可变参数
2.可变参数必须放在最后定义
3.可变参数必须是同类型的


递归

概念:在方法调用方法自身

    public static int test(int n){
        if(n==1){
            return 1;//递归头(边界条件)
        }else{
            return n*test(n-1);//递归体
        }

注意
1.必须要有边界条件,即不进行自身调用可以输出的条件,否则将会陷入死循环导致内存崩溃
2.递归分为两个阶段,前阶段:根据条件,不断的调用方法;返回阶段:到达边界条件后,得到返回值,逐层返回函数值
3.尽量不要使用递归的方法,当阶数较大时,容易造成内存崩溃


示例

//比大小方法
package course.lesson.methood;
import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个数字:");
        int num2 = scanner.nextInt();
        int larger = max(num1,num2);//调用max方法
        System.out.println("两个数中较大的一个为:"+larger);
    }
    //定义比较大小的方法max
    public static int max(int num1,int num2){
        int result = 0;
        if(num1>num2){
            result = num1;
        }else if(num1<num2){
            result = num2;
        }else{
            System.out.println("相等");
            return result;//使用return结束该方法
        }
        return result;
    }
}

两位计算器

package course.exercise.method;
import java.util.Scanner;
public class Calculator {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请选择计算方法:\n1、加法\n2、减法\n3、乘法\n4、除法");
        int rule = scanner.nextInt();//输入计算类型变量
        System.out.println("请选择整数或小数:\n1、整数\n2、小数");
        int type = scanner.nextInt();//输入数字类型变量
        System.out.println("请输入第一个数:");
        //根据数字类型进行选择判断
        if(type==1){
            int sum =0;
            int num1 = scanner.nextInt();
            System.out.println("请输入第二个数:");
            int num2 = scanner.nextInt();
            //根据计算类型,调用不同的方法
            switch (rule){
                case 1:
                    sum = add(num1,num2);
                    break;
                case 2:
                    sum = sub(num1,num2);
                    break;
                case 3:
                    sum = mul(num1,num2);
                    break;
                case 4:
                    sum = div(num1,num2);
                    break;
                default:{
                    System.out.println("输入有误");
            }
            System.out.println("结果为:"+sum);
        }else{
            double sum = 0;
            double num1 = scanner.nextDouble();
            System.out.println("请输入第二个数:");
            double num2 = scanner.nextDouble();
            switch (rule){
                case 1:
                    sum = add(num1,num2);
                    break;
                case 2:
                    sum = sub(num1,num2);
                    break;
                case 3:
                    sum = mul(num1,num2);
                    break;
                case 4:
                    sum = div(num1,num2);
                    break;
                default:{
                    System.out.println("输入有误");
                }
                    System.out.println("结果为:"+sum);
            }
        }
    }
    //整数加法器
    public static int add(int a,int b){
        int result = a+b;
        return result;
    }
    //小数加法器
    public static double add(double a,double b){
        double result = a+b;
        return result;
    }
    //整数减法器
    public static int sub(int a,int b){
        int result = a-b;
        return result;
    }
    //小数减法器
    public static double sub(double a,double b){
        double result = a-b;
        return result;
    }
    //整数乘法器
    public static int mul(int a,int b){
        int result = a*b;
        return result;
    }
    //小数乘法器
    public static double mul(double a,double b){
        double result = a*b;
        return result;
    }
    //整数除法器
    public static int div(int a,int b){
        int result = a/b;
        return result;
    }
    //小数除法器
    public static double div(double a,double b){
        double result = a/b;
        return result;
    }
}

可变参数

package course.lesson.method;

public class Demo05 {
    public static void main(String[] args) {
        Demo05 demo05 = new Demo05();
        int numbers[]={12,12,23,34,45};
        demo05.sum(numbers);
    }
    //可变参数
    /*
    public void sum(int... i)//参数类型后面加...表示可变参数
     */
    public void sum(int... i){
        int sum =0;
        for(int j=0;j<i.length;j++){
            sum=sum+i[j];
        }
        System.out.println("计算和为:"+sum);
    }
}

计算阶乘

//计算阶乘
package course.lesson.method;
public class Demo06 {
    public static void main(String[] args) {
        System.out.println(test(5));
    }
    public static int test(int n){
        if(n==1){
            return 1;//递归头(边界条件)
        }else{
            return n*test(n-1);//递归体
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值