Java可变参数(C语言对比向)
众所周知,组成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语言对比向)相关推荐
- java 可变参数方法_Java方法中的参数太多,第7部分:可变状态
java 可变参数方法 在我的系列文章的第七篇中,有关解决Java方法或构造函数中过多参数的问题 ,我着眼于使用状态来减少传递参数的需要. 我等到本系列的第七篇文章来解决这个问题的原因之一是,它是我最 ...
- Java可变参数以及一个简单应用
一.背景 写代码的时候接触到了Java可变参数,顺便断点调试观察了一下表现,有个别地方确实有些意外. 虽然用起来不难,但是趁机想彻底了解这个语言特性,在此总结一下. 二.可变参数介绍 2.1 定义 ...
- java无限循环可变参数,Java可变参数、加强for循环
Java可变参数.增强for循环 一.Javad静态导入:导入简化书写并不占用资源 import语句可以导入一个一个类或者某个包中所有的类 import static导入一个类中所有的静态方法,导入后 ...
- Java可变参数 Python可变参数 Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- java 可变参数列表 数组_java可变参数列表如何填充数组?
在对于数组的填充上,我们可以运行参数的传递,把数组作为可变参数的列表进行调整.对于一些参数个数和类型未知的时候,这种方法就能帮助我们解决填充数组的难题,因为这种方法并不需要提前知道.下面我们就可变参数 ...
- java 可变参数列表_java中可变参数列表的实现方法
我们在对可变参数有一定的认识后,可以引申一下它的使用范围.在数组中也会需要参数的传入,那么结合参数的数量不固定,我们在参数类型上也得到了增加,这就是本篇所要讲的可变参数列表.下面我们就java可变参数 ...
- Java可变参数类型实例
可变参数: Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 可变的参数类型,也称为不定参数类型.英文缩写是varargus ...
- java 可变参数方法不支持多个可变参数以及多种类型的替代方法
记录了 java 可变参数方法不支持多个可变参数以及多种类型的替代方法. java 可变参数方法的实现 关于 java 可变参数方法的实现,阅读了一下两篇博客: java中可变参数方法:http:// ...
- Java 可变参数基本使用
文章目录 Java可变参数 可变参数简介 可变参数的基本使用 Java可变参数 可变参数简介 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了,方法的参数类型已经确定,个数不 ...
- JAVA可变参数的使用(数据类型... 参数名称)
JAVA可变参数的使用(数据类型- 参数名称) 需求 假设需要定义一个方法求和,该方法需要灵活的完成如下需求: 1.计算2个数据的和. 2.计算3个数据的和. 3.计算n个数据的和. 或者可以支持不接 ...
最新文章
- 机器视觉+常识+概念
- OpenGL deferred shading延迟渲染的实例
- python 面试题2
- SpringBoot 2.1.5(36)---整合Mybatis
- 【网络安全工程师面试合集】——网络安全基础知识大总结
- ae 创建图像等高线 蒙版_UI设计教程:几步教你如何创建一个漂亮又好吃的饼干...
- java解析json的一种方法
- feignclient注解使用_Spring Cloud Nacos的使用
- 神经网络常用激活函数总结
- oki5530sc打印错误_OKI5530sc调整方法
- zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
- html无法显示echarts地图,pyecharts 地图不显示问题
- 最实用的上网网址一览表
- linux 如何停止mysql,linux下如何启动/停止/重启mysql:
- Python爬取第一电影天堂最新电影(5000多部)代码实例(一)
- 【TencentOS tiny学习】源码分析(6)——互斥锁
- 通信天线建模与MATLAB仿真分析,通信天线建模与MATLAB仿真分析代码
- 美国大学计算机工程专业TOP10
- 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案
- 无线传感器网络节点连通率