手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

java参数一网打尽

时间:2021/6/12 5:11:03|来源:|点击: 次

参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
形式参数:在方法被调用时用于接收外界输入的数据
实参:调用方法是实际传给方法的数据
参数列表:当你在编写一个函数时,你不知道函数形参的类型或者是形参的长度时,你就可以使用参数列表来代替。

public void f(Object...objects) {
         System.out.println("Object");
         System.out.println(objects.length);
     }

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

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

public class VarargsDemo {
    public static void main(String args[]) {
        // 调用可变参数的方法
        printMax(34, 3, 3, 2, 56.5);
        printMax(new double[]{1, 2, 3});
    }
 
    public static void printMax( double... numbers) {
        if (numbers.length == 0) {
            System.out.println("No argument passed");
            return;
        }
 
        double result = numbers[0];
 
        for (int i = 1; i <  numbers.length; i++){
            if (numbers[i] >  result) {
                result = numbers[i];
            }
        }
        System.out.println("The max value is " + result);
    }
}
以上实例编译运行结果如下:
The max value is 56.5
The max value is 3.0

什么是类型参数
类型参数就是参数的类型,它接受类作为实际的值
把类型参数化,也就是我们常说的类型参数,可参考泛型
平时我们接触的普通方法的参数,比如public void fun(String s);参数的类型是String,是固定的

现在泛型的作用就是再将String定义为可变的参数,即定义一个类型参数T,比如public static void fun(T t);这时参数的类型就是T的类型,是不固定的

从上面的String和T来看,泛型有着浓浓的多态的味道,但实际上泛型跟多态还是有区别的

从本质上来讲,多态是Java中的一个特性,一个概念,泛型是真实存在的一种类型;

白话一点来说,就是你可以把类型参数看作形参,把实际传入的类看作实参

比如:ArrayList<E>中的类型参数E看做形参, ArrayList<String>中的类String看做实参

如果你学过工厂设计模式,那么就可以把这里的ArrayList<E>看做一个工厂类,然后你需要什么类型的ArrayList,就传入对应的类型参数即可

比如,传入Integer则为ArrayList<Integer>
比如,传入String则为ArrayList<String>

Copyright © 2002-2019 某某自媒体运营 版权所有