可变长的参数
在java5.0中,可以使用一种变长参数,也就是例如m(String… s)的东西,编译器会自动的将方法调用时的参数适当的封装成数组
5.0之前
public class Test{
public static void main(String[] args){
}
}
JVM收到数据封装在数组里,然后传入方法
5.0之后
public class Test{
public static void main(String... s){
m();//此时实际调用的是那个无参的m()方法
//注意:调用可变长参数的方法,只在必要时调用
m(1,“abc”,”bcd”);
}
public static void m(){
System.out.println(“m()”);
}
public static void m(int a,String… s){
for(String s2:s){
System.out.println(s2+a);
}
}
}
注意:只在必要的时候进行。同时有参数为数组,就不能使用变长参数,有变长参数,就不能使用数组,不能共存。一个方法最多只能有一个变长参数,而且是最后一个参数。
格式化输出
格式化I/O(Formatted I/O)
java.util.Sacner类可以进行格式化的输入,可以使用控制台输入,结合了BufferedReader和StringTokenizer的功能。
增加了类似C的格式化输入输出,简单的例子:
public class TestFormat{
public static void main(String[] args){
int a = 150000, b = 10;
float c = 5.0101f, d = 3.14f;
System.out.printf("%4d %4d%n", a, b);
System.out.printf("%x %x%n", a, b);
System.out.printf("%3.2f %1.1f%n", c, d);
System.out.printf("%1.3e %1.3e%n", c, d*100);
}
}
输出结果为:
150000 10
249f0 a
5.01 3.1
5.010e+00 3.140e+02
类型安全的枚举
枚举也是一个类型,枚举中的对象只能定义一次并在定义时给其初始化,定义之后不能再改变其值,只能从枚举中选择其一。
enum 枚举名{
枚举值1(..),枚举值2(..),.....;
}
在5.0之前使用模式做出枚举
final class Season{
public static final Season SPRING=new Season();
public static final Season WINTER=new Season();
public static final Season SUMMER=new Season();
public static final Season AUTUMN=new Season();
private Season(){}
}
完全等价于
enum Season2{
SPRING(..),//枚举值
SUMMER(..),
AUTUMN(..),
WINTER(..);
......
}
枚举是一个反射关联的典型,反射关联,即在类的定义中有自身类型的属性。
枚举本质上也是一个类,Enum是枚举的父类。
枚举中的values()方法会返回枚举中的所有枚举值
枚举中可以定义方法和属性,最后的一个枚举值要以分号和类定义分开,枚举中可以定义的构造方法。
枚举可以实现接口,枚举不能有子类也就是final的,枚举的构造方法是private(私有的),枚举中可以定义抽象方法,可以在枚举值的值中实现抽象方法,枚举值就是枚举的对象,枚举默认是final,枚举值可以隐含的匿名内部类来实现枚举中定义抽象方法。
枚举类(Enumeration Classes)和类一样,具有类所有特性。Season2的父类是java.lang.Enum;
隐含方法Season2[] ss=Season2.values(); 每个枚举类型都有的方法。enum可以在switch,case语法中使用(不加类名)。
例:
switch( s ){
case SPRING:
…………….
case SUMMER:
…………….
…………..
}
枚举类可以写有参构造方法,注意这个构造方法的权限修饰符要是private即私有的,且枚举类的构造方法默认权限修饰符不是default而是private
enum Season2{
SPRING(“春”),
SUMMER(“夏”),
AUTUMN(“秋”),
WINTER(“冬”);//注意这个分号,它代表枚举值结束
private String name;
Season2(String name){
this.name=name;
}
String getName(){
return name;
}
}
Season2.SPRING.getName();
枚举的高级用法:
枚举类中可以定义抽象方法,虽然枚举类是不能有子类的但是,枚举值可以覆盖枚举类中的定义的抽象方法。
例如下:
enum Operation{
ADD{//可以在枚举之中覆盖抽象方法
public double calculate(double s1,double s2){
return s1+s2;
}
},
SUBSTRACT{
public double calculate(double s1,double s2){
return s1-s2;
}
},
MULTIPLY{
public double calculate(double s1,double s2){
return s1*s2;
}
},
DIVIDE{
public double calculate(double s1,double s2){
return s1/s2;
}
};
public abstract double calculate(double s1 ,double s2);//抽象方法
}
有抽象方法枚举元素必须实现该方法。
分享到:
相关推荐
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aws-java-sdk-core-1.11.939.jar 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-core-1.11.939-...
赠送jar包:aliyun-java-sdk-core-4.5.30.jar 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar 包含翻译后的API文档:aliyun-java-sdk-core-4.5....
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-core-3.2.3 aliyun-java-sdk-core-3.2.3aliyun-java-sdk-core-3.2.3
ckeditor-java-core-3.5.3-javadoc.chm
Core Java Volume I--Fundamentals(10th) 英文epub 第10版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
赠送jar包:aws-java-sdk-core-1.12.160.jar; 赠送原API文档:aws-java-sdk-core-1.12.160-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.12.160-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.12....
赠送jar包:aws-java-sdk-core-1.11.939.jar; 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.11....
ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar
aliyun-java-sdk-core-3.4.0.jar
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dysms-api包
Core Java Volume II--Advanced Features(10th) 英文azw3 第10版
赠送jar包:aliyun-java-sdk-core-4.5.30.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-dysmsapi-1.0.0.ja jar aliyun sdk java core
Java核心技术第九版Java7,Mobi格式电子书。Core Java Volume I--Fundamentals (9th Edition)
在这个场景中,"aliyun-java-sdk-core-4.1.0.jar" 是一个Java版本的核心SDK,主要用于与阿里大于的各项服务进行交互,特别是短信发送功能。 一、阿里大于SDK核心功能 1. **身份验证**:SDK提供了基于AccessKey的...