java中this关键字的使用

简介: 《JAVA编程思想》中对this是这么介绍的:this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。我觉得说的很明白。this就是表示当前对象,即指向当前对象。下面具体展开this的用法。

一. 成员变量

publicclassUser {
privateStringname;
publicUser(Stringname){
this.name=name;
    }
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;//以this来区分局部变量和成员变量    }
@OverridepublicStringtoString() {
return"User{"+"name='"+name+'\''+'}';
    }
}

 大家应该都用过setter的方法,里面this.name = name;假设没有this,那么如何来区分调用setter方法的对象值和参数呢?所以this调用了该对象的成员变量name,把形参的值赋予对象中的name。

二、构造方法

一个类必须拥有大于等于1的构造方法,而在构造方法中,也可以用this去调用该对象的其他构造方法。如下面代码:

publicclassUser {
privateStringname;
publicUser(Stringname){
this.name=name;
    }
publicUser(){
this("ketang");
System.out.println("this在构造方法中必须放在最前面");
//放后面会报错:(编译器的规定)//Call to 'this()' must be first statement in constructor body    }
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
@OverridepublicStringtoString() {
return"User{"+"name='"+name+'\''+'}';
    }
}

构造方法中调用其他构造方法,我们可以用this来表示。

三、调用方法

this代表类的当前对象,对象可以调用方法,this也可以调用。某方法返回值为某类的时候,某个该类对象去调用该方法的时候,也可以通过return this表示返回该对象。

相关文章
|
5天前
|
存储 安全 Java
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
11 1
|
6天前
|
Java 开发者
Java中的并发编程:深入理解synchronized关键字
在Java并发编程的领域中,synchronized关键字是实现线程同步的基础工具之一。本文将深入剖析synchronized的作用机制,探讨其在多线程环境下确保数据一致性的重要性,并通过实际案例展示其应用。同时,文章还将比较synchronized与Lock接口的不同之处,以助于开发者更好地选择适合自己场景的同步策略。
|
5天前
|
缓存 安全 算法
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
8 0
|
5天前
|
缓存 安全 Java
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
19 4
|
5天前
|
安全 Java
Java面试题:解释synchronized关键字在Java内存模型中的语义
Java面试题:解释synchronized关键字在Java内存模型中的语义
9 1
|
5天前
|
设计模式 缓存 安全
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
11 1
|
14天前
|
存储 Java 数据库
Static关键字在Java中的多种用途解析
Static关键字在Java中的多种用途解析
|
15天前
|
Java
static关键字在Java中的作用
static关键字在Java中的作用
|
14天前
|
Java
Java面向对象 ( 多态 | final关键字 | 接口 )
Java面向对象 ( 多态 | final关键字 | 接口 )
|
16天前
|
Java
static关键字在Java中的应用场景与示例
static关键字在Java中的应用场景与示例