本帖最后由 8047107 于 2013-5-18 11:52 编辑
代码如下- /*
- private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。
- 私有只在本类中有效。
- 将age私有化以后,类以外即使建立了对象也不能直接访问。
- 但是人应该有年龄,就需要在Person类中提供对应访问age的方式。
- 注意:私有仅仅是封装的一种表现形式。
- 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
- 对访问的数据进行操作。提高代码健壮性。
- */
- class Person
- {
- private int age;
- public void setAge(int a)
- {
- if(a>0 && a<130)
- {
- age = a;
- speak();
- }
- else
- System.out.println("feifa age");
- }
- public int getAge()
- {
- return age;
- }
- private 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);
- //p.speak();
- }
- }
复制代码 代码本身是没有什么问题的,讲到后来,有同学说是a指向堆内存的对象,老师说不是,a不是引用数据类型,a和对象没有关系,a只是把值赋给对象的age。但是我在想,栈内存中的数可以赋给堆内存吗?两个内存区不是分开的吗? (虽然我知道a和对象没有关系。。只是一个疑问)
|