- class Person
- {
- private int age;
- public void setAge(int a)
- {
- int age = a; /* 这涉及到变量作用域的问题,如果这里写上int 等于在本方法内重新定义了一个
- age局部变量,无法把值传给方法外部的成员变量,这个局部变量和外部的 age同名,但只有在本方法有效
- 而这里的show();实际上是this.show();简写是指方法所在类的整个类对象 */
- show();
- }
- public int getAge()
- {
- return age;
- }
- void show() //public void setAge(int a) 调用的是此方法,而此方法输出的是 private int age;
- {
- System.out.println(age); // 输出private int age; 程序初化时, 整型变量默认值为0
- }
- }
- class PersonDemo
- {
- public static void main(String[] args)
- {
- Person p = new Person();
- p.setAge(2);
- }
- }
复制代码 当去掉int 时,方法内的age 和方法外的age是同一个所以值发生了变化 |