日期:2014-05-20 浏览次数:20757 次
class Person{ private double height; private int age; public Person(double h, int a){ this.height = h; this.age = a; } }
------解决方案--------------------
你首先得明白属性和方法都分:static(静态)-----member(非静态或者成员).(属性也可以说是全局变量)
this的用法:
一)用在member方法里:
this.成员属性/方法 //这时this指的是"本对象"的,此时this操作的属性和方法都是对象里的东西。
this.static属性/方法 //这时this指的是"本类"的,此时this操作的属性和方法都是类的即带static。
二)this不能用在static方法里,比如main()方法里。不然javac时就会提示有错误。
(this可以去.static属性/方法,但不能用在static方法里)
因此this常用在构造方法里,比如一个Hello.java
1:public class Hello{
2: private int x;
3: public Hello(int x){
4: this.x = x;
5: System.out.println(x);
6: System.out.println(this.x);
7: }
8:}
这里面this.x = x; 等号前面的x就是属性里的x,等号后面的x就是入参x,如果不加this,那么就成了x=x,两个x都是入参x.
this的还有个用法是用在<JavaBean 技术>里 通过this.get()/set()方法使用隐藏属性,这点你现在不用知道。
------解决方案--------------------
我给你一个例子你就可以懂起了
class TestThis{
int x=2;
public void A(int x){
x=1;
}
public static void main(String args[]){
TestThis tt=new TestThis();
tt.A(3);
System.out.println("x="+tt.x);
}
}
没有使用this的时候,程序运行输出:
x=2
当你的A方法是
public void A(int x){
this.x=1;
}
的时候,再运行程序,输出结果为:
x=1
------解决方案--------------------
........1楼那个....
java是现象对象语言
任何的方法和属性使用都要使用:
对象.属性
对象.方法()的格式
而自己要使用自己的方法的时候,应该怎么办?
于是java就加入了一个this特殊变量来反向保存自己的实例
public class Test { public void isSame(Test ts) { System.out.println(this==ts); } public static void main(String[] args) { Test ts=new Test(); Test ts2=new Test(); ts.isSame(ts); ts.isSame(ts2); } }
------解决方案--------------------
? 当一个对象创建好后,Java虚拟机会给它分配一个引用自身的指针:this.
– 构造器中指该构造器所创建的新对象
– 方法中指调用该方法的对象
? this关键字的用法
– 在类本身的方法或构造器中引用该类的实例变量和方法
– 将当前对象作为参数传递给其它方法或构造器
– 用来调用其他的重载的构造器