Java可变个数形参的方法实例代码

目录
  • 前言
  • 演示
    • 优先级
    • 多个参数传参情况
  • 总结
  • 简单测试代码

前言

小小知识,不值一提,了解了也不能让你提高身价,但是不了解你就是比别人少知道点!事儿就是这么个事儿,直接正题吧! 直接看代码

演示

优先级

当方法1无参和方法2有参存在时,执行上面的main方法调用并观看结果:

当只有可变参数方法存在时,再重新执行看看

多个参数传参情况

一是多个参数逗号隔开传参

二是直接可以传数组

总结

①调用的时候参数可不传或传多个

②如果有无参或者有可数个参数的重载方法存在时,调用同名方法时,可变参数方法的优先级靠后,没有其他重载方法,则自动调用可变参数方法

③与形参类型相同的数组直接不能构成重载,可以认为,可变参数代替了数组参数

④在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参

另外:

简单测试代码

package com.liu.susu.other;

/**
 * 可变形参方法
 *   注意:①调用的时候参数可不传或传多个
 *        ②如果有无参或者有可数个参数的重载方法存在时,调用同名方法时,可变参数方法的优先级靠后,
 *          没有其他重载方法,则自动调用可变参数方法
 *        ③与形参类型相同的数组直接不能构成重载,可以认为,可变参数代替了数组参数
 *        ④在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参
 */
public class Test {
    public static void main(String[] args) {
        Test t = new Test();
//        t.playGames();
//        t.playGames("麦兜");
        t.playGames("麦兜","贝塔","酥妮");
        t.playGames(new String[]{"点点","阿苔"});
    }
    //1.无参方法
    public void playGames(){
        System.out.println("playGames()");
    }
    //2.有一个参数方法
    public void playGames(String name){
        System.out.println(name+"-->playGames(String name)");
    }
    //3.可变形参方法
    public void playGames(String ... name){
        System.out.println("playGames(String ... name)");
        for (int i = 0; i < name.length; i++) {
            System.out.println(name[i]+"--->加入游戏……");
        }
    }
    /**
     * 4.--|在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参
     *   --|可变形参参数的类型不要与前面类型一致,比如下面的dogNum的类型尽量不要用String,
     *     --|①是意义不大,②是在调用时与上面第3方法冲突,不知道调的哪个
     */
    public void playGames(int dogNum,String ... name){
        System.out.println("playGames(String dogNum,String ... name)");
    }
//    public void playGames(String[] name){
//
//    }
}

