Java中this关键字的详解

在java的学习中,当接触到类这一章的时候,就会避免不了的接触到this关键字。

首先,this关键字指向的是当前对象的引用

作用:

this.属性名称

指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)

  1. class Test_08{
  2. public static void main(String [] args){
  3. //调用无参构造函数,
  4. Person p1 = new Person();
  5. p1.setAge(20);
  6. p1.setName('张三');
  7. p1.setGender('男');
  8. System.out.println(''+p1.getName()+' 今年'+p1.getAge()+'岁 性别为:'+p1.getGender());
  9. }
  10. }
  11. class Person{
  12. private String name;
  13. private int age;
  14. private String gender;
  15. Person(){}
  16. Person(String name,int age,String gender){
  17. this.name = name;
  18. this.age = age;
  19. this.gender = gender;
  20. }
  21. public void setName(String name){
  22. name = name;
  23. }
  24. public String getName(){
  25. return name;
  26. }
  27. public void setAge(int age){
  28. age = age;
  29. }
  30. public int getAge(){
  31. return age;
  32. }
  33. public void setGender(String gender){
  34. gender = gender;
  35. }
  36. public String getGender(){
  37. return gender;
  38. }
  39. }

对Test_08运行后发现,调用的set方法并没有对 对象中的变量进行赋值,是因为,传入的参数变量名与类中属性变量名重复,因此我们在set方法和有参构造方法中加上了this.类属性名称,这样就可以完成对 对象变量的赋值。如下图:

this.方法名称

用来访问本类的成员方法

this();

访问本类的构造方法

()中可以有参数的 如果有参数 就是调用指定的有参构造
           注意事项:
                            1.this() 不能使用在普通方法中 只能写在构造方法中
                            2.必须是构造方法中的第一条语句

例如,当我们把this()放在有参构造函数的末尾时,例如用this('哈哈');我们先不管语法是否有错误,试着按照程序的运行来判断一下结果,我们可以看出,当在创建对象时,假定调用含有this(“哈哈”)的构造函数,则刚开始存放的值,会被this(“哈哈”)调用的只含有一个参数的构造函数覆盖,也就是说,最后的name会变成“哈哈”,这是与我们的初衷相违背的,而且运行结果也是报错,

当我们换到构造方法的第一句时,则不会有这种错误,因为它并不会影响到后面name的赋值。

我们接下来把this语句放在构造函数的第一句位置,

就不会有报错

我的个人公众号:

憨憨的快乐生活

想要学习和了解更多java相关知识,可以关注一下

(0)

相关推荐

  • 《 高淇Java300集视频》:【3】面向对象基础

    面向过程(Procedure Oriented)和面向对象(Object Oriented,OO)都是对软件分析.设计和开发的一种思想,它指导着人们以不同的方式去分析.设计和开发软件. 面向对象编程, ...

  • java中static关键字

    static关键字: 特点: 1.static是一个修饰符,用于修饰成员.(成员变量,成员函数)static修饰的成员变量称之为静态变量或类变量. 2.static修饰的成员被所有的对象共享. 3.s ...

  • 18 this关键字

    18 this关键字 本质 谁调用,代表谁 常用操作 1.调用本类的属性 ​ this.属性名 //例如类中的Set方法 public void setAge(int age){ this.age=a ...

  • 从零开始学Java(十一)Java对象的创建及使用

    ✔上一篇Java零基础系列文章我们说到了Java中的面向对象,今天这篇文章主要围绕下边几个知识点: Java对象的创建和使用方法 为什么要画内存图?(非常重要) 程序在什么情况下会出现空指针异常呢? ...

  • C\C 中的 struct 关键字详解

    struct关键字是用来定义一个新的类型,这个新类型里面可以包含各种其他类型,称为结构体. 1. 什么是结构体 结构体(struct)是一种自定义的数据类型,就是把一组需要在一起使用的数据元素组合成一 ...

  • Java中方法的重载详解(含系统配套视频)

    一.方法的概念 在之前我们学习了方法的定义,方法实现指定功能的代码块的组合,基本的定义 如下: 访问修饰符[static] 返回值类型[如果不需要返回值使用void]方法名(参数类型 参数名,参数类型 ...

  • 从零开始学Java(十四)详解Java中的static关键字(上)

    ✔上一篇Java零基础系列文章我们说到了Java种this关键字的使用,今天继续来说说Java中的static关键字,篇幅较多,分为上下两篇更新,这篇文章主要内容: Java中static关键字 Ja ...

  • 从零开始学Java(十四)详解Java中的static关键字(下)

    接上篇Java-static关键字(上),今儿继续写完,这篇文章主要内容如下: Java static静态代码块 Java static静态方法 Java static静态代码块 静态代码块的语法格式 ...

  • Java 中的关键字

    Java 中有多少个关键字,有大小写之分吗? Java 中有 48 个关键字在使用 + 两个保留关键字未使用,共 50 个关键字. Java 关键字全部都由是小写组成. Java 中保留关键字分别是哪 ...

  • 《伤寒论》中的咳嗽治法详解

    <伤寒论>本论398条中,论及咳嗽的条文计10条13次,涉及到多种病因和多个脏腑. 1.饮邪作祟致咳 饮邪作祟致咳是<伤寒论>论及咳嗽所提到的重要病机.人体水液代谢与肺.脾(胃 ...

  • 古诗词中常见修辞手法详解及鉴赏示例

    修辞手法,是鉴赏诗歌时重点需要鉴赏的对象之一,下文为古诗词中常见修辞手法及鉴赏示例,认真阅读,对诗歌鉴赏定会有所助益. 1.比喻 用一种事物或情景来比作另一种事物或情景.可分为明喻.暗喻.借喻.有突出 ...

  • 字中六合的用法详解, 地支六合如何运用

    地支六合比较复杂,分为合来.合去.合绊,并且还分合吉.合凶,绝非一般的八字命书上说的,看到六合就说好,试想,得病了,是否也是和疾病相合,如何能好,八字中六合的用法详解如下:  1.合来 从字面的意思 ...

  • 什么是从革格?八字格局中从革格详解关于八字命理解析

    什么是从革格?详细了解什么是从革格就得先了解什么是从革,八字命理术语解释中,以金曰从革,从革也就是代表五行中的金,即十天干之庚金与辛金. 八字格局从革格诗诀: 秋月金居一类看.名为从革便相欢. 如无炎 ...