首先从基础开始,
静态方法的导入:
包名.类名.静态属性|静态方法|;
这种方法比较简单,有利于减少代码,但是必须记住每个包里的类的方法和属性;这是前提,如果不能记清的话,也只能按以前的方法来,也没有太大的区别;
举例:
importjava.lang.System,out;//写完之后,底下的输出就可以直接用out可以了;
pubicstaticvoidmian(Stringargs[]){
out.println(“helloworld”);
}
还可以用例如:importjava.lang.Math.*;全静态属性;这些属于简化代码的,恩恩,看大家个人自己的条件了;
自动拆箱或装箱:
自动装箱:把一个基本数据类型直接赋值到对应的包装类的变量,或者赋给Object的变量中;
自动拆箱:把包里的对象直接赋给对应的相关基本数据类型变量中;
举例:
package cn.itcast; public class AutoBox { public static void main(String[] args) { /*jdk1.4时代*********************************************************************/ //基本类型 int num=8; System.out.println(" num "+num); //基本类型转化为包装类型 Integer num1=Integer.valueOf(num); System.out.println(" num1 "+num1); //包装类型转化为基本类型 int num2=num1.intValue(); System.out.println(" num2 "+num2); /*jdk1.5 时代*********************************************************************/ int m=9; System.out.println(" m "+m); //自动装箱 Integer n=m; System.out.println(" n "+n); //自动拆箱 int k=n; System.out.println(" k "+k); } }
典型例子:
Listlist=newArrayList();
//add(intindex,Eelement)将指定的元素插入此列表中的指定位置。
list.add(1);
list.add(2);
list.add(3);
Iteratorit=list.iterator();//对collection进行迭代的迭代器
while(it.hasNext()){
intnum=(Iterator)it.next();
System.out.println(num);
}
//这样一个简单的自动拆箱和装箱就应用上了;
加强for循环:
引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!
因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterator接口的集合类上
使用foreach循环遍历数组和集合元素时,无须获得数组和集合长度,无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素
语法格式:
for(type变量名:集合变量名){…}
for(typevarName:array|collection){
//varName自动迭代访问每一个元素
}
public static void main(String[] args) { /***************************************************************************************************/ //遍历list 使用泛型 List<String> list=new ArrayList(); list.add("name1"); list.add("name2"); list.add("name3"); for(String str:list){ System.out.println("str "+str); } /***************************************************************************************************/ //遍历list没有使用泛型 List list2=new ArrayList(); list2.add("name1"); list2.add("name2"); list2.add("name3"); for(Object str:list2){ System.out.println("str "+str); } /***************************************************************************************************/ //遍历List List中放置的javaBean 首先建好一个Person类,加入set,get方法; List<Person> list3=new ArrayList(); list3.add(new Person("张1",45)); list3.add(new Person("张2",46)); list3.add(new Person("张3",47)); for(Person person:list3){ System.out.println(person.getName()+" "+person.getAge()); } /***************************************************************************************************/ //遍历数组中 String[] array1={"name1","name2","name3"}; for(String str:array1){ System.out.println("str "+str); } /***************************************************************************************************/ //遍历遍历数组 数组中放置的javaBean Person[] persons=new Person[3]; persons[0]=new Person("张1",45); persons[1]=new Person("张2",46); persons[2]=new Person("张3",47); for(Person person:persons){ System.out.println(person.getName()+" "+person.getAge()); } } }
定义一个方法求数组中元素的和
可变参数:
从JDK1.5开始,Java允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参
若在定义方法时,在最后一个形参的类型后增加三点(…,...位于变量类型和变量名之间,前后有无空格都可以)则表明该形参可以接受多个参数值,多个参数值被当成数组传入
可变形参只能处于形参列表的最后,所以一个方法最多只能有一个长度可变的形参
调用包含一个可变形参的方法时,可以为该形参传入多个参数或一个数组
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
package cn.itcast; public class VarParameter { public static void main(String[] args) { //求和 一个参数 Integer array[] ={1,2,3,4}; System.out.println(add(array)); //求和 一个参数 多个参数 System.out.println(add(7,array)); } public static int add(int m,Integer ... array){ int sum=0; if(array!=null&&array.length>0){ for(int i=0;i<array.length;i++){ sum=sum+array[i]; } } return sum+m; } public static int add(Integer ... array){ int sum=0; if(array!=null&&array.length>0){ for(int i=0;i<array.length;i++){ sum=sum+array[i]; } } return sum; } }
//可变参数事例1
可变参数事例2
//可变参数方法示例代码3
可变参数方法示例代码4
测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组的情况
注意:传入基本数据类型数组的问题。