ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java方法

2021-03-04 15:34:42  阅读:145  来源: 互联网

标签:java int max System double 方法 public out


1. 什么是方法

  • 方法是语句的集合,完成一类的功能,解决某一类问题。

  • 方法包含在类或对象中。

  • 追求原子性和模块化

  • 就像是我们c\c++中的函数

2. 方法的定义和调用

  • 仍旧是含有形参(定义时候)、实参(就是我们调用是赋的值)
  • 修饰符不分先后
修饰符 返回值类型 方法名(参数类型 参数名) {
	---
	方法体
	---
	return 返回值;  // void 就不需要
}

java中只有值传递

3. 方法重载

  • 和c ++中函数重载类似

  • 重载就是在一个类中,有相同的函数名称,但是形参不同的函数

  • 重载的规则

    • 方法名称不同
    • 形参列表必须不同(个数不同or类型不同or参数排列顺序等等).
    • 返回类型可以相同,也可以不同;
    • 仅仅返回类型不同算不上是方法的重载。
  • 底层实现是,编译器会根据调用方法实参的个数、参数的类型进行逐个匹配,已选择对应的重载的方法,若匹配失败,编译器就会报错。

package com.luckylight.package4;

public class demo1 {
    public static void main(String[] args) {
        System.out.println(max(1, 2));	// int max
        System.out.println(max(10, 1.0));	// double max
        System.out.println(max(1.2, 3.3));	// double max
    }
    public static int max(int a, int b) {
        System.out.println("int max");
        return a >= b ? a : b;
    }
    public static double max(double a, double b) {
        System.out.println("double max");
        return a >= b ? a : b;
    }
}

4. 命令行传参

  • 首先是找到 java 文件的路径(在package 下面),进入cmd
  • javac 该文件
  • 再cd命令回退 src 目录下,进行java 该class 文件
  • java 文件名 参数

文件示例如下所示(对main函数进行传参)

package com.luckylight.package4;

public class Demo2 {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i ++ ) {
            System.out.printf("args[%d]=%s\n", i, args[i]);
        }
    }
}

5. 可变参数

  • 本质就是数组的运用
  • 使用说明:
    • 在方法声明中,在指定参数类型后加一个省略号(...)
    • 一个方法只能指定一个可变参数,同时他必须是方法的最后一个参数。任何普通的参数必须在他之前声明。
    • 而且注意传递的参数对应可变参数的类型
package com.luckylight.method;

public class Demo1 {
    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        demo1.getMax(-110, 200, -15154, 9565, 15223);
        demo1.getMax(new double[]{1, 2, 3, 4, 4, 3929834, -123});   // 注意这个 new double[]
    }
    public void getMax(double... num) {
        if (num.length == 0) {
            System.out.println("There is no element");
        } else {
            double ret = num[0];
            for (int i = 1; i < num.length; i ++ ) {
                if (ret < num[i]) {
                    ret = num[i];
                }
            }
            System.out.println("The max num of the array is:" + ret);
        }
    }
}

6. 递归

  • 注意递归头,递归终点
  • 递归体,递归主体

先写一个简单的作业,实现加减乘除的计算器,并且可以循环接收新的数据,通过用户的交互实现。

package com.luckylight.method;

import java.util.Scanner;

public class Demo2 {
    static double a, b;
    static int opt;
    public static void main(String[] args) {
        Scanner scanner = new Scanner();
        String str = "";
        while (true) {
            if (scanner.hasNextLine())
                str = scanner.nextLine();
            int judge = dealInput(str);
            double res = 0;
            if (judge == -1) {      // 结束标志
                break;
            } else if (judge == 0) {    // 输入错误
                System.out.println("输入错误,请重新输入");
            } else {
                switch (opt) {
                    case 0:
                        res = a + b; break;
                    case 1:
                        res = a - b;    break;
                    case 2:
                        res = a * b;    break;
                    case 3:
                        res = a / b;    break;
                }
            }
            System.out.println(str + "=" + res);
        }
    }
    public static int dealInput(String str) {
        if (str.equals("-1")) {
            return -1;
        }
        int cnt_opt = 0;
        // 下面就需要要找到操作数,以及操作对象了,但是 str[i] 居然不行,先鸽了。
        /*for (int i = 0; i < str.length(); i ++ ) {
            if (str[i] >= '0' && str[i] <= '9')
                continue;

        }*/
    }
}	

标签:java,int,max,System,double,方法,public,out
来源: https://www.cnblogs.com/lucky-light/p/14480553.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有