广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java关键字之this用法详解
  • 220
分享到

Java关键字之this用法详解

Javathis关键字Java关键字Javathis 2023-05-19 17:05:02 220人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一. this关键字1. 简介2. 作用二. 代码案例1. 代表当前类对象2. 调用类中的属性3. 调用类中的方法4. 调用类的构造方法三. 结语一. this关键字 1. 简介

一. this关键字

1. 简介

我们知道,this是”这个“的意思。在java中表示当前类的对象, 可以理解成指向对象本身的一个指针 。通俗地说就是表示当前类对象”自己“,它是在对象被创建时自动产生的 我们使用this,可以用来调用本类的属性、方法、构造方法。 当我们在构造方法中使用this时,this表示的是当前类的成员变量。

2. 作用

根据上面的简介,我们可以提取出this关键字的几个核心作用:

  • 表示当前类对象;
  • 调用当前类中的属性;
  • 调用当前类的方法或构造方法。

二. 代码案例

接下来分别针对以上几种情况,给大家设计几个案例进行讲解。

1. 代表当前类对象

所谓代表当前类对象,就是指当我们创建一个类对象时,比如Person p=new Person();p就是一个类对象,我们可以通过p.属性p.方法的形式来进行调用。但如果我们是在Person类里面调用Person的属性或方法,其实可以直接使用this来替代当前的对象,即this.属性this.方法。这里的this,就是当前类对象!

另外一个更常用的场景是在接口回调中。比如某个类的构造方法带有一个接口类型的参数,当前类又实现了该接口,当我们在当前类中调用这个构造方法时,就可以直接传递this作为参数。参考下面的Person代码:


public class Person implements Sport {
    // 姓名
    public String name;
    // 年龄
    private int age;

    //定义带有3个参数的构造方法,第3个参数是自定义的Sport接口类型
    public Person(String name, int age, Sport sport) {
	System.out.println("我的名字是:" + name + ",年龄:" + age);
	sport.pingpang();
    }

    @Override
    public void pingpang() {
	System.out.println("我会打乒乓球");
    }

    // 才艺展示
    public void show() {
        //这里的第3个参数,我们就可以直接用this作为参数,代表当前类对象!!!
        Person p = new Person("马龙", 30, this);
    }
}

Sport接口代码参考如下:


public interface Sport {
    //打乒乓球
    void pingpang();
}

在上面的Person类中,我们定义了带有3个参数的构造方法,其中第3个参数是自定义的Sport接口类型。在show()方法中,我们调用Person的构造方法,当传递第3个参数时,就可以直接用this作为参数传递进去。因为Person类实现了Sport接口,所以Person类也就属于Sport类型,符合第3个参数的类型要求。因为this表示当前类对象,所以我们可以直接用this作为参数。

当然,这里涉及到了接口的概念和用法,我们还没有学习到。大家先别急,后面会专门给大家讲解接口,本案例只是先供大家参考。

2. 调用类中的属性

大多数时候,一般的普通方法访问其他方法、成员变量时不必使用this关键字。但如果方法的形参与类中属性的名称相同,我们可以通过“this.属性名”的形式进行区分。


public class Student {
    private String name;
    private int age;
    private String sex;

    public Student(String name, String sex, int age) {
	//方法的形参与属性名相同,可以通过“this.属性名”的形式进行区分
	this.name = name;
	this.sex = sex;
	this.age = age;
    }

    public static void main(String[] args) {
	Student stu=new Student("一一哥", "男", 35);
	System.out.println("name="+stu.name+",sex="+stu.sex+",age="+stu.age);
    }
}

在上面的代码中,name、age、sex都是被private修饰的,因此我们不能在类的外部进行直接设置。为了解决这个问题,我们可以给Student类添加一个构造方法,然后在构造方法中传递参数进行修改。我们在 Student类的构造方法中使用this关键字调用name、age 和 sex属性,以此区分方法的形参。这里的this就表示当前对象,this.name=name语句是一个赋值语句。等号左边的this.name是当前对象的成员变量name,等号右边的name表示方法形参接收的数值。

3. 调用类中的方法

this关键字的另一个作用,就是让类中一个方法,访问该类里的另一个方法。


public class Computer {
    // 电脑品牌
    private String loGo;

    // 播放音频
    public void playSound() {
	System.out.println("播放音频...");
    }

    // 播放视频
    public void playVideo() {
	// 同时播放音频
	this.playSound();
	System.out.println("播放视频...");
    }
    
    public static void main(String[] args) {
        //静态方法中不能使用非静态成员
	//this.playVideo();
	Computer com=new Computer();
	com.playVideo();
    }
}

在上面的代码中,我们在playVideo()方法中调用了playSound()方法,此时就可以通过”this.方法名“的形式进行调用。因为this可以代表任何对象,当this出现在某个方法体中,它所代表的对象是不确定的,但它的类型是确定的,它代表的就是当前类的实例对象。只有当这个方法被调用时,它所代表的对象才被确定下来,谁在调用这个方法,this 就代表谁。

但是我们不能在带有static关键词的方法中通过this.属性名this.方法名来引用,这是因为Java语法有规定,静态成员不能直接访问非静态成员。在后面学习static关键字时,会再给大家详细讲解这一点!

4. 调用类的构造方法

我们也可以使用this关键字,实现对构造方法的调用,此时是通过this()这样的语法格式来实现的。this()括号中可以有参数,如果有参数就是在调用指定的有参构造方法。


public class Computer {
    // 电脑品牌
    private String logo;
    // 电脑颜色
    private String color;
    
