搜索
首页Javajava教程Java中的两个特殊变量this和super

  在java中有两个非常非凡的变量:this和super,这两个变量在使用前都是不需要声明的。this变量使用在一个成员函数的内部,指向当前对象,当前对象指的是调用当前正在执行方法的那个对象。super变量是直接指向超类的构造函数,用来引用超类中的变量和方法。        因此它们都是非常有用的变量,下面我想介绍一下this和super的使用方法。

  1、this

  让我们先看一段代码吧:

  class PersonInformation

  {

   String name,gender,nationality,address;

   int age;

   void PersonInformation(String p_name,String p_gender,String p_nationality,String p_address,int p_age)

   {

    name=p_name;

    gender=p_gender;

    nationality=p_nationality;

    address=p_address;

    age=p_age;

   }

  }
 
  你会发现,在PersonInformation()函数中这个对象的方法提示可以直接访问对象的成员变量的,而且在同一个范围中,定义两个相同的名字的局部变量是不答应的,假如确实想使类的成员变量和方法的参数或方法自己定义的局部变量同名的话就需要想一种方法使成员变量与更它同名的方法参数或局部变量区分开来,这就要使用到this变量。下面我想改写一下上面的代码,使PersonInformation类的构造函数的每个参数都有与对象成员变量相同的名字,而成员变量的初值由参数给出。

  class PersonInformation

   {

    String name,gender,nationality,address;

    int age;

    void PersonInformation(String name,String gender,String nationality,String address,int age)

    {

    this.name=name;

    this.gender=gender;

    this.nationality=nationality;

    this.address=address;

    this.age=age;

    }

   }

  由上一例中,我们可以看出,该构造函数中必须使用this,this在方法体重用来指向引用当前正在执行方法的那个对象实例,this变量的类型总是为包含前执行方法的类,上例中,我们要区别参数name和成员变量name,写成name=name显然是不答应的,在参数或局部变量名与类成员变量同名的时候,由于参数或局部变量的优先级高,这样在方法体中参数名或局部变量名将隐藏同名的成员变量,因此,为了值名成员变量,你必须使用this显示地指明当前对象。

  有时候会碰到这种情况,我们全面的访问当前对象,而不是访问某一个个别的实例对象,我们也可以使用this,并利用Java中的toString()方法(它能够返回一个描述这个对象的字符串)假如把任何一个对象传递到System.out.PRintln方法中,这个方法调用这个对象的toString方法,并打印出结果字符串,所以,我们可以用如下方法System.out.println(this),来打印出任何对方法固有参数的当前状态。

  this还有一个用法,就是构造函数的第一个语句,它的形式是this(参数表),这个构造函数就会调用同一个类的另一个相对的构造函数。请看下面的例子:

  class UserInfo 

  {

   public UserInfo(String name)

   {

    this(name,aNewSerialNumber);

   }

   public Userinfo(String name,int number)

   {

    userName=name;

    userNumber=number;

   }

   }

  假如你调用UserInfor newinfotable = new UserInfo("Wayne Zheng")后,就会自动调用UserInfo(String 

 以上就是Java中的两个特殊变量this和super的内容,更多相关文章请关注PHP中文网(www.php.cn)! 


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
英伟达 RTX 40 SUPER 显卡即将发布,发布时间为1月9日0点英伟达 RTX 40 SUPER 显卡即将发布,发布时间为1月9日0点Jan 12, 2024 pm 07:00 PM

本站1月6日消息,技嘉的RTX4080SUPER、RTX4070TiSUPER和RTX4070SUPER显卡已经曝光,预计1月9日0点发布。如上图所示,英伟达RTX40SUPER显卡的logo发生了变化,SUPER全大写,而RTX20系列的则是小写的super。RTX20superlogo本站汇总RTX40SUPER显卡爆料规格和价格如下:RTX4080SUPER配备10240CUDA核心和16GB23Gbps256bitGDDR6X显存,999美元(当前约7153元人民币)或1199美元(当前

Java中的static、this、super、final怎么使用Java中的static、this、super、final怎么使用Apr 18, 2023 pm 03:40 PM

一、static  请先看下面这段程序:publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello,world!");//(2)}}看过这段程序,对于大多数学过Java的从来说,都不陌生。即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”,一点别的用处都没有,然而,它却展示了static关键字的主

一篇搞懂this指向,赶超70%的前端人一篇搞懂this指向,赶超70%的前端人Sep 06, 2022 pm 05:03 PM

同事因为this指向的问题卡住的bug,vue2的this指向问题,使用了箭头函数,导致拿不到对应的props。当我给他介绍的时候他竟然不知道,随后也刻意的看了一下前端交流群,至今最起码还有70%以上的前端程序员搞不明白,今天给大家分享一下this指向,如果啥都没学会,请给我一个大嘴巴子。

聊聊Vue2为什么能通过this访问各种选项中属性聊聊Vue2为什么能通过this访问各种选项中属性Dec 08, 2022 pm 08:22 PM

本篇文章带大家解读vue源码,来介绍一下Vue2中为什么可以使用 this 访问各种选项中的属性,希望对大家有所帮助!

Java中this方法怎么使用Java中this方法怎么使用Apr 18, 2023 pm 01:58 PM

一、this关键字1.this的类型:哪个对象调用就是哪个对象的引用类型二、用法总结1.this.data;//访问属性2.this.func();//访问方法3.this();//调用本类中其他构造方法三、解释用法1.this.data这种是在成员方法中使用让我们来看看不加this会出现什么样的状况classMyDate{publicintyear;publicintmonth;publicintday;publicvoidsetDate(intyear,intmonth,intday){ye

什么是this?深入解析JavaScript中的this什么是this?深入解析JavaScript中的thisAug 04, 2022 pm 05:02 PM

什么是this?下面本篇文章给大家介绍一下JavaScript中的this,并聊聊this在函数不同调用方式下的区别,希望对大家有所帮助!

使用this关键字的巧妙方式在jQuery中使用this关键字的巧妙方式在jQuery中Feb 25, 2024 pm 04:09 PM

jQuery中this关键字的灵活运用在jQuery中,this关键字是一个非常重要且灵活的概念,它用来引用当前正在操作的DOM元素。通过合理的运用this关键字,我们可以方便地操作页面中的元素,实现各种交互效果和功能。本文将结合具体的代码示例,介绍this关键字在jQuery中的灵活运用。简单的this示例首先,我们来看一个简单的this示例。假设我们有一

JavaScript如何改变this指向?三种方法浅析JavaScript如何改变this指向?三种方法浅析Sep 19, 2022 am 09:57 AM

JavaScript如何改变this指向?下面本篇文章给大家介绍一下JS改变this指向的三种方法,希望对大家有所帮助!

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)