Java面向对象基础知识点7:this关键字使用

直接看代码

package com.hiyo.Class;
//this关键字的用法基础知识
//this的作用,
//1)this调用本类中的方法
//2)this表示本类中的属性
//3)this调用本类中的构造方法
class Person3 {
    private String name ;
    private int age ;
    public Person3() {//构造方法相互调用的时候,唯一的构造方法出口。
        //至少有一个构造方法不实用this进行调用
        System.out.println("产生一个新的Person对象");
    }
    public Person3(String name, int age) {
        this() ; //this调用无参数构造方法
        //this调用的构造方法必须放在第一行。
        //构造方法相互调用的时候,必须留一个构造方法作为出口
        this.name = name ;//this调用属性
        this.age = age ;
    }
    public String getInfo() {
        return "name:" + this.name + ", age : " + this.age ;
    }


    //this最重要的特征是表示当前对象
    //Java中的当前对象就是指当前正在调用类中方法的对象。
    public String getAllInfo() {
        System.out.println("Person类--->" + this ) ;
        //this表示调用方法的当前对象
        return null ;
    }

    //this用于对象的比较例子
    public boolean compare(Person3 per) {
        Person3 per1 = this;//this表示调用方法的当前对象
        Person3 per2 = per ;
        if(per1 == per2 ) {
            return true ;
        }
        if(per2 == null) {
            return false ;
        }
        if(per1.name.equals(per2.name)  && per1.age == per2.age ) {
            return true ;
        }else {
            return false ;
        }
    }
}
public class ThisDemo {
    public static void main(String[] arg) {
        Person3 per = new Person3("Yongjian",30) ;
        System.out.println(per.getInfo());
        Person3 per31  = new Person3();
        Person3 per32 = new Person3() ;
        System.out.println("Main中直接打印per31:" + per31);
        System.out.println("Main中直接打印per32:" + per32 );
        per31.getAllInfo() ;//方法调用打印this
        per32.getAllInfo() ;//方法调用打印this
        Person3 per33 = new Person3("Yongjian",18);
        Person3 per34 = new Person3("Yongjian",18);
        Person3 per35 = new Person3("Deng",30);
        if(per33.compare(per34))
            System.out.println("Per33==per34");
        else
            System.out.println("per3!=per34");
        if(per33.compare(per35))
            System.out.println("per33==per35");
        else
            System.out.println("per33!=per35");
    }
}

运行结果参考

产生一个新的Person对象
name:Yongjian, age : 30
产生一个新的Person对象
产生一个新的Person对象
Main中直接打印per31:com.hiyo.Class.Person3@21bcffb5
Main中直接打印per32:com.hiyo.Class.Person3@380fb434
Person类--->com.hiyo.Class.Person3@21bcffb5
Person类--->com.hiyo.Class.Person3@380fb434
产生一个新的Person对象
产生一个新的Person对象
产生一个新的Person对象
Per33==per34
per33!=per35

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值