一、普通對(duì)象
People mxm = new People("Mo Xumin",24);
People hyx = new People("Huang Yingxue",22);
- 上面這兩行代碼课梳,是我最開(kāi)始給你講的距辆,創(chuàng)建兩個(gè)個(gè) 'People' 對(duì)象。
- 先簡(jiǎn)單復(fù)習(xí)一下暮刃,'People' 是 'class name'(類(lèi)名)跨算,'mxm' 或 'hyx' 是變量名,代表兩個(gè) 'People' 類(lèi)型的對(duì)象椭懊。
他們?cè)趦?nèi)存里是兩個(gè)單獨(dú)的對(duì)象诸蚕,在內(nèi)存里的狀態(tài)如下圖所示:
- 每個(gè)方框代表一個(gè) 'People' 類(lèi)型的對(duì)象,這時(shí)內(nèi)存里有兩個(gè)獨(dú)立的 'People' 對(duì)象,一個(gè)的變量名是 'mxm'背犯,另一個(gè)的變量名是 'hyx'坏瘩。
二、Array
People[] allpeoples = new People[5];
allpeoples[0] = mxm;
allpeoples[1] = hyx;
allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”
上面的代碼漠魏,是接著第一部分
- 'People' 后面加了個(gè) [ ]桑腮,代表這是一個(gè) 'People' 類(lèi)型的數(shù)組,'allpeoples' 是這個(gè)數(shù)組的變量名蛉幸;
- 'allpeoples' 是一個(gè)包含了 5 個(gè) 'People' 的數(shù)組破讨;
- 'allpeoples[0]' 可以訪問(wèn)該數(shù)組的第 0 個(gè)位置,把 'mxm' 放到該數(shù)組的第 0 個(gè)位置奕纫;
- 'allpeoples[1]' 可以訪問(wèn)該數(shù)組的第 1 個(gè)位置提陶,把 'hyx' 放到該數(shù)組的第 1 個(gè)位置;
執(zhí)行完這段代碼后匹层,內(nèi)存的情況如下圖:
- 5 個(gè)連在一起的方框隙笆,也就是有 5 個(gè)連在一起的 'People' 類(lèi)型的對(duì)象;
- 這 5 個(gè)方框連在一起升筏,就是 'allpeoples' 代表的東西撑柔;
- 而其中每個(gè)單獨(dú)的方框,都是一個(gè) 'People' 類(lèi)型的對(duì)象您访;
- 其中第一個(gè) 'People' 方框是 'mxm'(因?yàn)槲覀儓?zhí)行了 'allpeoples[0] = mxm')铅忿;
- 第二個(gè) 'People' 方框是 'hyx'(因?yàn)槲覀儓?zhí)行了 'allpeoples[1] = hyx');
三灵汪、ArrayList
這個(gè)只需要簡(jiǎn)單理解檀训,和上面Array的三行代碼一一對(duì)應(yīng)的關(guān)系如下:
- Array 版
People[] allpeoples = new People[5];
allpeoples[0] = mxm; // 將數(shù)組第0個(gè)元素賦值為mxm
allpeoples[1] = hyx; // 將數(shù)組第1個(gè)元素賦值為hyx
allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”
- ArrayList 版
ArrayList<People> allpeoples = new ArrayList<People>(5);
allpeoples.add(mxm); // 將數(shù)組第0個(gè)元素賦值為mxm
allpeoples.add(hyx); // 將數(shù)組第1個(gè)元素賦值為hyx
allpeoples.get(0).getName(); // 拿到值“Mo Xumin”
allpeoples.get(1).getName(); // 拿到值“Huang Yingxue”
- 你只需要理解到這個(gè),ArrayList相當(dāng)于把 'allpeoples[0]' 這種訪問(wèn)方式享言,改成了add()和get()函數(shù)