java高级编程之深入

首先从基础开始,

静态方法的导入:

包名.类名.静态属性|静态方法|

这种方法比较简单,有利于减少代码,但是必须记住每个包里的类的方法和属性;这是前提,如果不能记清的话,也只能按以前的方法来,也没有太大的区别;

举例:

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自动迭代访问每一个元素

}

java高级编程之深入_第1张图片java高级编程之深入_第2张图片java高级编程之深入_第3张图片java高级编程之深入_第4张图片java高级编程之深入_第5张图片

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());
     }

   }

}

定义一个方法求数组中元素的和

java高级编程之深入_第6张图片

可变参数:

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

java高级编程之深入_第7张图片

可变参数事例2

java高级编程之深入_第8张图片

//可变参数方法示例代码3

java高级编程之深入_第9张图片

可变参数方法示例代码4

测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组的情况

注意:传入基本数据类型数组的问题。

java高级编程之深入_第10张图片

你可能感兴趣的:(java)