总结一下:1.返回对象的引用;2.引用成员变量;3.调用构造方法。作者: lgc黑马 时间: 2014-12-13 21:24
this代表你所在的对象名作者: yy505032788 时间: 2014-12-13 22:58
感谢哥们啊作者: ben_vs_cong 时间: 2014-12-13 23:16
this应用在构造函数间调用; 用于区分同名情况下的应用。作者: l763631191 时间: 2014-12-14 01:38
this 代表的就是所在类 的对象的引用,当成员变量命 与所传替的参数名字相同时就不可以省略,因为要起到区分的作用。作者: kenhe 时间: 2014-12-14 09:45
this是本类对象的引用作者: 逆世界ylm 时间: 2014-12-14 13:46
是当前对象的引用作者: lidinghai 时间: 2014-12-14 15:07
这个多看看代码,差不多就懂了,不好说。作者: 姿_`态 时间: 2014-12-14 16:31
1.当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)
class ThisDemo
{
public static void main(String[] args)
{
//A a = new A(3);
B b = new B(3);
}
}
class A
{
int i=2;
A(int i)
{
System.out.println("i="+i);//3 这里的i表示的是传进去的参数。
System.out.println("this.i="+this.i);//2 这里的this。i表示的是该方法所在类的成员变量
this.i=i;
System.out.println("i="+i);//3
System.out.println("this.i="+this.i);//3
}
}
class B extends A
{
int j=3;
B(int j)
{
super(j);//这里如果不指定super(j),第一行默认是super()但是父类没有这个,会报错,所以要手动指定相应参数构造函数。
this.j=j;
System.out.println("j="+j);//3
System.out.println("this.j="+this.j);//3
}
}
------------------------------------------------------------下面的和上面的是一个意思,
class B extends A
{
B(int i)
{
super(i);//除了指定子类的有一参数的构造函数,还有一个作用,就是调用父类赋值方法,this.i=i;
System.out.println("i="+i);//3
System.out.println("this.i="+this.i);//3
}
}
class A {
public A() {
调用B的方法
}
public void print() {
System.out.println("A!");
}
}
class B {
A a;
public B(A b) {
this.a = b;
}
public void print() {
a.print();//调用A的方法
System.out.println("B!");
}
}
class HelloA {
public static void main(String[] args) {
A aaa = new A();
aaa.print();
B bbb = new B(aaa);
bbb.print();
}
}
/*
HelloAA from A!
HelloAB from B!
HelloAA from A!
HelloAA from A!
HelloAB from B!
*/
===============================================================================================================================
3.关于匿名内部类中使用this 访问外部类
interface Inter
{
public static final int x=4;//内部类成员函数
void method();
}
class Test
{
int x=3;//外部类成员函数
Inter function()
{
int x=0;//外部类局部函数
return new Inter()
public static void main(String[] args) {
ThisTest thistest = new ThisTest();
}
}
/*
this测试成功!
*/
-----------------------------------------------------------------------------
class ThisTest2
{
public static void main(String[] args)
{
A a1 = new A("zs",20);
A a2 = new A("ls",20);
A a3 = new A("ww");
}
}
class A
{
private String name;
private int age;
A()
{
String name="null";
int age=0;
System.out.println("还没出生"+"姓名:"+name+" "+"年龄:"+age);
public boolean compare(Person p){ //比较是不是同龄人的功能,与另一个人比较。
return this.age==p.age;
}
}
class PersonDemo3{
public static void main(String[] args){
Person p = new Person("lisi");
p.speak();
Person p1 = new Person("zhang san"); //创一个新person类名字叫zhangsan,堆内存中名字p1
p.speak();
boolean g= p.compare(p1); //用到类中的比较方法,将结果存于变量g后输出
System.out.println(g);
}
}
/*
上方this区分了成员变量的name变量和传递参数name,是代表本类函数的引用。