Java方法

Posted ice-point

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java方法相关的知识,希望对你有一定的参考价值。

Java方法式语句的集合,就是一段用来完成特定功能的代码片段,类似于其它语言的函数,Java是值传递类型。

设计原则:方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法的时候,最好保持方法的原子性:就是一个方法只完成一个功能,这样有利于后期扩展。

格式:

[修饰符1  修饰符2  …]   返回值类型    方法名(形式参数列表){
	Java语句;… … …
}

代码讲解:

public class Demo01 {
    /**main方法:程序的入口*/
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 20;
        //调用求和的方法:将num1与num2的值传给add方法中的n1与n2
        // 求完和后将结果返回,用sum接收结果
        int sum = add(num1, num2);
        System.out.println("sum = " + sum);//输出:sum = 30
        //调用打印的方法:该方法没有返回值
        print();
    }
    /** 求和的方法 */
    public static int add(int n1, int n2) {
        int sum = n1 + n2;
        return sum;//使用return返回计算的结果
    }
    /** 打印的方法 */
    public static void print() {
        System.out.println("方法的学习....");
    }
}

方法的重载

方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。

方法重载的规则:

  • 方法名必须相同;

  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等);

  • 方法的返回类型可以相同也可以不相同;

  • 仅仅返回类型不同不构成方法重载

代码详解:

public class 方法重载demo {
    public static void main(String[] args) {
        System.out.println(add(3,5));
        System.out.println(add(3,5,10));
        System.out.println(add(3.0,5));
        System.out.println(add(3,5.0));
    }
    /** 求和的方法 */
    public static int add(int n1,int n2){
        int sum =n1+n2;
        return sum;
    }
    // 方法名相同,参数个数不同,构成重载
    public static int add(int n1, int n2, int n3) {
        int sum = n1 + n2 + n3;
        return sum;
    }
    // 方法名相同,参数类型不同,构成重载
    public static double add(double n1, int n2) {
        double sum = n1 + n2;
        return sum;
    }
    // 方法名相同,参数顺序不同,构成重载
    public static double add(int n1, double n2) {
        double sum = n1 + n2;
        return sum;
    }
//   //编译错误:只有返回值不同,不构成方法的重载
//    public static double add(int n1, int n2) {
//        double sum = n1 + n2;
//        return sum;
//    }
//    //编译错误:只有参数名称不同,不构成方法的重载
//    public static int add(int n2, int n1) {
//        double sum = n1 + n2;
//        return sum;
//    }
}

命令行传参

在运行程序时候想把数据传递到程序中时,可以靠传递命令行参数给main()方法。

代码:

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

使用cmd命令行运行
技术图片

方法中的可变参数

Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号。

注意:一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,如何普通参数必须在它之前声明。

举例代码:

public class 可变参数 {
    public static void main(String[] args) {
        printMax(34,33,45,65,99,10,2);//可以传递参数
        printMax(new int[]{1,4,5,6,9});//也可以传递数组
    }
    //定义一个可变参数方法
    public static void printMax(int...num){
        if (num.length ==0){
            System.out.println("没有输入数字");
            return;
        }
        int result = num[0];
        for (int i= 1;i<num.length;i++){
            if (num[i]>result){
                result=num[i];
            }
        }
        System.out.println("最大值为"+result);
    }
}

递归

递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。

递归结构包括两个部分:

  1. 递归头。如果没有头,将陷入死循环,也就是递归的结束条件。

  2. 递归体。调用自身方法。

递归的缺陷

  • 递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存。

简单的递归代码:

public class 递归 {
    public static void main(String[] args) {
        System.out.println(f(4));
    }
    public static int f(int n){
        if (n==1){
            return 1;
        }else{
            return (n*f(n-1));
        }
    }
}

以上是关于Java方法的主要内容,如果未能解决你的问题,请参考以下文章

22.java方法的定义

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java语言基础之方法的设计

Java初识方法

Android Java:在 onCreateView() 中返回空视图的片段

jsp页面被tomcat引擎运行的时候组装成java片段,但是这些java片段怎么没有main方法作为程序的入口啊?