黑马程序员技术交流社区

标题: this 语句 [打印本页]

作者: jiahuiting    时间: 2013-9-24 13:16
标题: this 语句
本帖最后由 jiahuiting 于 2013-9-24 15:48 编辑

this是本类功能内部函数调用本类对象是用到,指调用的对象
而this语句,定义是构造函数间调用,不是很明白它的用法,这个this()常用到么

作者: 冷漠无天    时间: 2013-9-24 13:23
this主要要三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

说明在什么情况下需要用到this:
        第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
        第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
        第三、在函数中,需要引用该函所属类的当前对象时候,直接用this
作者: jiahuiting    时间: 2013-9-24 13:27
辛苦了,可是我想知道this语句的用法,this这个关键字我清楚了
作者: 369833818    时间: 2013-9-24 13:57
private(String name,double grade){
   this.name = name;
   this.age = age;
}

你是想找这个么?

this估计只要记住是当前对象的引用就ok了
作者: 蔚蓝天色    时间: 2013-9-24 14:52
对,在构造函数中,会默认有一个this
作者: 杨修    时间: 2013-9-24 15:16
楼主看看这个代码,这里面用了this语句的基本用法。
class Person
{
        String name;
        Person()
        {
                System.out.println("空参数构造函数运行");
        }
        Person(name)
        {
                this();
                this.name = name;
                System.out.println("有参数的构造函数运行");
        }
        public void show()
        {
                System.out.println("name"+name);
        }
}
class Demo
{
        public static void main(String[] args)
        {
                new Person("zhangsan").show();
        }
}
希望对你有帮助。。。
作者: 陈洋    时间: 2013-9-24 15:16
1. this是指当前对象自己。
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。
2.把this作为参数传递
当你要把自己作为参数传递给别的对象时,也可以用this。
3. 注意匿名类和内部类中的中的this。
有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。
4.在构造函数中,通过this可以调用同一class中别的构造函数

值得注意的是:
1:在构造调用另一个构造函数,调用动作必须置于最起始的位置。
2:不能在构造函数以外的任何函数内调用构造函数。
3:在一个构造函数内只能调用一个构造函数。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2