天天看點

黑馬程式員-------Java基礎加強1

---------------------- android教育訓練、java教育訓練、期待與您交流!----------------------

Java增強

eclipse ____最廣泛的工具 

工程----最進階目錄  包括 資源檔案等 一個工作間包含多個工程 

配置環境,運作的版本要與編譯環境版本一緻

import static

導入一個類中的靜态方法

import static java.lang.Math.*

增強for循環

文法 for(type 變量名:集合變量名)

{執行語句}

枚舉 :枚舉就是要讓每個類型的變量的取值隻能為若幹個固定值中的一個,否則編譯會報錯。 

枚舉可讓編譯器在編譯時就控制非法值,

枚舉的應用

public enum WeekDay

{

SUN,MON,TUE,WED,THI,FRI;

}

類方法,ValueOf("") 柑橘串變成對應對象

values()把是以的枚舉變成數組

枚舉元素後跟() 指向指定構造方法

反射的基石

Class  C大寫 類類型

Class  cls1=位元組碼

Class類的各個執行個體對象?

對應各個類在記憶體中的位元組碼

如果得到各個位元組碼對應的執行個體對象

類名.class  

class.forName ()   對象.getclass()

String s1="abc"

Class c1=s1.getclass()

Class c2=string.class()

Class c3=class.forName("java.lang.string")

傳回的三個位元組碼相同

isprimitive 是否為基本類型

數組類型的class執行個體對象 class.isArry()

反射的定義

就是把java類中各種成分映射成為相對應的java類 

Constructor 類 --------構造類

得到所有的構造方法 

Constructor [] cst=Class.forName("java.lang.string").getConstructor; 

得到某一個

Constructor  cst=Class.forName("java.lang.string").getConstructor(StringBuffer.class)

Field-----------對象

例子 :将字元串的所有内容中“b"改為"a"

Field[] fields=obj.getclass().getFilds()

for(Fied field :  fields)

{

if(field.getType()==string.class)

{

string old=(string)field.get(obj)

string new=old.replace('b','a')

field.set(obj,new)

}

}

Method類 

數組的反射 

Arrays.asList(數組對象)

int[]不行  ,

在ArrayList 同樣的元素 會不同的存儲

在Hashset中,同樣的對象元素認為是同一個,把相同的對象通過算法放在同一區域 

對象相等,hashcode相等  

反射的作用 ——————實作架構的功能

關聯外部檔案,讓程式讀取

類加載器

.class.getclassloader()getResourceAsStream()

.classgetResourceAsStream(name);

内省   JAVA Bean 

特殊的java;類 

int getAge()

void setAge(int age)   

---------------------- android教育訓練、java教育訓練、期待與您交流! ----------------------

 詳細請檢視:http://edu.csdn.net/heima