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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭荣强 高级黑马   /  2014-2-15 20:45  /  1789 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this,name= name是一个怎样的过程啊。求解释

class test
{
        String name ;
        void getName(String name)
        {
                this.name = name;
                //name = this.name;
                System.out.println(name);

        }
}

class  lianxi
{
        public static void main(String[] args)
        {
                test t = new test();
                t.getName("老罗");
        }
}

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

4 个回复

倒序浏览
this.name = name;
=后面的name是传进来的参数。
this是一个对自身对象的引用。就好比“ t.getName("老罗");”其中t是test对象的引用。
this.name=name:  把传进来的参数赋值到自身对象的name上。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
this是指向类的,本来可以省略,但由于类中的成员变量和传进方法中的的参数名字相同,所以要加上this加以区分

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
this的用法:
1. 使用范围(where to use):只能在类的实例成员中使用。非(static )成员。
2. 如何使用 ( how to use) :  在类的构造函数,或实例成员中,使用this去引用自身。先看下面一段代码示例:
  1. public class Person {

  2.      public Person( ) {
  3.             this("");   //此处this用来引用自身的构造函数
  4.      }
  5.      public Person(String name) {
  6.             this.name = name;  //此处this用来引用(new Person())动态生成的对象
  7.      }
  8.      
  9.      public String getName() {
  10.             return this.name;   //引用自身(运行时(runtime),使用(new constructor(type.... ))生成的Object
  11.      }
  12.      private String name;
  13. }
复制代码


3 为什么使用this(why to use): 从上面的示例中,可以看出this的两个用法,引用成员变量,或调用构造函数

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
  void getName(String name)
         {
                 this.name = name;
              ...
         }
  如果写成name = name;那么就会由于“就近原则”导致这两个name都是参数列表里声明的name,为了防止受到就近原则的影响,需要在前面的name前加上this关键字,表明它是成员变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马