A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lingxia125 中级黑马   /  2015-8-11 10:43  /  278 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lingxia125 于 2015-9-11 17:41 编辑
  1. class test_parent
  2. {
  3.         int x = 5;
  4.         int y = 10;
  5.         void set_value(int a, int b)
  6.         {
  7.                 x = a;
  8.                 y = b;
  9.         }
  10.         int get_1()
  11.         {
  12.                 return this.x + this.y;
  13.         }
  14.         int get_2()
  15.         {
  16.                 return x - y;
  17.         }
  18. }

  19. class test_4 extends test_parent
  20. {
  21.         int y;
  22.         test_4(int a)
  23.         {
  24.                 y = a;
  25.         }
  26.         void set_value(int a, int b)
  27.         {
  28.                 x = a;
  29.                 y = b;
  30.         }
  31.         int get_2()
  32.         {
  33.                 return y;
  34.         }
  35. }

  36. class  Test2
  37. {
  38.         public static void main(String[] args)
  39.         {
  40.                 test_4  a1=new test_4(1);
  41.                 int x = a1.get_1();
  42.                 System.out.println(x);

  43.                

  44.                
  45.         }
  46. }
复制代码
test_4继承 test_parent,在test_4初始化时,y=1,当调用get_1()方法时,this代表本类对象也就是test_4的对象,结果不应该是1+5吗?为什么答案是15?

1 个回复

倒序浏览
get_1()方法中根本就不用加this,因为不会产生同名变量分歧,所以应该知道问题的解决方法了吧!你的get_1()方法就是返回一个int值15.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马