首页 > 其他分享 >浅谈this关键字

浅谈this关键字

时间:2022-11-02 13:46:22浏览次数:42  
标签:浅谈 Person int age 关键字 String public name

java中的this关键字用法灵活,用途很广,本文谈一下其的基础用法

  • this表示表示当前正在被调用的对象
	public Person show(){
		return this;
	}
}

public class ThisTest{
	public static void main(String[]args){
		Person pr1=new Person();
		System.out.println(pr1.show());
		Person pr2=new Person();
		System.out.println(pr2.show());
	}
}

output:
Person@15db9742
Person@6d06d69c
  • this用于调用本类的属性和方法
	public int age;
	public String name;
	public void tell(){
		System.out.println("小朋友真棒");
	}
	public void show(){
		System.out.println("姓名:"+this.name+"年龄:"+this.age);
		this.tell();
	}
	
}

public class ThisTest{
	public static void main(String[]args){
		Person pr=new Person();
		pr.name="张三";
		pr.age=13;
		pr.show();
	}
}

output:
姓名:张三年龄:13
小朋友真棒
  • 用于辨别局部变量同名(也是表示调用本类的属性)
class Person{
	public int age;
	public String name;
	public Person(int age,String name){//当局部变量和属性成员变量同名,将遵守局部变量优先原则
		this.age=age;
		this.name=name;
	}
	
}

public class ThisTest{
	public static void main(String[]args){
		
	}
}


  • this关键字调用本类的构造方法
    初学时我感觉这个作用好像没什么必要,不用这个照样可以,现在体会到了他的一点好处
    用this调用构造函数避免构造方法重复代码
class Person{
	public int age;
	public String name;
	public String sex;
	public Person(){};
	public Person(int age){
		this.age=age;
	}
	public Person(int age,String name){
		this.age=age;
		this.name=name;
	}
	public Person(int age,String name,String sex){
		this.age=age;
		this.name=name;
		this.sex=sex;
	}
	
	
}


通过以后构造方法的内容可以看出,各个构造方法中有很多重复的代码
可以通过this调用本类的构造方法来优化

class Person{
	public int age;
	public String name;
	public String sex;
	public Person(){};
	public Person(int age){
		this.age=age;
	}
	public Person(int age,String name){
		this(age)                        //this.age=age;
		this.name=name;
	}
	public Person(int age,String name,String sex){
		this(age,name);                   //this.age=age;
		this.sex=sex;                     //this.name=name;this.sex=sex;
	}
	
	
}


我也不知道为什么需要这样,可能是比较优雅吧

标签:浅谈,Person,int,age,关键字,String,public,name
From: https://www.cnblogs.com/swtaa/p/16850731.html

相关文章

  • 从火热的双十一大促浅谈制造业大整合趋势
    一年一次的双十一结束了,一年中最受关注的电商优惠大战让那些主营业务是TOC的企业估计都又要笑得睡不着觉,又要赚得盆满钵满了。国外的企业早就眼馋得不行,苹果和三星也开始加......
  • 浅谈 MySQL 新的身份验证插件 caching_sha2_password
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。介绍从MySQL8.0.4开始,MySQL默认身份验......
  • 浅谈PHP设计模式的装饰器模式
    简介装饰器模式又叫做装饰者模式,属于结构型的设计模式。指的是在不改变原类文件和使用继承的情况下动态扩展这个对象的功能,从而修饰源数据。组成:抽象构件(Component)角色......
  • 浅谈笛卡尔树
    笛卡尔树(CartesianTree),是一种二叉树,每个节点都有两个信息\((x_i,y_i)\),其中把\(x_i\)单独拎出来看是一棵二叉搜索树(\(ls_u<u<rs_u\)),而把\(y_i\)拎出来是一个小根堆(\(......
  • 浅谈 web3
     web3——互联网的未来?  web3,很多人觉得是个骗局,是在割韭菜。 因为大部分介绍web3的文章都离不开NFT、数字货币、区块链、比特币、以太坊、元宇宙等概......
  • 理解vim工作的几个关键字
    理解vim工作的几个关键字下面我们再来认识一下vim,理清下面的vim的几个名词,这样方便我们以后更好的去使用和进阶vim:缓冲区(Buffer),窗口(Window),标签(Tab),标记......
  • Java多线程-线程关键字(二)
    Java中和线程相关的关键字就两:volatile和synchronized。volatile以前用得较少,以后会用得更少(后面解释)。它是一种非常轻量级的同步机制,它的三大特性是:1、保证可见性,即强制......
  • C++:44---关键字virtual、override、final
    一、虚函数概念:在函数前面加virtual,就是虚函数虚函数的一些概念:只有成员函数才可定义为虚函数,友元/全局/static/构造函数都不可以虚函数需要在函数名前加上关键字virtual成......
  • 浅谈大数据时代智能工厂能源管理系统的设计和应用
    陈盼安科瑞电气股份有限公司上海嘉定201801摘要:如今,传统制造业正在发生着巨大变革与创新,智能工厂概念应运而生,其中,能源管理系统是工厂生产资源管控的重要平台,是现代信息技......
  • 浅谈智能电表的预付费远程抄表及多回路监测系统设计及应用
    陈盼安科瑞电气股份有限公司上海嘉定201801【摘要】随着社会的发展,人工抄表这种费时费力、低效的工作模式将被淘汰,智能电表远程抄表系统应运而生。智能电表既能远程抄表,......