1. 程式人生 > >java高階程式設計之深入

java高階程式設計之深入

首先從基礎開始,

靜態方法的匯入:

包名.類名.靜態屬性|靜態方法|

這種方法比較簡單,有利於減少程式碼,但是必須記住每個包裡的類的方法和屬性;這是前提,如果不能記清的話,也只能按以前的方法來,也沒有太大的區別;

舉例:

   import java.lang.System,out;//寫完之後,底下的輸出就可以直接用out可以了;

 pubic static void mian(String args[]){

       out.println(“hello world”);

}

還可以用例如:import java.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);


}


}

典型例子:

List list= new ArrayList();

//add(int index, E element)將指定的元素插入此列表中的指定位置。

list.add(1);

list.add(2);

list.add(3);

Iterator it=list.iterator();//對 collection 進行迭代的迭代器 

while(it.hasNext()){

 int num=(Iterator)it.next(); 

System.out.println(num);

}

//這樣一個簡單的自動拆箱和裝箱就應用上了;

加強for迴圈:

引入增強for迴圈的原因:在JDK5以前的版本中,遍歷陣列或集合中的元素, 需先獲得陣列的長度或集合的迭代器,比較麻煩!

  因此JDK5中定義了一種新的語法——增強for迴圈,以簡化此類操作。增強for迴圈只能用在陣列、或實現Iterator介面的集合類上

使用 foreach 迴圈遍歷陣列和集合元素時無須獲得陣列和集合長度無須根據索引來訪問陣列元素和集合元素, foreach 迴圈自動遍歷陣列和集合的每個元素

語法格式:

for ( type 變數名:集合變數名 )  { … 

           for(type varName : 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());
     }

   }

}

定義一個方法求陣列中元素的和

可變引數:

從 JDK 1.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()方法。分別傳多個參、傳陣列的情況

注意:傳入基本資料型別陣列的問題。