当前位置: 首页 > news >正文

Java面向对象 this

this

在Java中,this 是一个特殊的引用变量,它引用了当前对象实例。当在类的非静态方法或构造方法中使用时,this 关键字指代当前的对象实例。它经常用于区分对象的成员变量和局部变量,或者调用其他重载的方法。

以下是一些使用 this 关键字的示例:

  1. 引用对象的成员变量
    当一个局部变量与一个成员变量同名时,可以使用 this 来引用成员变量。
public class Person {  private String name;  public Person(String name) {  this.name = name;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  
}

测试

public class PersonTest {  public static void main(String[] args) {  Person person = new Person("Alice");  System.out.println(person.getName()); // 输出: Alice  person.setName("Bob");  System.out.println(person.getName()); // 输出: Bob  }  
}

在这里插入图片描述

  1. 调用同一类中的其他方法
    可以使用 this 来调用同一类中的其他方法。
public class MyClass {public void method1() {System.out.println("Method 1");this.method2(); // 使用this来调用method2()}public void method2() {System.out.println("Method 2");}
}

测试

public class MyClassTest {public static void main(String[] args) {MyClass myClass = new MyClass();myClass.method1();}
}

在这里插入图片描述

  1. 在构造方法中引用当前对象
    在构造方法中,可以使用 this 来引用当前正在创建的对象。
public class Student {private String name;private int age;public Student(String name, int age) {this.name = name; // 引用成员变量namethis.age = age;   // 引用成员变量age}public Student(String name) {this.name = name; // 引用成员变量namethis.age = 18;     // 设置默认年龄为18}public String getName() {return name;}public int getAge() {return age;}
}

注意:this 只能用于类的非静态方法中。在静态方法中,不能使用 this,因为静态方法是类级别的,而不是实例级别的。

测试

public class StudentTest {public static void main(String[] args) {Student student = new Student("Alice", 20);System.out.println(student.getName()); // 输出: AliceSystem.out.println(student.getAge());  // 输出: 20}
}

在这里插入图片描述

http://www.lryc.cn/news/295333.html

相关文章:

  • 阿里云游戏服务器租用价格表,2024最新报价
  • 2-1 动手学深度学习v2-Softmax回归-笔记
  • laravel distinct查询问题,laravel子查询写法
  • AI助力农作物自动采摘,基于DETR(DEtection TRansformer)开发构建作物生产场景下番茄采摘检测计数分析系统
  • C语言——字符串大小写互换
  • macOS的设置与常用软件(含IntelliJ IDEA 2023.3.2 Ultimate安装,SIP的关闭与开启)
  • http伪造本地用户字段系列总结
  • Hadoop-IDEA开发平台搭建
  • block任务块、rescue和always、loop循环、role角色概述、role角色应用、ansible-vault、sudo提权、特殊的主机清单变量
  • Qt:QFileDialog
  • 我的QQ编程学习群
  • 【C++】类与对象(四)——初始化列表|explicit关键字|static成员|友元|匿名对象
  • ChatGPT高效提问—prompt常见用法
  • 使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置
  • 泛型、Trait 和生命周期(上)
  • <网络安全>《18 数据安全交换系统》
  • Kafka 生产调优
  • springboot162基于SpringBoot的体育馆管理系统的设计与实现
  • Interpolator:在Android中方便使用一些常见的CubicBezier贝塞尔曲线动画效果
  • Nacos安装,服务注册,负载均衡配置,权重配置以及环境隔离
  • Vue3导出数据为txt文件
  • Simulink中getConfigSet用法
  • 【Algorithms 4】算法(第4版)学习笔记 05 - 2.2 归并排序
  • mybatis mapper sql include用法实现sql块复用
  • 正点原子--STM32通用定时器学习笔记(2)
  • Flask实现异步调用sqlalchemy的模型类
  • Pocket2Mol + Generation of Atom Positions生成原子位置的方法有什么?联合概率是什么?
  • 区分手机小程序以及电脑小程序;左滑、导航键返回拦截
  • Web APIs 2 事件
  • 网易腾讯面试题精选----90道设计模式面试题及答案