在Java中提供一个this关键字,其实这个关键字很简单,花点时间去看看相关的资料就会很容易明白怎么去使用这个关键字,下面开始讲解this这个关键字。
首先我们应该知道this代表的什么,它代表的是一个对象的引用,下面在代码里面解释:
this是什么?
代码1:解释this是对象的引用
package com.hua.www.override;
public class TestThis {
public static void main(String[] args) {
System.out.println(new A().testThis());//这里被我简写了,可以分步 A a=new A(); A b=a.testThis(); System.out.println(b);
}
}
class A{
public A testThis(){
return this;
}
/*@Override
public String toString() {
// TODO Auto-generated method stub
return "类A重写的tostring的方法!";
}*/
}
输出:com.hua.www.override.A@17494c8(如果上面的注释去掉,tostring被我重写,输出:类A重写的tostring的方法!)
this怎么使用?在哪里使用?
public class TestThis {
public static void main(String[] args) {
A a=new A();
System.out.println(a.getName());
System.out.println(a.getAge());
}
}
class A{
private String name;
private int age;
public A(){
this(2);
/*Constructor call must be the first statement
in a constructor.
报错的原因是,要放在第一句。所以不可以用this在构造器中使用两次去调用构造函数。
*/
//this("hua");
}
public A(int i){
this("hua");
this.age=10;
}
public A(String s){
this.name="hua";
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Test {
String name;
public String getName() {
this.aaa();
return name;
}
public void setName(String name) {
this.name = name;
}
public void aaa(){
System.out.println("方法aaa");
}
}