    //无参构造方法
    public Computer() {
	// this(a,b)调用另一个构造方法
	this(null, null);
    }

    //1个参数的构造方法
    public Computer(String logo) {
	// this(a,b)调用另一个构造方法
	this(logo, null);
    }

    //2个参数的构造方法
    public Computer(String logo, String color) {
	System.out.println("logo=" + logo + ",color=" + color);
    }

    public static void main(String[] args) {
	Computer com=new Computer("苹果");
    }
}

大家注意,this()格式不能在普通方法中使用,只能在构造方法中使用。而且在构造方法中使用时,必须放在第一条语句!

三. 结语

至此,就给大家把this关键字讲解完毕了,现在你知道this的作用了吗?对于我们来说,掌握this的3个核心作用即可:

  • 表示当前类对象;
  • 调用当前类中的属性;
  • 调用当前类的方法或构造方法。

到此这篇关于Java关键字之this用法详解的文章就介绍到这了,更多相关Java关键字this内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java关键字之this用法详解

本文链接: https://www.lsjlt.com/news/213512.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java关键字之this用法详解
    目录一. this关键字1. 简介2. 作用二. 代码案例1. 代表当前类对象2. 调用类中的属性3. 调用类中的方法4. 调用类的构造方法三. 结语一. this关键字 1. 简介...
    99+
    2023-05-19
    Java this关键字 Java关键字 Java this
  • Java关键字详解之final static this super的用法
    目录1. final 关键字:2. static 关键字:3. this 关键字:4. super 关键字:final,static,this,super 关键字总结 正文开始@A...
    99+
    2022-11-12
  • Java关键字this与super详解用法
    目录一、this 关键字的使用1. 概述2. 作用3. 使用3.1 修饰属性和方法3.2 调用构造器3.3 返回当前对象二、super关键字的使用1. 概述2. 使用3. 使用3.1...
    99+
    2022-11-13
  • Java this关键字的使用详解
    目录1. 先看一段代码,并分析问题2. 深入理解 this3. this 的注意事项和使用细节4. this 的案例1. 先看一段代码,并分析问题 public class ...
    99+
    2022-11-12
  • Java中super和this关键字详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2022-11-13
  • JavaScript中的this关键字用法详解
    目录this的绑定call与apply当方法失去主语的时候,this不再有?不可见的调用总结先举一个生活例子: 小明正在跑步,他看起来很开心 这里的小明是主语,如果没有这个主语,那么...
    99+
    2023-05-19
    JavaScript this关键字 JavaScript 关键字 JavaScript this
  • Java的this关键字用法
    本篇内容主要讲解“Java的this关键字用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的this关键字用法”吧!一、this关键字的作用this关键字除了可以强调本类中的方法还具有...
    99+
    2023-06-20
  • Java this关键字的使用案例详解
    目录Boy类Girl类BoyGirlTest类总结通过一个小案例来学习、理解一下this关键字的使用~~~ Boy类 package myjava1; public class B...
    99+
    2022-11-12
  • Java类中this关键字与static关键字的用法解析
    目录前言1:修饰属性,表示调用类中的成员变量。2:this修饰方法3:this表示当前对象的引用前言 今天给大家总结介绍一下Java类中this关键字和static关键字的用法。 t...
    99+
    2022-11-13
  • 【Java 基础】构造方法和 this 关键字详解
    《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,...
    99+
    2023-08-16
    java 开发语言 后端 jvm
  • java方法及this关键字原理分析详解
    目录步骤1 、给顾客增加一个吃饭的方法步骤 2 、 没有加static的属性和方法,一定需要先new对象步骤 3 、 用new出来的对象去执行eat方法步骤 4 、 怎么理解c.ea...
    99+
    2022-11-12
  • java之assert关键字用法案例详解
    Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion)。,它的语法形式有如下所示的两种形式: 1、assert con...
    99+
    2022-11-12
  • Java关键字之instanceof详解
    目录1、obj 必须为引用类型,不能是基本类型2、obj 为 null3、obj 为 class 类的实例对象4、obj 为 class 接口的实现类5、obj 为 class 类的...
    99+
    2022-11-12
  • Java关键字之native详解
    目录1、JNI:Java Native Interface2、用C语言编写程序本地方法一、编写带有native声明的方法的java类二、使用javac命令编译所编写的java类,生成...
    99+
    2022-11-13
  • Java中this和super关键字的使用详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2022-11-13
    Java this super关键字 Java this关键字 Java super关键字
  • Java基础之this关键字的使用
    一、this关键字的作用 this关键字除了可以强调本类中的方法还具有以下作用。 1.表示类中的属性 2.可以使用关键字调用本类中的构造方法 3.this表示当前对象 1.1表示类中...
    99+
    2022-11-12
  • js中的this关键字详解
    this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 复制代码 代码如下:   function test(){  ...
    99+
    2022-11-15
    js this关键字
  • java中构造方法及this关键字的用法实例详解(超详细)
    目录初识构造方法 构造方法的使用 初识this this.xx的用法this()用于构造函数的调用总结初识构造方法  我们上篇讲了java中类...
    99+
    2022-11-13
  • java中this关键字的三种用法
    this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this的用法在java中大体可以分为3种:普通的直接引用,this相当于是指向当前对象本身。(推荐教程:java入门教程)形参与成员名字重名,用this来区分:p...
    99+
    2020-08-05
    java入门 java this
  • Java基础之关键字final详解
    Java-关键字:final 1 .final可以用来修饰的结构: 类、方法、变量 2.final 用来修饰一个类: 此类不能被其他类所继承 比如:String类、Sys...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作