今天看书上的this 关键字的解释,感觉很难懂,我是刚学的,求各位大虾帮帮小弟的忙
解决方案 »
- 字符串截取
- 求助啊 java里的throw and throws还是不太懂啊 求高人相救
- 请问JAVA中怎么才能把图标拖入界面,自动读取文件的路径
- jtable中如果先选中了第一个单元格,然后再选中同一行的最后一个单元格,为什么会选中一行
- 征集日历制作算法
- 一个JAVA初学者的困惑!
- 请教一个JTextField问题,现丑了
- 老问题!!
- 请问用appletviewer看html时,appletviewer显示APPLET没有初始化,该如何解决?(.java文件已通过编译)
- 请教一个java线程问题,同样程序不同电脑结果不同
- 栈、堆、静态数据区 物理上是不是在一块内存上?
- static 方法的问题
class Person{
private double height;
private int age; public Person(double h, int a){
this.height = h;
this.age = a;
}
}也就是说当你实例化Person的时候,会调用它的构造函数
Person p = new Person(1.85, 24);这句代码的潜台词就是p的升高是1.85,年龄是24岁 this就是p 懂了吗?
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
任何的方法和属性使用都要使用:
对象.属性
对象.方法()的格式而自己要使用自己的方法的时候,应该怎么办?
于是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);
}
}打印 true false
– 构造器中指该构造器所创建的新对象
– 方法中指调用该方法的对象
• this关键字的用法
– 在类本身的方法或构造器中引用该类的实例变量和方法
– 将当前对象作为参数传递给其它方法或构造器
– 用来调用其他的重载的构造器