java中this关键字!

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:12:43
我是自学的所以书上对THIS这个关键字说的不是很清楚所以来问下!
class box
{
int width;
int heitht;
int depth;
box(int x,int y,int z)
{
width=x;//this.width=x;这样也写是不是相等啊,如果相等那还用this干什么呢??
height=y;//this.height=y;
depth=z;//thsi.depth=z;
}
}

class box
{
int x;
int y;
int z;
box(int x,int y,int z)
{
x=x;//错误
this.x=x;//对
....}
}
当 两个变量名相同的时候。需要this。到不同的时候,不需要

this就是指当前窗口或者对象啊,上面代码就是定义当前对象的长宽高啊

java我没学,不过我学的C++我想C++中的this应该和java大同小异。

举例:

比如创建了一个类A,以及两个该类的实例(也称对象),如果该类中提供了一个比较函数,该函数接受一个A类的对象来和自身的特定数据成员比较并返回拥有较大数的那个对象,如:

在运用时,比如你想这样:

A a1,a2;
........ // 对a1和a2初始化
........

// 之后如果你想这样:

A b = a1.max(a2)

// 如果a1比a2大的话该返回什么呢?对了,就是this!

class A
{
public:
A& max(A& a)
{
return a.num > num ? a : ???;// 注意这里,没有this的话你该返回什么呢??
}

// 如果java中没有 ? :语句的话可以用if else代替如:
// if (a.num > num)
// return a;
// else
// return this;

private:
int num;
}