本帖最后由 戴振良 于 2012-4-27 15:18 编辑
- class Letter {
- private String letter;//用于保存字母
- private int count; //用于保存字母出现的个数
- public String getLetter() {
- return letter;
- }
- public void setLetter(String letter) {
- this.letter = letter;
- }
- public int getCount() {
- return count;
- }
- public void setCount(int count) {
- this.count = count;
- }
- }
- public class LetterCount {
- public static void main(String[] args) {
- String str = new String("abadcdffbaeba");
- Letter[] letter = new Letter[1];
- System.out.println(letter[0]);-----------------》这里为什么等于null ? ?? ??????
- }
- }
复制代码 我现在正在做入学试题,这应该是一个很简单的问题了,可是哥我就是晕菜了,letter[0]这是一个对象吗?为什么是null,也就是说并没有在堆中分配内存,那我要怎样才能一下子分配26个Letter对象呢?
现在搞明白,原来 Letter[] letters = new Letter[26]; 只是new了一个数组对象,这个数组对象叫letters,已经为这个对象在堆内存中开辟了空间,可以印直接打印letters,而这个数组里的元素并没有赋值,这些元素都是Letter对象的引用,对象的引用默认值为null,所以可以说,Letter[] letters = new Letter[26] 只是new 了一个数组对象,而这个数组对象里包含26个Letter对象的引用,我之前以为Letter[] letters = new Letter[24]就是new 了26个Letter对象呢! |