众所周知,组成C语言的基本单位是函数,组成Java的基本单位是类,所谓的类可以简单初略的的理解为对象,也可以看作是C语言的结构体。

Java的方法和C语言的函数在构造上有着相似的特点,例如都需要形参和实参之间进行参数的传递。但我们知道C语言的形参可以有0个和无数个,C语言的每一个形参都要对其进行一个声明。而这点在Java中不需要,Java中方法的形参并不需要每一个都写出来,它引入了一个叫可变参数列表的概念。可以试想一下,有时我们在书写Java方法的时候我们事先并不知道有多少个实参要传递,但是我们知道有多少种类型的实参要传递,因此我们在书写Java方法的时候我们可以使用可变参数的方式来对形参进行声明:public String printString(String ...ten)

下面我们通过代码书写同一个方法来对比C语言和Java的不同之处,从而进行体会可变参数列表的奥义:

C语言写一个计算长方体体积的函数:

#include<stdio.h>
//长方体体积函数
int Volume(int a,int b,int c){int volume = a*b*c;return(volume);
}int main(){int a,b,c;printf("请输入长方体的长:\n");scanf("%d",&a);printf("请输入长方体的宽:\n");scanf("%d",&b);printf("请输入长方体的高:\n");scanf("%d",&c);printf("这个长方体的体积是:%d",Volume(a,b,c));return 0;
}

结果:

 Java写一个计算长方体体积的方法:

public class calculateVolume {public static void main(String[] args){Volumes volume1 = new Volumes();volume1.setNum(20,10,5);int volume = volume1.calculate(volume1.getNum());System.out.println("这个长方体的体积是:"+volume);}
}
class Volumes{private int[] num;//这里我们写的setNum方法就采用了可变参数列表,// 可以在上面看到我们实例化后赋初值的时候是一下子传递了3个值,实际上可以更多或更少,// 他的数量不是固定的public void setNum(int... num) {this.num = num;}public int[] getNum() {return num;}//定义一个计算体积的方法,它的参数是一个数组public int calculate(int[] nums){//给变量volume赋初值为1,绝对不能赋初值为0,因为任何乘以0都得0int volume = 1;//因为是一个数组,我们就用Java提供的更为简洁的循环方式foreach循环来获取该数组的每个元素值for(int n : nums){volume = volume * n;}return volume;}
}

结果:

Java可变参数(C语言对比向)相关推荐

  1. java 可变参数方法_Java方法中的参数太多,第7部分:可变状态

    java 可变参数方法 在我的系列文章的第七篇中,有关解决Java方法或构造函数中过多参数的问题 ,我着眼于使用状态来减少传递参数的需要. 我等到本系列的第七篇文章来解决这个问题的原因之一是,它是我最 ...

  2. Java可变参数以及一个简单应用

    一.背景 写代码的时候接触到了Java可变参数,顺便断点调试观察了一下表现,有个别地方确实有些意外. 虽然用起来不难,但是趁机想彻底了解这个语言特性,在此总结一下. 二.可变参数介绍 2.1 定义   ...

  3. java无限循环可变参数,Java可变参数、加强for循环

    Java可变参数.增强for循环 一.Javad静态导入:导入简化书写并不占用资源 import语句可以导入一个一个类或者某个包中所有的类 import static导入一个类中所有的静态方法,导入后 ...

  4. Java可变参数 Python可变参数 Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

  5. java 可变参数列表 数组_java可变参数列表如何填充数组?

    在对于数组的填充上,我们可以运行参数的传递,把数组作为可变参数的列表进行调整.对于一些参数个数和类型未知的时候,这种方法就能帮助我们解决填充数组的难题,因为这种方法并不需要提前知道.下面我们就可变参数 ...

  6. java 可变参数列表_java中可变参数列表的实现方法

    我们在对可变参数有一定的认识后,可以引申一下它的使用范围.在数组中也会需要参数的传入,那么结合参数的数量不固定,我们在参数类型上也得到了增加,这就是本篇所要讲的可变参数列表.下面我们就java可变参数 ...

  7. Java可变参数类型实例

    可变参数:         Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 可变的参数类型,也称为不定参数类型.英文缩写是varargus ...

  8. java 可变参数方法不支持多个可变参数以及多种类型的替代方法

    记录了 java 可变参数方法不支持多个可变参数以及多种类型的替代方法. java 可变参数方法的实现 关于 java 可变参数方法的实现,阅读了一下两篇博客: java中可变参数方法:http:// ...

  9. Java 可变参数基本使用

    文章目录 Java可变参数 可变参数简介 可变参数的基本使用 Java可变参数 可变参数简介 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了,方法的参数类型已经确定,个数不 ...

  10. JAVA可变参数的使用(数据类型... 参数名称)

    JAVA可变参数的使用(数据类型- 参数名称) 需求 假设需要定义一个方法求和,该方法需要灵活的完成如下需求: 1.计算2个数据的和. 2.计算3个数据的和. 3.计算n个数据的和. 或者可以支持不接 ...

最新文章

  1. 机器视觉+常识+概念
  2. OpenGL deferred shading延迟渲染的实例
  3. python 面试题2
  4. SpringBoot 2.1.5(36)---整合Mybatis
  5. 【网络安全工程师面试合集】——网络安全基础知识大总结
  6. ae 创建图像等高线 蒙版_UI设计教程:几步教你如何创建一个漂亮又好吃的饼干...
  7. java解析json的一种方法
  8. feignclient注解使用_Spring Cloud Nacos的使用
  9. 神经网络常用激活函数总结
  10. oki5530sc打印错误_OKI5530sc调整方法
  11. zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
  12. html无法显示echarts地图,pyecharts 地图不显示问题
  13. 最实用的上网网址一览表
  14. linux 如何停止mysql,linux下如何启动/停止/重启mysql:
  15. Python爬取第一电影天堂最新电影(5000多部)代码实例(一)
  16. 【TencentOS tiny学习】源码分析(6)——互斥锁
  17. 通信天线建模与MATLAB仿真分析,通信天线建模与MATLAB仿真分析代码
  18. 美国大学计算机工程专业TOP10
  19. 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案
  20. 无线传感器网络节点连通率

热门文章

  1. 【附源码】计算机毕业设计SSM木棉堂水果电商平台
  2. 战略游戏(树形dp)
  3. LeetCode每日一题——12.11Dota2 参议院
  4. Dota2 参议院java
  5. Tomb.finance每周更新(11.15-21)
  6. ARM板上的华容道小游戏
  7. 我的机器人害我输了钱,我能告他吗?
  8. 圆弧中点坐标值求解(二维平面三维空间)(3.1增加三维部分)-①
  9. Echarts绘制多层树图
  10. 向量机SVM原理详解