【Java this关键字】如何使用以及注意点 访问成员变量,访问成员方法,构造方法内调用构造方法

简介: 【Java this关键字】如何使用以及注意点 访问成员变量,访问成员方法,构造方法内调用构造方法


⭐ this 关键字的作用

在 Java 中,this指针是一个 关键字 ,它用于引用当前对象🤲。当方法的参数和对象的字段具有相同的名称时,this关键字可以用于 标识 哪个变量是指对象的字段,哪个是方法的参数

📃 具体来说,当使用this时,它指的是当前对象的引用。

⭐ this 注意点

☆ this 在 Java 中并不是指针的意思

☆ this在这里只是一个简单的指向作用,谁调用它,就指向谁

☆ 一般来说 Java 程序中 如果方法的参数与类成员变量重名,希望在方法内部调用成员变量,怎么办呢,这时候就要使用this关键字,若方法参数不与当前类成员变量重名时,则可以省略 this ,不过为了增强代码可读性,建议方法参数与被调用多个成员变量名称相同,即使用 this 。

⭐ this 用法

⭐ Java 中的 this 必须放在非静态方法内, this 代表自身, 在 Java 程序内用法主要有以下几种用法

1. 访问成员变量
this.data;
2. 访问成员方法
this.function();
3. 使用this在构造方法内引用其它构造方法
this();

访问成员变量

public class DefaultClass {
  String name;
  int age;
  String address;
  // 构造方法
  public DefaultClass(String name, int age, String address) { // java构造方法:给重要属性赋初始值
    this.name = name;
    this.age = age;
    this.address = address;
  }
  // get方法
  public String getName() {
    return this.name;
  }
  // set方法
  public void setName(String name) {
    this.name = name;
  }
}

访问成员方法

public class DefaultClass {
  // 方法1
  public void default1() {
    System.out.println("我是方法1");
  }
  // 方法2
  public void default2() {
    // this访问方法1
    this.default1();
    // 这里的this可省略,效果一样
    // Default1(); 
  }
}

在构造方法内调用构造方法

public class DefaultClass {
  String name;
  // 无参构造器
  public DefaultClass() {
    System.out.println("我是无参构造器");
  }
  // 有参数的构造方法
  public DefaultClass(String names) {
    // 调用无参构造fangfa
    this();
    this.name = name;
    System.out.println("我是有参数构造器");
  }
  // get方法
  public String getName() {
    System.out.println("姓名为:", name);
  }
  // 程序入口函数
  public static void main(String[] args) {
    // 类实例化
    DefaultClass d = new DefaultClass();
    d.DefaultClass("dongfang_project");
    d.getName();
  }
}

不出意外的话程序输出

我是无参构造器
我是有参数构造器
姓名为:dongfang_project

注意: 只能在构造方法中使用this()调用其他的构造方法,在构造方法中使用this()调用构造方法的语句必须位于当前构造函数的第一行,只能出现一次, 不能在一个类中的两个构造方法中使用this()互相调用

相关文章
|
17天前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
26 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
20天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
33 3
|
22天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
43 2
|
26天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
1月前
|
Java
Java访问外网图片地址时,如何添加代理?
【10月更文挑战第14天】Java访问外网图片地址时,如何添加代理?
24 2
|
1月前
|
设计模式 Java 测试技术
Java零基础-构造方法详解
【10月更文挑战第5天】Java零基础教学篇,手把手实践教学!
20 1
|
1月前
|
小程序 Java
小程序访问java后台失败解决方案
小程序访问java后台失败解决方案
44 2
|
1月前
|
小程序 JavaScript Java
小程序访问java后台
小程序访问java后台
27 1
|
1月前
|
Java
java构造方法时对象初始化,实例化,参数赋值
java构造方法时对象初始化,实例化,参数赋值
50 1
|
1月前
|
存储 Java
深入理解java对象的访问定位
这篇文章深入探讨了Java对象的访问定位机制,比较了使用句柄和直接指针两种主流的对象访问方式,并指出了它们各自的优势,例如句柄访问在对象移动时的稳定性和直接指针访问的速度优势。
33 0
深入理解java对象的访问定位