码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础-学习笔记(七)——this关键字

时间:2015-11-05 22:19:07      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

1、this引用句柄

this指的就是调用该方法的对象

class A
{
    String name;
    public A(String x)
    {
        name=x;
    }
    public void func1()
    {
        System.out.println("my name is "+name);
    }
    public void func2()
    {
        A a2=new A("a2");
        a2.func1();
        this.func1();//可以去掉this,结果一致
        func1();
    }
    public static void main(String [] args)
    {
        A a1=new A("a1");
        a1.func2();
    }
}
/*
F:\java_example>java A
my name is a2
my name is a1
my name is a1
*/

在成员方法中,对访问同类中成员前加不加this引用,效果都一样,这就好像,我们是同一个公司的成员,,彼此在提及和自己公司相关的事时,不用说出公司名一样,当然也可以显式指出我们公司怎样怎样,每个成员方法内部都有一个this引用变量,指向调用这个方法的对象。

技术分享

看似this可有可无,但在有些场合中还是非常有必要的

1)我们通过构造方法将外部传入的参数赋值给类成员变量,构造方法的形参名称与类的成员变量名相同

class Person

{

  String name;

  public Person(String name)

  {

    this.name=name;

  }

}

2)可作为对象进行传class Containe{

class Container
{
  Component comp;
  public void addComponent()
  {
    comp = new Component(this);
    /*comp = new Component(new Container());
此种做法是不合理的,因为我想要的是,把新创建的部件归到调用这个addComponent()的Container对象中。
如果我现在又新建一个Container类,那是会把这个部件归到新创建的Container类中,
为了只对应一个Container类,我们可以用this来表示我们的对象
*/
  }

}
class Component
{
  Container myCon;
  public Component(Container con)
  {
    myCon=con;
  }
}

  3)构造方法是产生对象时被java系统自动调用的,我们不能在程序中像调用其它函数一样来调用构造方法。但是我们可以在一个构造方法中通过this的形式调用其它重载的构造方法

class Person
{
	String name;
	int age;
	public Person(String name)
	{
		this.name=name;
	}
	public Person(String name,int age)
	{
		this(name);
		this.age=age;
	}
}

  

Java基础-学习笔记(七)——this关键字

标签:

原文地址:http://www.cnblogs.com/tiantianxiangshang33/p/4940753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!