本帖最后由 但汉涛 于 2012-12-7 19:57 编辑
- class Person
- {
- private int age;
- public void setAge(int a)
- {
- if(a>0&&a<30)
- {
- age = a;
- speak();
- }
- else
- System.out.println("非法:age")
- }
- public int getAge()
- {
- return age;
- }
- void speak()
- {
- System.out.println("age="+age);
- }
- }
- class PersonDemo
- {
- public static void main(String[] args)
- {
- Person p =new Person();
- //p.age=-20;
- p.setAge(40);
- }
- }
复制代码 对于堆内存和栈内存,理解不是很深刻。
是不是可以理解为:局部变量都是在堆内存中。
只要用到关键字new,那么变量就会存储到栈内存中呢?
Person p =new Person();这个视频中中说,在堆内存中建立一个类p,存储一个栈内存的地址,同时在堆内存建立一个对象。
p.setAge(40);这个我理解不了,p.setAge()不是成员函数呢,应该在栈内存中的。
为什么要在堆内存中先建一个setAge(), a=40呢?
|