Java方法

1. 何为方法

1. 定义

一些语句的集合,执行某一功能

2. 细节

  1. 方法只完成一个功能,方便后期拓展
  2. 命名原则:首单词小写+驼峰原则(fristRun())
public class Demo01 {

    public static void main(String[] args) {
        //对象
        Demo01 demo01 = new Demo01();
        //调用方法
        int m = demo01.max(20,20);
        System.out.println(m);

    }
    //大小方法
    public  int max(int num1,int num2){
        int r=0;
        if(num1==num2){
            System.out.println("两者相等");
            return 0;
        }else {
          r= num1>num2?num1:num2;
            return  r;
        }

    }
}

2. 方法的定义以及调用

1. 方法如何定义

  1. 修饰符:定义了方法的访问类型,如何调用

  2. 返回类型:有数据类型则 return 类型 没有则void,返回语句。

  3. 方法名:就名字

  4. 参数类型:占位符一样的功能,都是形参

  5. 方法体:定义了改方法的功能

    /*修饰访问类型时公有 
    *返回类型是int
    *方法名为max
    *参数类型,形参列表int a,b
    *方法体,返回int类型数据
    */
    public int max(int a,int b){
         return a+b;//不可三目运算
     }
    

2. 方法的调用

1. 类方法调用

public class Demo01 {
    public static void main(String[] args) {  
        int m = max(20,20);//调用*
        System.out.println(m);
    }
    //大小方法 static声明类方法,直接用
    public  static int max(int num1,int num2){
              return 0;
        }
    }
}

2. 一般方法调用

public class Demo01 {
public static void main(String[] args) {
    //调用*
        Demo01 demo01 = new Demo01();
        int m = demo01.max(20,20);
        System.out.println(m);

    }
public int max(int num1,int num2){
              return 0;
        }   
}

3. 方法的重载

1. 定义

重载就是一个类中,有相同方法名但形参不同的方法。

2. 细节

  1. 方法名一定是一样
  2. 参数列表必须不同(个数,类型,排列顺序等)
public class Demo01 {
    public static void main(String[] args) {
        //方法重载的体现,编译器会根据不用参数列表调用具体的某个方法
        int m = max(20,20);
        int n= max(10,20,30);
        System.out.println(m);
        System.out.println(n);
    }
    //max方法的重载
    public  static int max(int num1,int num2){
              return 0;
        }
    public  static int max(int num1,int num2,int num 3){
              return 0;
        }    
    }
}

4. 命令行的传参

1.定义

有时候你希望运行一个程序的时候再给它传递参数,这时就要靠命令行中的参数给main()方法传参实现。

  1. 代码段如下
public class Demo01 {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("args["+i+"]"+args[i]);
        }

    }
}
  1. show in explorer打开文件所位置cmd一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BgkC2KrX-1604275771978)(D:\学习资料\学习资料@@@@正在学@@@@@\JAVA学习\picture\8.png)]

  1. javac .java文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIkOnVVg-1604275771982)(D:\学习资料\学习资料@@@@正在学@@@@@\JAVA学习\picture\9.jpg)]

  1. 再src目录下 java .class文件 参数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcMfBP3b-1604275771984)(D:\学习资料\学习资料@@@@正在学@@@@@\JAVA学习\picture\10.jpg)]

5. 可变参数

1. 定义

不限制传递参数的数量,它是可变的

2. 细节

  1. jdk1.5新增
  2. 一个方法只有一个可变参数且必须放于参数列表的最后。

3. 示例

/*
有时候需要变化的参数列表是不可定时,用方法重载就会过于繁琐,既可以使用可变参数。

*/
public class Demo01 {
    public static void main(String[] args) {
        //实参包括:"字符串",一系列实参(本质是new出来的一个数组)
        printMax("你输入的最大值为:",32.0,40,5,69,82,88);
        printMax("你输入的最大值为:",new double[]{55,60,85,55});
    }
    //排序方法
    //参数列表包括:字符串+一个double类型的可变参数
    public static void printMax(String str,double... a){
        if(a.length==0){
            System.out.println("请输入一定量的数");
            return;
        }
        double result = a[0];
        for (int i = 1; i < a.length; i++) {
        if(a[i]>result){
            result = a[i];
        }
        }
        //输入str,由于str是字符串,所以“+”为字符连接符
        System.out.println(str+result);
    }
}
----------------------------------------------------------------------
你输入的最大值为:88.0
你输入的最大值为:85.0
    

6. 递归

7. 方法的练习

1.简易计算器

package com.liang.test;

import java.util.Scanner;
import java .util.ArrayList;

public class Calculator {
    public static void main(String[] args) {
        System.out.println("欢迎使用本计算器你需要运算几个数(1-10):");
        double date[] = new double[10];
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            //计算的个数 m
            int m = scanner.nextInt();
            if (m >= 10) {
                System.out.println("超出运算个数范围,请重新输入:");
            } else {
                for (int i = 1; i <= m; i++) {
                    System.out.println("输出入第" + i + "个数");
                    Scanner scanner1 = new Scanner(System.in);
                    date[i - 1] = scanner1.nextDouble();
                }
                System.out.println("选择加减乘除:");
                Scanner scanner2 = new Scanner(System.in);
                if (scanner2.hasNextLine()) {
                    String str = scanner2.nextLine();
                    switch (str) {
                        case "+":
                            add(m, date);
                            break;
                        case "-":
                            minus(m, date);
                            break;
                        case "*":
                            multiply(m, date);
                            break;
                        case "/":
                            divide(m, date);
                            break;
                    }
                }

            }
        }
    }

    //加方法
    public static void add(int n,double... a) {
        double sum = 0.0;
        for (int i = 0; i < n; i++) {
            sum += a[i];
        }
        System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
    }

    //减法
    public static void minus(int n,double... a) {
        double sum = a[0];
        for (int i = 1; i < n; i++) {
            sum -= a[i];
        }
        System.out.println("结果为:" + sum);
        System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
    }

    //乘法
    public static void multiply(int n,double... a) {
        double sum = 1.0;
        for (int i = 0; i < n; i++) {
            sum *= a[i];
        }
        System.out.println("结果为:" + sum);
        System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
    }

    //除法
    public static void divide(int n,double... a) {
        double sum = a[0];
        for (int i = 1; i < n; i++) {
            sum = sum / a[i];
        }
        System.out.println("结果为:" + sum);
        System.out.println("结果为:" + sum+"\n\n欢迎使用本计算器你需要运算几个数(1-10):");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值