.新特性
        可变参数的意义以及实现
        
        那么下面通过一个简单的思考来分析可变参数的存在意义
        范例:如果说现在要定义一个方法,这个方法可以实现任意多个整型数据的相加
            那么现在唯一可以想到的方法的实现思路就是利用数组作为方法的参数

package cn.mysterious;

public class NewCharacteristics {

    public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(add(new int[] {1,2,3}));
System.out.println(add(new int[] {1,2,3,4,5,6})); }
/**
* 此方法可以实现任意多个整型数据的相加操作
* @param data 所有的整型数据要求封装在数组之中
* @return 数据的累加结果
*/
public static int add(int[] data){
int sum = 0;
for (int i = 0; i < data.length; i++) {
sum += data[i];
}
return sum;
}
}           

严格来讲以上的代码虽然实现了开发要求,只不过这种做法有一点不合适
            要求是传递任意多个参数,而现在变成了值传递一个数组参数
            那么从JDK1.5之后将发生变更对于方法定义的格式产生了新的支持
            [public |protected |private] [static] [final] 返回值类型 方法名称(参数,......,参数类型... 变量)
        范例:观察可变参数

package cn.mysterious;

public class NewCharacteristics {

    public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(add(1,2,3));
System.out.println(add(1,2,3,4,5,6));
System.out.println(add(new int[] {1,2,3})); }
/**
* 此方法可以实现任意多个整型数据的相加操作
* @param data 所有的整型数据要求封装在数组之中
* @return 数据的累加结果
*/
public static int add(int ... data){// 可变参数就是利用了数组的形式
int sum = 0;
for (int i = 0; i < data.length; i++) {
sum += data[i];
}
return sum;
}
}

可变参数本质上实现的就是一个数组操作的形式
            
        总结
            从实际来讲,不建议在自己写的代码上过多的使用此技术

foreach 循环
        增强型for 循环
        
        foreach 是一个名字,而其本质就是for循环,但是着呀昂的 for 循环是给特点的结构使用的:数组,类集
        范例:传统数组的输出

package cn.mysterious;

public class Foreach {

    public static void main(String[] args) {
// TODO Auto-generated method stub
int data[] = new int[]{1,2,3};
for (int i = 0; i < data.length; i++) { // 传统的循环操作形式
System.out.println(data[i]); // 根据索引取得数据
}
} }

但是有人认为以上的索引操作过于复杂了,而且使用索引还有可能出现数组越界的情况,现在针对于数组就可以采用如下形式的for循环完成输出
            for(数据类型 变量 :数组名称){}
        此语句的作用在于自动进行数组的遍历(取出)操作,而后将每一个数组元素 都保存在变量之后,这样在 for 循环里面就可以不需要使用索引来进行操作了
        范例:for 循环

package cn.mysterious;

public class Foreach {

    public static void main(String[] args) {
// TODO Auto-generated method stub
int data[] = new int[]{1,2,3};
for (int i : data) { // 数组里面的每一个内容通过循环取出,取出的内容讲给 i
System.out.println(x); // 不需要索引
}
}
}

因为最早的时候,.NET 和JAVA 是两大阵营,.NET 有这样的输出,java没有.....
            
    总结
        foreach 这个名词就是通过.NET 学来的
        对于 foreach 的使用随意吧

最新文章

  1. @autowired和@resource的区别
  2. iOS&#183;UIButton如何文字在下图片在上
  3. EF架构~真正被封装的排序方法,支持多列排序
  4. java 26 - 8 网络编程之 TCP协议上传图片
  5. Web应用程序系统的多用户权限控制设计及实现-首页模块【5】
  6. WEB 安全之 SQL注入 &lt; 二 &gt; 暴库
  7. cf 359A 359B
  8. TcxDBLookupCombobox 级联时第二级不显示正确内容的处理方法
  9. python中的有趣用法
  10. Bottle GET method. Request
  11. 浅谈C/C++结构体内存分配问题
  12. maven私服搭建nexus/windows/linux(一)
  13. 156个Python网络爬虫资源
  14. vue路由
  15. synchronized的四种作用域以及不能被继承解析
  16. DevExpress AspxGridView分页使用隐藏系统默认英文分页
  17. 利用工具将数据库中的表导出到word中
  18. ubuntu下配置反向代理
  19. os.rename 和os.replace
  20. linux 安装二进制包程序一般步骤

热门文章

  1. 腾讯首个CNCF沙箱开源项目
  2. 被校园网限速限流的日子 | 路由代理ipv6访问的操作手册
  3. 1-SQL Server2019安装
  4. 【深度学习】softmax回归——原理、one-hot编码、结构和运算、交叉熵损失
  5. Java JDK的下载与安装!Java基础
  6. 洛谷3195 [HNOI2008]玩具装箱TOY(斜率优化+dp)
  7. 洛谷4847 银河英雄传说(LCT+LCSPLAY)
  8. Java爬虫系列四:使用selenium-java爬取js异步请求的数据
  9. 树莓派4B学习札记
  10. 【MySQL】MySQL(四)存储引擎、索引、锁、集群