构造方法和内存分配问题
class Cat{private static int sid=0;
private String name;
int id;
Cat(String name){
this.name =name;
id=sid++;
}
public static void main(String args[]){
Cat.sid=100;
Cat a= new Cat("a");
Cat b= new Cat("b");
}
}
一是构造函数第二行没有看懂,是什么意思,一般都是和new一起用,有第一行就够了
二是内存怎么分配,字符“a“ ”b“ 在堆内存里还是,data seg里!
----------------解决方案--------------------------------------------------------
this.name=name//左边的name是指该类的变量,就是对象本身的一个name,而右边的name是指传进来的参数,如果你写成:
Cat(String n),那么就可以写name=n了,一般类的变量和参数名相同的话会用到this
具体的对象在堆里,引用在栈里
----------------解决方案--------------------------------------------------------
id=sid++;关键是这行,怎么也构造进去了!
----------------解决方案--------------------------------------------------------
还有就是new出来的字符“a”在data seg 里还是在堆里!
----------------解决方案--------------------------------------------------------
id=sid++;为什么不能放进构造函数?
堆;
----------------解决方案--------------------------------------------------------
来看看..
----------------解决方案--------------------------------------------------------