黑马程序员--高新技术--可变参数,增强for循环,枚举
2013-07-17 01:37
441 查看
----------------------Android培训、Java培训、期待与您交流!
----------------------
可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。
public class VaribalParameter {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=add(3,4,5,9); //类型确定,参数个数可变
int sum2=add(3, 4,5,9,11,23,99,100);
System.out.println(sum);
System.out.println(sum2);
}
//定义求和方法中 第二个变量为可变参数
public static int add(int a,int ...args)
{ //调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,
//在方法体中以数组的形式访问可变参数
int sum=a;
// 注释整个段落:选中 Ctr+shift+/
for(int i=0;i<args.length;i++)
{
sum=sum+args[i];
}
return sum;
}
}
/* 可变参数的特点:
只能出现在参数列表的最后;
...位于变量类型和变量名之间,前后有无空格都可以;
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
*/
增强for循环
for ( type 变量名:集合变量名 ) { … }
public class ForDemo {
public static void main(String[] args) {
int[] array=new int[]{12,32,97,94,72,13};
System.out.print("采用普通for循环遍历打印:");
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+"\t");
}
System.out.print("\n采用增强for循环遍历打印:");
for(int arr:array)
{
System.out.print(arr+"\t");
}
}
}
/*
* 注意事项:
迭代变量必须在( )中定义!
集合变量可以是数组或实现了Iterable接口的集合类
*/
缺点:
对于数组,不能方便的访问下标值;
对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator).
除了简单遍历并读取其中的内容外,不建议使用增强的for循环。
枚举
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。public class EnumTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Week.Friday);
System.out.println(Week.MONDAY);
Week sun=Week.Saturday;
System.out.println("枚举name---"+sun.name());
System.out.println("枚举ordinal---"+sun.ordinal());
System.out.println("枚举getClass---"+sun.getClass());
System.out.println("枚举valueOf---"+sun.valueOf("Saturday"));
}
//定义一个枚举
public enum Week
{
MONDAY,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
}
//枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
public enum SeasonEnum
{
//注:枚举写在最前面,否则编译出错
spring, summer, autumn, winter;
private final static String position = "test";
public static SeasonEnum getSeason()
{
if("test".equals(position)){
return spring;
}
else
{
return autumn;
}
}
}
}
带抽象方法的枚举//定义个交通灯枚举,带上抽象方法的枚举
public enum TrafficLamp
{
RED(30) {//每个元素通过TrafficLamp子类完成抽象方法
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(45){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return YELLON;
}
},
YELLON(5){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time; //定义私有成员变量
private TrafficLamp(int time){
this.time=time;
}
}
----------------------Android培训、Java培训、期待与您交流!
----------------------
相关文章推荐
- 黑马程序员——高新技术---eclipse使用技巧、静态导入、可变参数、增强for循环、 自动拆装箱、枚举
- 【黑马程序员】黑马入学准备篇:Java高新技术之 静态导入、可变参数、增强for循环、自动装箱、枚举
- 黑马程序员_Java高新技术(静态导入、可变参数、增强for循环、自动拆装箱、枚举、反射)
- 黑马程序员--枚举,增强for循环,可变参数,静态导入,自动拆箱和自动装箱
- 黑马程序员_学习笔记:11) Jdk5.0新特性:增强for循环、可变参数(...)、静态导入、枚举:关键字 enum、自动拆装箱、泛型
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(一)【静态导入、可变参数、增强for循环】
- 黑马程序员——Java高新技术——JDK4.5版本新特性枚举、高级for循环、静态导入、可变参数、基本数据类型的自动装箱与拆箱
- 黑马程序员_温习 高新技术一 (个人笔记)摘要(静态导入---可变参数----高级FOR循环---自动装箱(拆箱)----枚举----反射)
- 黑马程序员-高新技术-1.5新特性之静态导入、可变参数、增强for循环
- Java高新技术1---增强for循环 ---装箱与拆箱享元设计模式--自己写枚举--可变长度的参数
- Java高新技术1---增强for循环 ---装箱与拆箱享元设计模式--自己写枚举--可变长度的参数
- 黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举
- 黑马程序员------java中的泛型、增强for循环、可变参数、静态导入、自动拆装箱、枚举
- 黑马程序员——Java1.5新特性之享元模式、增强for循环、可变参数、静态导入、自动装箱和拆箱
- 黑马程序员_day17 (Collections-sort-max-替换翻转,集合转成数组,增强for循环,可变参数,静态导入)。
- 黑马程序员-------(高新技术)静态导入、可变参数、增强for循环、基本数据类型的自动拆箱与装箱
- 黑马程序员____基础加强____静态导入&可变参数&增强for循环
- 黑马程序员_高新技术1(高级for,静态导入,可变参数,自动装箱拆箱,枚举)
- javaweb-day03-1&2(基础加强 - 静态导入、自动装箱/拆箱、增强for循环、可变参数、枚举)
- jdk1.5新特性——可变参数、增强for循环、枚举