Java面向对象(基本方法调用问题1)

      **今天在使用Person类进行方法的调用时,产生了年龄显示的问题。不管如何输出年龄,但在属性值![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525194440284.png)

age不发生任何改变。说了这么多,读者很产生直观印象,我现在放入代码,大家可以思考的看看。

   public class person {
      String name;
      int age;
      int sex;
      void study() {
    	  System.out.println("我在学习中。。。。。。。。。。。。。");
    	  
      }
      void showAge() {
    	  System.out.println("他的年龄为"+age);
      }
      public void addAge(int age) {
    	 age=age+1;
      }
    }
    public class test {
      public static void main(String[] args) {
    	  person per=new person();
    	  per.name="wang";
    	  per.age=20;
    	  per.study();
    	  per.addAge(4);
    	  per.showAge();
      }
    }

我们看完代码,看到我们在年龄的addAge()方法中输入的是4。我们根据寻回进行去看,在person中看到
public void addAge(int age) {
age=age+1;
}
我们输入的是4,那么输出的值应该是5,但结果一直输出的是20。
请思考,为什么输出的不是5呢?
1.我们看了代码,感觉是showAge出问题了,可是对他 进行替换,也无法改变20。当我们在观察 成员变量的实行设定时:
int age;
per.age=20;
我们可以看到age很早之前已定定义了,我们在方法addAge的形参中,还是用的是int age,这就是问题出错的原因 ,他不能对成员的age进行屏蔽,也无法对其进行改变,这是java先行性的问题。
下次编程,我们应该注意这个问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值