到此这篇关于Java可变个数形参的文章就介绍到这了,更多相关Java可变个数形参内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java 的可变参数方法详述

    目录 一.可变参数方法的定义 二.可变参数方法的调用 三.可变参数方法的重载 四.Object可变参数 一.可变参数方法的定义 首先看下可变参数方法在代码上是如何定义的,如下所示: public static void method1(Integer id, String... names) {       System.out.println("id:" + id + " names:" + names.length); } 通过上面的示例,我们可以看出在定义方法

  • Java 方法的重载与参数传递详解

    目录 方法重载概述 方法重载特特点 方法重载练习 方法参数传递 方法参数传递(基本类型) 方法参数传递(引用类型) 方法重载概述 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载 * 多个方法在同一个类中 * 多个放方法具有相同方法名 * 多个方法的参数不相同,类型不同或数量不同 方法重载特特点 * 重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式 * 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否

  • java 方法与数组基础使用详解

    目录 一.方法的使用 1.方法的定义 2.方法重载 二.数组的定义和使用 1.数组的基本概念 (1)数组的创建 (2)数组的初始化 (3)数组的遍历 2.数组是引用类型(JVM的内存分布) 3.引用变量 4.数组拷贝函数 5.二维数组的for.each遍历 一.方法的使用 1.方法的定义 java中的方法就相当于C语言中的函数 方法的语法格式 //方法的定义 修饰符  返回值类型  方法的名称([参数类型 参数]){ 方法体代码: [return 返回值]: } [注意事项] 修饰符:现阶段直接

  • Java 方法的定义与调用详解

    目录 1.方法概述 2.方法的定义和调用 2.1 方法定义 2.2 方法调用 2.3 方法的调用过程 2.4 方法练习 3.带参数方法的定义和调用 3.1带参数方法定义 3.2带参数方法调用 1.方法概述 什么是方法 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有图书功能的代码集 注意: 方法必须先创建才可以使用,该过程称为方法定义 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用 2.方法的定义和调用 2.1 方法定义 格式: public stat

  • Java可变个数形参的方法实例代码

    目录 前言 演示 优先级 多个参数传参情况 总结 简单测试代码 前言 小小知识,不值一提,了解了也不能让你提高身价,但是不了解你就是比别人少知道点!事儿就是这么个事儿,直接正题吧! 直接看代码 演示 优先级 当方法1无参和方法2有参存在时,执行上面的main方法调用并观看结果: 当只有可变参数方法存在时,再重新执行看看 多个参数传参情况 一是多个参数逗号隔开传参 二是直接可以传数组 总结 ①调用的时候参数可不传或传多个 ②如果有无参或者有可数个参数的重载方法存在时,调用同名方法时,可变参数方法的

  • java中的 toString()方法实例代码

    前言: toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据. 最近项目中需要对一个ArrayList<ArrayList<Integer>> datas  形式的集合处理. 处理要求把集合数据转换成字符串形式,格式为 :子集合1数据+"#"+子集合2数据+"#"+....+子集合n数据. 举例: 集合数据 :[[1,2,3],[2,3,5]]  要求转成为 "[1,2,3]#[2,3,5]"

  • Java类和成员上的一些方法实例代码

    isInstance和isAssignableFrom obj instanceof Class 判断obj是不是Class或者Class的子类的实例 clazz.isInstance(obj) 判断obj能不能强制转换成clazz类型,亦即obj是不是clazz或者clazz的子类的实例 clazz1.isAssignableFrom(clazz2) 如果clazz2和clazz1相同,或者clazz1是clazz2的父类则返回True,否则返回Flase static class Paren

  • Java多线程join方法实例代码

    本文研究的主要是Java多线程中join方法的使用问题,以下文为具体实例. Thread的非静态方法join()让一个线程B"加入"到另外一个线程A的尾部.在A执行完毕之前,B不能工作.例如: Thread t = new MyThread(); t.start(); t.join(); 另外,join()方法还有带超时限制的重载版本. 例如t.join(5000);则让线程等待5000毫秒,如果超过这个时间,则停止等待,变为可运行状态. 线程的加入join()对线程栈导致的结果是线程

  • Java中覆盖finalize()方法实例代码

    本文研究的主要是Java中关于覆盖finalize()方法的一次尝试,具体实现如下. 测试代码 package com.alioo.gc; /** * 执行结果: * */ public class FinalizeEscapeGC{ public static FinalizeEscapeGC instance=null; public void isAlive(){ System.out.println("yes,i am still alive"); } @Override pr

  • java多线程之停止线程的方法实例代码详解

    和线程停止相关的三个方法 /* 中断线程.如果线程被wait(),join(),sleep()等方法阻塞,调用interrupt()会清除线程中断状态,并收到InterruptedException异常.另外interrupt();对于isAlive()返回false的线程不起作用. */ public void interrupt(); /* 静态方法,判断线程中断状态,并且会清除线程的中断状态.所以连续多次调用该方法,第二次之后必定返回false.另外,isAlive()用于判断线程是否处于

  • Java正则表达式提取字符的方法实例

    正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成.项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 实现方法: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s

  • Java Web 简单的分页显示实例代码

    本文通过两个方法:(1)计算总的页数. (2)查询指定页数据,实现简单的分页效果. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 先给大家展示下效果图: 题外话:该分页显示是用 "表示层-控制层-DAO层-数据库"的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步.废话不多说了,开始进入主题,详细步骤如下所示: 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据

  • Java中自定义异常详解及实例代码

    Java中自定义异常详解及实例代码 下面做了归纳总结,欢迎批评指正 自定义异常 class ChushulingException extends Exception { public ChushulingException(String msg) { super(msg); } } class ChushufuException extends Exception { public ChushufuException(String msg) { super(msg); } } 自定义异常 En

  • JAVA基础之控制台输入输出的实例代码

    ---恢复内容开始--- 输入需要用scanner机制 代码: 启用scanner机制 Scanner input = new Scanner(System.in); //String x= input.next(); //String x = input.nextLine(); //int num = input.nextInt(); //double num = input.nextDouble(); 输出用需要用System的out方法 代码: System.out.println();

随机推荐