【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()互相调用

相关文章
|
3天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
3天前
|
缓存 安全 Java
Java volatile关键字:你真的懂了吗?
`volatile` 是 Java 中的轻量级同步机制,主要用于保证多线程环境下共享变量的可见性和防止指令重排。它确保一个线程对 `volatile` 变量的修改能立即被其他线程看到,但不能保证原子性。典型应用场景包括状态标记、双重检查锁定和安全发布对象等。`volatile` 适用于布尔型、字节型等简单类型及引用类型,不适用于 `long` 和 `double` 类型。与 `synchronized` 不同,`volatile` 不提供互斥性,因此在需要互斥的场景下不能替代 `synchronized`。
2047 3
|
1月前
|
JavaScript 前端开发 Java
java中的this关键字
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。自学前端2年半,正向全栈进发。若我的文章对你有帮助,欢迎关注,持续更新中!🎉🎉🎉
51 9
|
1月前
|
设计模式 JavaScript 前端开发
java中的static关键字
欢迎来到瑞雨溪的博客,博主是一名热爱JavaScript和Vue的大一学生,致力于全栈开发。如果你从我的文章中受益,欢迎关注我,将持续分享更多优质内容。你的支持是我前进的动力!🎉🎉🎉
51 8
|
1月前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
47 4
|
1月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
7月前
|
Java
Java中的this关键字
Java中的this关键字
71 1
|
7月前
|
Java
Java的this关键字的使用
Java的this关键字的使用
|
7月前
|
Java API
深入理解Java中的this关键字
深入理解Java中的this关键字
125 0
|
7月前
|
Java
Java面向对象编程:就近原则与this关键字详解
Java面向对象编程:就近原则与this关键字详解
73 0