今日所學:陣列、物件
JAVA正規宣告陣列的方式與C語言完全不同,但後來也有加入一些宣告語法是仿C語言的。
※一維陣列的宣告:
int[] k=new int[5];
int k[]=new int[5];
int[] k=new int[]{10,20,30,40,50};
int k[]=new int[]{10,20,30,40,50};
仿C
int[] k={10,20,30,40,50};
int k[]={10,20,30,40,50};
※二維陣列的宣告:
int[][] k=new int[3][5];
int[] k[]=new int[3][5];
int k[][]=new int[3][5];
int[][] k=new int[][]{{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
int[] k[]=new int[][]{{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
int k[][]=new int[][]{{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
仿C
int[][] k={{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
int[] k[]={{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
int k[][]={{10,20,30,40,50},{60,70,80,90,100},{110,120,130,140,150}};
※不規則陣列的宣告:
int[][] c=new int[3][];
int[] c[0]=new int[4];
int[] c[1]=new int[2];
int[] c[2]=new int[3];
及其記憶體配置方式:
♠簡單陣列的用法:
只有陣列可以使用的for迴圈
for(資料型態 變數:陣列名稱){}
♠一個例子-使用陣列的好處:
骰子骰6000次,紀錄各點數出現的次數
不用switch,也可以紀錄。
public static void main(String[] arg){}中,陣列也是可以使用的。當你在打執行指令時,後面打上資料就可以傳入了。例如:java test 12 20 36,則arg[0]="12"、arg[1]="20"、arg[2]="36"。傳入主程式的陣列是String型態,在做運算時,必須轉換。
♠轉換指令:
♠ 使用主程式陣列傳入:
接下來是簡單「物件」的使用。靜態的method宣告後,使用的語法為:物件參考變數.方法。
♠計算最大公因數:
♠簡單物件記憶體配置方式:
當宣告為靜態(static)時,JVM載入靜態的class名稱至Global記憶體中產生一個相同名稱的變數,並在Heap區中new一塊記憶體放置靜態的變數和程式。
(注意資料型態的一致性)
※當宣告為靜態變數和程式時,會自動載入至記憶體中。
♠Java的全域變數與不是全域變數:
當一個class中有靜態的變數(a)與不是靜態的變數(b)時,Java載入記憶體的方式不同。
變數a在初始化時,JVM就自動載入記憶體中,如下圖藍色的部分,即可直接使用;但數變b,因為不是靜態的,所以要使用它必須new一塊記憶體,如下圖黑色的部分,才能使用。
但因為new一塊記憶體,所以這個類別所有的變數與程式都會放在這一塊新記憶體中,當然a的數變也會存在;但這一塊新記憶體中的a依舊指向JVM已經載入的位址。
※當宣告為靜態的變數時,此變數為全域變數且為共享。
兩個作業:
作業(一):於2014-12-29完成
用亂數產生50個學生成績,統計每10分為一階段的人數。
輸出:(1)(2)必須對整齊
(1) 0- 9分的人數:1人
10-19分的人數: 4人
20-29分的人數: 5人
30-39分的人數: 1人
40-49分的人數: 2人
50-59分的人數: 7人
60-69分的人數: 4人
70-79分的人數: 13人
80-89分的人數: 7人
90-99分的人數: 4人
100 分的人數: 2人
(2) 0- 9分的人數:*
10-19分的人數: ****
20-29分的人數: *****
30-39分的人數: *
40-49分的人數: **
50-59分的人數: *******
60-69分的人數: ****
70-79分的人數: *************
80-89分的人數: *******
90-99分的人數: ****
100 分的人數: **
作業(二):於2014-12-30完成
使用主程式的陣列String[] arg。
public static void main(String[] arg){}
輸入數個數字,挑出最大值與最小值。挑出最大值與最小值的程式必須寫成class。
後記:
1.總算學到物件了!靜態物件的宣告方式、記憶體配置方式等.....。使用物件方法的語法:物件參考變數.方法。
2.物件導向 都是談論 非靜態的使用方式,下節課的內容。
3.好想要趕快學到:如何從記事本、word、excel等...存放資料的地方載入到程式中使用,並將想要存儲的資料使用這些軟體儲存起來。
4.彰化火車站附近有一家爌肉飯,今天去吃居然沒有蛤仔湯、蚵仔湯。一碗30元,但蛤仔湯的蛤仔好多,超好吃!
沒有留言:
張貼留言