java方法详解笔记,仅供参考。

一、方法的定义

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

方法体

return 返回值;

}

形参:参数为像是一个占位符,没有使用,就是给了个名字 比如add(int i)中的i

实参:实际参数,实际调用传递给他的参数

二、方法的调用

调用方法: 对象名.方法名(实参列表)

Java支持两种调用方法的方式,根据方法是否返回值来选择

  • 当方法返回一个值的时候,方法调用通常被当做一个值。例如:
 int large = max(30,40);
  • 如果方法返回值是void,方法调用一定是一条语句。
System.out.println("hello");

三、方法的重载

规则:

  • 方法名字必须相同,
  • 参数列表必须不同(个数不同、类型不同,参数排列顺序不同)

四、DOS命令行传参

public static void main(String[] args){
    for (int i = 0;i < args.length;i++){
        System.out.println("args["+i+"]:"+args[i]);
    }
}

DOS命令行内用 javac编译,然后cd…/退回到包,在包的目录下执行命令传参

F:\java\src>java com.kuangshen.method.Demo

五、可变参数

  • 在方法声明中,在指定参数类型后加一个省略号(…)
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通参数必须在它之前声明。
demo.test(...i:1,2,3);//传不确定个数的参数
public void test(int... i){//可变参数
    
}

六、递归

  • 递归就是:A方法调用A方法,自己调用自己
  • 利用递归可以用简单的程序来解决一些复杂的问题

小计算用递归,不可以太大,栈会压不住,电脑硬件受不了

递归结构包括两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
  • 递归体:什么时候需要调用自身方法
//求阶乘 5!
public static int f(int n ){
    if(n==1){
        return 1;
    }else{
        return n*f(n:n-1);
    }
    
}

作业:实现计算器

package test;

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        int s=0;
        System.out.println("请输入需要运算的两个数:");
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        int y = scanner.nextInt();
        System.out.println("请输入要进行的运算(+、-、*、/)");
        String symbol = scanner.next();
        switch (symbol) {
            case "+": System.out.println(x+"+"+y+"="+calculator.add(x,y));break;
            case "-": System.out.println(x+"-"+y+"="+calculator.minus(x,y));break;
            case "*": System.out.println(x+"*"+y+"="+calculator.multiply(x,y));break;
            case "/": System.out.println(x+"/"+y+"="+calculator.division(x,y));break;
            default:
                System.out.println("请输入正确的符号:");
        }

        scanner.close();

    }
    public  int  add(int x,int y){
        return x+y;
    }
    public  int  minus(int x,int y){
        return x-y;
    }
    public  int  multiply(int x,int y){
        return x*y;
    }
    public  int  division(int x,int y){
        return x/y;
   }

}


运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbMvCdai-1614677213503)(C:\Users\samsung\AppData\Roaming\Typora\typora-user-images\image-20210302171654842.png)]

需要解决的问题:

  • 当输入的符号不是±*/中的一个时提示后程序就结束了,后期如何解决退回到输入进行运算的那一行。
  • 整个程序只能运行一次,不能重复输入计算。
  • 如何直接让用户输入2*3也能得到结果(设计过程中不知道如何获取符号,所以拆开了)
  • 学到一定知识后可以做一个良好的用户交互页面,类似于手机上的计算器。

----仅供参考

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个大萝北

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值