一.1---15集內容:java
①透視圖(perspective)和視圖(view)的區別設計模式
②靜態方法的導入數組
③參數數量可變的方法
學習
System.out.println(add(2,3)); System.out.println(add(2,3,5)); publci static int add(int x,int ... args) { int sum=x; for(int i=0;i<args.length;i++) { sum+=args[i]; } return sum; }
解釋:本質爲默認爲args生成一個動態數組,以達到能夠輸入可變參數的效果。測試
④加強for循環spa
語法:for(type 變量名:集合變量名){ }設計
System.out.println(add(2,3)); System.out.println(add(2,3,5)); publci static int add(int x,int ... args) { int sum=x; for(int arg:args) { sum+=arg; } return sum; }
⑤裝箱拆箱code
public class AutoBox { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Integer iObj=3;//裝箱(較早版本的Java裏面不能這麼寫,由於3是int類型,iObj是一個包裝類型Integer對象) System.out.println(iObj+12);//拆箱 Integer i1=13; Integer i2=13; System.out.println(i1==i2);//測試i1和i2是否爲同一個對象,這是在比較包裝類型Integer對象內容,不是比較數值) Integer i3=137; Integer i4=137; System.out.println(i3==i4);//測試i3和i4是否爲同一個對象 //當數據值處於-128~127之間時,裝箱時內部會將其封裝成同一個對象,不然,封裝成兩個對象,這是一個享元模式【同享一個元】的的設計模式) //享元模式:即一些小的使用頻繁的同值對象會只產生一個對象,擴展的說,一些東西有些屬性相同時,內存池中只會留下一個,這些特性是內部特性;那些不一樣屬性成爲外部特性 //享元模式:flyweight Integer i5=Integer.valueOf(3); Integer i6=Integer.valueOf(3); System.out.println(i5==i6); Integer i7=Integer.valueOf(213); Integer i8=Integer.valueOf(213); System.out.println(i7==i8); //下面這兩個不是自動裝箱而是調用類Integer的靜態方法,關於將對象放內存池的狀況同上。 } }
⑥枚舉類的學習:對象
枚舉元素就是一個枚舉類的對象內存
public class EnumTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WeekDay weekDay=WeekDay.FRI; System.out.println(weekDay); System.out.println(weekDay.name()); System.out.println(weekDay.ordinal()); System.out.println(WeekDay.valueOf("SUN")); System.out.println(WeekDay.values().length); } public enum WeekDay{//定義一個枚舉類WeekDay SUN,MON,TUE,WED,THI,FRI,SAT } }
public class EnumTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WeekDay weekDay=WeekDay.FRI; System.out.println(weekDay); System.out.println(weekDay.name()); System.out.println(weekDay.ordinal()); System.out.println(WeekDay.valueOf("SUN")); System.out.println(WeekDay.values().length); } public enum WeekDay{//定義一個枚舉類WeekDay SUN(5),MON(),TUE,WED,THI,FRI,SAT;//這七個爲枚舉類的靜態成員部分,只要使用一次枚舉類,他們都會依次執行一遍,而且若是有其餘東西,他們位於其餘東西以前,且必須加上分; //枚舉類的構造方法必須爲私有 private WeekDay(){System.out.println("First");} private WeekDay(int day){System.out.println("Second");} } }
外部類只能使用默認或者public這兩個修飾符,而內部類但是使用四種。
⑦反射(類Class,不是定義普通類的class)
a.Java程序中的各個Java類屬於同一類事物,描述這類事物的Java類名就是Class,就是表明對象或者類的字節碼
b.獲得字節碼的方法(Class類型):
①類名.class;
②對象.getClass();
③Class.forName("類名");
c.八種基本類型(boolean,byte,char,short,int,long,float,and double)和void類型都是一種類
例如:Class cls1=void.class;