静态导入
JDK 1.5 增加的静态导入语法用于导入指定类的某个静态属性值(方法)或全部静态属性值(方法)
语法:
Import static 包名.类名.静态属性|静态方法|*
静态导入语句使用 import static 语句
导入指定类的单个静态属性:
import static java.lang.System.out
导入指定类静态方法 import static java.lang.Math.max
导入指定类全部静态属性和方法
import static java.lang.Math.*
例:
package com.hbsi.base;
import static java.lang.System.out;
import static java.lang.Math.*;
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
out.println("hello world");
System.out.println(PI);
System.out.println(Math.sqrt(4));
}
}
自动装箱(autoboxing):把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量
自动拆箱:把包装类对象直接赋给一个对应的基本类型变量
典型应用:
List list = new ArrayList();
list.add(1);
int j = (Integer)list.get(0);
例:
package com.hbsi.base;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
Integer i=1; //自动装箱
//Integer i=new Integer(1);
int j=i; //自动拆箱
//应用
List list=new ArrayList();
list.add(1); //list.add(new Integer(1));
list.add(2);
list.add(3);
Iterator it=list.iterator();
while(it.hasNext()){
int num=(Integer)it.next();
System.out.println(num);
}
//int num=(Integer)list.get(0);
}
}
增强for循环
引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!
因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterator接口的集合类上
使用 foreach 循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, foreach 循环自动遍历数组和集合的每个元素
语法格式:
for ( type 变量名:集合变量名 ) { … }
for(type varName : array | collection){
//varName 自动迭代访问每一个元素
}
从 JDK 1.5 开始, Java 允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参
若在定义方法时, 在最后一个形参的类型后增加三点(…, ...位于变量类型和变量名之间,前后有无空格都可以)则表明该形参可以接受多个参数值, 多个参数值被当成数组传入
可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参
调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组
调用可变参数的方法时, 编译器为该可变参数隐含创建一个数组, 在方法体中以数组的形式访问可变参数
例:
package com.hbsi.base;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class Demo4 {
public static void main(String [] args){
List list=Arrays.asList("1","2","3");
System.out.println(list);
Integer[] num={1,2,3,4};
List list2=Arrays.asList(num);
System.out.println(list2);
int [] num1={1,2,3,4};
List list3=Arrays.asList(num1);
System.out.println(list3);
}
@Test
public void testsum(){
/*int[] arr={1,2,6,9};
System.out.println(sum(arr));*/
int sum1=sum(1,2,3,4,5);
System.out.println(sum1);
}
public int sum(int...arrs){
int sum=0;
for(int i:arrs){
sum +=i;
}
return sum;
}
public void test1(int...a){
}
}
枚举类:
在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。
JDK 5新增的 enum 关键字用于定义一个枚举类
枚举类练习
设计一个Student类
class Student{
private String name;
private Grade grade;
……}
要求:学生的grade只能是a,b,c,d,e五个级别。可以给学生设置成绩,并可以输出学生成绩情况(优,良,中,可,差)
源码如下:
package com.hbsi.enum3;
public class Student {
private String name;
private Grade grade;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
}
enum Grade{
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0");
private String value;
private Grade(String value){
this.value=value;
}
public String getValue() {
return value;
}
}
测试用码:
package com.hbsi.enum3;
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
Student s=new Student();
s.setName("张三");
s.setGrade(Grade.A);
System.out.println(Grade.B.getValue());
}
}
分享到:
相关推荐
短小精悍,关于静态导入的源代码,可以用作编程参照!
视频教程,介绍java的静态导入方法,还介绍了JAVA的编译器的语法设置。
Java包的静态导入import static和import的区别
从JDK5.0之后,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。例如,如果在源文件的顶部,添加一条指令: Java代码 import java.lang.System.*; 那么就可以使用System类的静态方法和...
静态变量的导入以及集合的运用,以及综合实例。
JSP静态导入(JSP指令标记include) JSP页面第一次被请求时,会被JSP引擎转译成Servlet的Java文件,然后再被编译成字节码文件执行。JSP指令标记为JSP页面转译提供整个页面的相关信息。 include指令用于在JSP页面...
内裤 一些简单的静态导入,可以让 Java 集合的工作不那么冗长
主要介绍了java中静态导入机制用法实例详解的相关资料,需要的朋友可以参考下
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...
伪静态URL重写是通过微软公司封装好了的一个URL重写组件(UrlReswriter.jar)来实现的,导入JAR包,在WEB服务中加载伪静态地址拦截器,客户端以静态地址向服务器发起请求,服务器端的拦截器拦截客户端请求,查找XML...
1、什么是静态导入? 静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来。include的静态导入指令使用语法: 代码如下:<%@include ...
本示列为freemark页面静态化 完整demo 可导入工程直接运行查看效果
CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 ...
托福资料(完整带Java后台).zip微信小程序模板源码纯前端静态小程序源码导入就可显示托福资料(完整带Java后台).zip微信小程序模板源码纯前端静态小程序源码导入就可显示 1.学生做毕业设计用 2.程序员学习研究用 3...
建议通过阅读相关的Java教材或搜索资料,进一步扩展学习与static关键字相关的高级主题,如静态代码块、静态内部类和静态导入等内容。 如有疑问,可以参考Java官方文档或向技术论坛寻求帮助,进一步加深对static...
下面小编就为大家带来一篇详谈Java枚举、静态导入、自动拆装箱、增强for循环、可变参数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该
CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 集合 Map 92 CoreJava DAY15 异常、断言 98 CoreJava DAY16 ...
Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。《Java高手...
CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 ...