首先从基础开始,
静态方法的导入:
包名.类名.静态属性|静态方法|;
这种方法比较简单,有利于减少代码,但是必须记住每个包里的类的方法和属性;这是前提,如果不能记清的话,也只能按以前的方法来,也没有太大的区别;
举例:
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()方法。分别传多个参、传数组的情况
注意:传入基本数据类型数组的问题。