JAVA:this关键字

简介: 浅谈this关键字

this 在英语中是表示指示概念的代词,即用来指示或标识人或事物的代词。同理,在JAVA中代表它所在函数所属对象的引用,即哪个对象在调用this所在的函数,this就代表哪个对象

public class thisTest

{

   public static void main(String[] args)

   {

       student student1 = new student();

       student1.name = "小学生" ;

       student1.pupil();

//student1对象调用pupil()方法,而pupil()方法中的 this 指代的就是 student1 对象

       

       student student2 = new student();

       student2.name = "大学生" ;

       student2.pupil();  //第二次调用pupil()方法中,this 则指的是 student2 对象

   }

}

class student

{

   String name ;

   public void pupil()

   {

       System.out.println(this.name);

   }

}

this 中 主要有三个应用:

1.this 可以调用本类的属性,即类中的成员变量

class student

{

   String name ; // 成员变量name ,全局变量

   public void setName(String name)  //(参数name),局部变量

   {

       this.name = name ;  // 将局部变量的值传递给成员变量

   }

}

2. this 可以调用本类的方法,注意的是,static 修饰的方法不能够用 this 。

public class thisTest
{
   public static void main(String[] args)
   {
       new thisTest().pupil();  //创建一个对象调用pupil方法
   }
   public void pupil()
   {
       this.collegeStudent(); //调用collegeStudent方法
   }
   public void collegeStudent()
   {
       System.out.println("collegeStudent方法被调用了!");
   }
}

image.gif编辑

3.this 可以调用本类中的构造函数,注意:调用时要放在构造函数的首行

public class thisTest

{

   public static void main(String[] args)

   {

       thisTest thisTest = new thisTest();  //调用无参构造函数

   }

   public thisTest() //无参构造函数

   {

      this("小学生");  // 这句代码一定要放在本方法的第一行

   }

   public thisTest(String student)

   {

       System.out.println("我现在是一个" + student );

   }

}

image.gif

无参构造函数虽然没有输出,但是该函数中的 this 调用了 有参构造函数 ,而有参构造函数则输出我现在是一个(student变量),所以创建一个无参构造函数的对象也是有输出的。

目录
相关文章
|
2月前
|
存储 安全 Java
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
22 1
|
2月前
|
Java 开发者
Java中的并发编程:深入理解synchronized关键字
在Java并发编程的领域中,synchronized关键字是实现线程同步的基础工具之一。本文将深入剖析synchronized的作用机制,探讨其在多线程环境下确保数据一致性的重要性,并通过实际案例展示其应用。同时,文章还将比较synchronized与Lock接口的不同之处,以助于开发者更好地选择适合自己场景的同步策略。
|
2月前
|
缓存 安全 算法
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
22 0
|
2月前
|
存储 SQL Java
Java实现关键字模糊查询的高效方法及实践
实现关键字模糊查询的方法有多种,每种方法都有其适用场景。在选择合适的方法时,应考虑实际需求、数据量大小、性能要求等因素。正则表达式适用于处理简单文本或小数据集;数据库模糊查询适用于存储在RDBMS中的数据;而第三方库,则适合需要进行复杂搜索的大型项目。选用合适的工具,可以有效提升搜索功能的性能和用户体验。
46 6
|
2月前
|
算法 Java API
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
|
2月前
|
缓存 安全 Java
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
49 4
|
2月前
|
安全 Java
Java面试题:解释synchronized关键字在Java内存模型中的语义
Java面试题:解释synchronized关键字在Java内存模型中的语义
36 1
|
2月前
|
设计模式 缓存 安全
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
41 1
|
2月前
|
存储 安全 Java
(二) 彻底理解Java并发编程之 Synchronized关键字实现原理剖析
Synchronized 关键字(互斥锁)原理,一线大厂不变的面试题,同时也是理解 Java 并发编程必不可少的一环!其中覆盖的知识面很多,需要理解的点也很多,本文会以相关书籍和结合自己的个人理解,从基础的应用范围到底层深入剖析的方式进行阐述,如果错误或疑问欢迎各位看官评论区留言纠正,谢谢!
|
2月前
|
存储 缓存 Java
(一) 玩命死磕Java内存模型(JMM)与 Volatile关键字底层原理
文章的阐述思路为:先阐述`JVM`内存模型、硬件与`OS`(操作系统)内存区域架构、`Java`多线程原理以及`Java`内存模型`JMM`之间的关联关系后,再对`Java`内存模型进行进一步剖析,毕竟许多小伙伴很容易将`Java`内存模型(`JMM`)和`JVM`内存模型的概念相互混淆,本文的目的就是帮助各位彻底理解`JMM`内存模型。
下一篇
DDNS