黑马程序员技术交流社区
标题:
this关键字和对象的关系
[打印本页]
作者:
黑白小調°
时间:
2014-1-14 08:23
标题:
this关键字和对象的关系
this关键字和对象都可以调用成员变量和成员方法,那么他们之间有什么样的关系呢?
作者:
xu6148152
时间:
2014-1-14 08:33
本帖最后由 xu6148152 于 2014-1-14 08:37 编辑
this指向当前的对象。
如class A
{ private int num=0;
A(int num)
{
this.num=num;//因为类的属性num和构造函数的参数num一样,所以要使用this来访问类的num.
}
}
A a=new A();
这个时候this就跟a指向同一个内存地址。
this关键字一般在类的内部使用,表示当前的对象。
作者:
高丽华
时间:
2014-1-14 10:26
this可以引用本类的对象,this是用于区分局部变量和成员变量的同名情况。当定义类中功能时,该函数内部要用到该功能的对象时,时用this来表示这个对象,但凡奔雷功能内部使用了本类对象,都用this来表示。
对象可以new其他类的对象。
作者:
xiaochen33520
时间:
2014-1-14 17:30
很简单,通过类来创建对象,而且这个类可以创建N个对象,每个对象的哈希码值也是不一样的,除非直接以等号的形式赋值,比如:
Person p = new Person();
Person p2 = p;
那么p和p2所指向的哈希码值是一样的,也就是说,他们指向同一个对象。
关于this和对象的关系,this代表本类对象的引用(也可以说成this是所在函数所属对象的引用),也就是说哪个对象调用了this所在的函数,那么this就代表哪个对象。
当成员变量和传入的局部变量同名时,那么可以用this来区分,比如
public static void main(String[] args)
{
String name="张三";
}
class Person
{
private String name;
public void setName(String name)
{
this.name = name;
}
}
this也可以用于在构造函数中用来调用其他的构造函数,比如
class Person()
{
String name;
Person()
{
this(name);//必须定义在第一行,因为初始化动作要先完成,这个是规则。
}
Person(String name)
{
this.name = name;
}
}
作者:
姬运涛
时间:
2014-1-15 17:40
this关键字和对象都可以调用成员变量和成员方法,那么他们之间有什么样的关系呢?
这个问题:对象调用成员变量和成员方法时,这里构造函数的成员变量和成员方法和要传的值不能相同,如果相同则必须要用到this关键字,this用来区分局部变量和成员变量,否则系统都是为局部变量。这里this代表主函数中那个建立的对象调用,那么this就代表调用的那个。
例:
class Perason
{
private int age;
private String name;
Person(String name,int age)
{.
this.name=name;
this.age=age;
}
}
class Person1
{
public static void main(string [] args)
{
Person p=new Person("zhangsan",20)
}
}
这时当建立对象p时,this就代表对象p,总之对于提问者的问题就是this用于区分成员变量和所传的局部变量同名时的问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2