java中this.的使用

33 篇文章 0 订阅
31 篇文章 0 订阅

java中this.的使用

现实中,哪都有重名,java这么神奇,咋可能没有呢?但是,好家伙,重名了咋整,本小朋友表示我心中很多问号??????还好还好,最近我发现个宝贝:“this.”,接下来我就简单介绍下this.

直接看例子叭:(注意,第一个是错例,即未用this.的)

public class delete {                        
    private int age;                         
    private String name;                     
                                             
    public void setAge(int age,String name){ 
        age=age;                             
        name=name;                           
    }                                        
    public int getAge(){                     
        System.out.println(age+name);             
        return age;                          
    }                                        
}                                            
public class using {
    public static void main(String[] args) {
        delete hero=new delete();
        hero.setAge(10,"JACK");
        hero.getAge();
    }
}

我们使它运行时,会发现:结果是0null。哦?我们不是赋值了吗?这啥嘛,咋还啥都没。没错,那是同名的锅,但是它可以把这锅甩掉,那就是用this. 好的,看下例子(理论上是对的,嘿嘿)

public class delete {                          
    private int age;                           
    private String name;                       
                                               
    public void setAge(int age,String name){   
        this.age=age;                          
        this.name=name;                        
    }                                          
    public int getAge(){                       
        System.out.println(age+name);          
        return age;                            
    }                                          
}                                                                                             
public class using {
    public static void main(String[] args) {
        delete hero=new delete();
        hero.setAge(10,"JACK");
        hero.getAge();
    }
}

输出会发现,问题完美解决。这就完美解决了形参名和属性名重名的问题,this.后的表示此类中的属性,未加的就是形参了。

另外,this也可以修饰方法,构造器。但this就表示的是当前对象了。在类的构造器中,我们可以使用”this.属性“或者“this.方法”方式调用当前的属性和方法。但是,通常情况下,我们都会选择省略this,但是若构造器的形参名和类的属性名相同时,我们必须显式的使用 this.变量 的方式,表明此变量是属性,而不是形参。

还有一点就是:一个构造器中可以调用另一个构造器
只需要将this( )放在那个构造器中的第一行就可以了。如下例:

public class delete {
    private int age;
    private String name;

    public delete(){
        System.out.println("i am a monkey");
    }
    public delete(int age,String name){
        this();  //就调用了上一个构造器
        this.age=age;
        this.name=name;
    }
    public int getAge(){
        System.out.println(age+name);
        return age;
    }
}
public class using {
    public static void main(String[] args) {
        delete hero=new delete(10,"liupi");
        hero.getAge();
    }
}

构造器的调用需要注意:
1.在类的构造器中,可以显式的使用this(形参)的方式调用本类中的其他构造器。
2.构造器中不可以用this()调用自己。
3.如果有n个构造器,则最多有n-1个构造器可以使用this(形参)调用
4.this(形参)必须放构造器的首行。
5.故不可以连续的调用多个构造器。

最后,我想说的是:this表示的是当前的对象或者当前正在创建的对象。而构造器的调用也只是借用了其他的逻辑,而未改变该构造器。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值