Java关键字this详解

article/2025/9/15 9:11:08

this关键字概述

在实例方法或构造函数中,this 是对当前对象的引用调用其方法或构造函数的对象。
可以使用 this 在实例方法或构造函数中引用当前对象的任何成员。

this与字段一起使用

使用this关键字的最常见的情况是字段被方法或构造函数中的参数覆盖,用来区分实例变量和局部变量。

未使用this:

public class Point {public int x = 0;public int y = 0;//constructorpublic Point(int a, int b) {x = a;y = b;}
}

使用this:

public class Point {public int x = 0;public int y = 0;//constructorpublic Point(int x, int y) {this.x = x;this.y = y;}
}

构造函数的参数覆盖对象的​​字段,要引用Point字段x,构造函数必须使用this.x

this与构造函数一起使用

在构造函数中,使用this关键字调用同一类中的另一个构造函数。这样做称为显式构造函数调用。

public class Rectangle {private int x, y;private int width, height;public Rectangle() {this(0, 0, 1, 1);}public Rectangle(int width, int height) {this(0, 0, width, height);}public Rectangle(int x, int y, int width, int height) {this.x = x;this.y = y;this.width = width;this.height = height;}...
}

此类包含一组构造函数。每个构造函数初始化矩形的部分或全部成员变量。构造函数为其初始值不是由参数提供的任何成员变量提供默认值。例如,无参构造函数Rectangle在坐标 0,0 处创建一个 1x1。两参数构造函数调用四参数构造函数,传入宽度和高度,但始终使用 0,0 坐标。和以前一样,编译器根据参数的数量和类型确定要调用的构造函数。
如果存在,另一个构造函数的调用必须是构造函数的第一行。

注:this()和super()必须放在构造函数的第一行,this和super不能同时出现在一个构造函数里面。

在这里插入图片描述

扩展

实例变量

实例变量是指在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

类的每个对象维护它自己的一份实例变量的副本。

局部变量

定义在方法之中的变量。

含义

实例变量:定义在类中但在任何方法之外。(New出来的均有初始化)

当一个对象被实例化之后,每个实例变量的值就跟着确定;

实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;

访问修饰符可以修饰实例变量;

实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;

实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。

异同

局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别)

实例变量的对象赋值为null。

局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。

实例变量和局部变量允许命名冲突。

类变量(静态变量)

被static关键字修饰的变量。

类方法

static修饰的方法。

实例方法

由类创建实例调用。

class A {public void instanceMethod() {System.out.println("实例方法");}public static void staticMethod() {System.out.println("静态方法");//编译报错instanceMethod();new A().instanceMethod(); }
}class B {public void callInstanceMethod() {//实例方法。new A().instanceMethod();//静态方法。A.staticMethod(); }
}

在这里插入图片描述

不以物喜,不以己悲


http://chatgpt.dhexx.cn/article/LR0LNvCk.shtml

相关文章

Java关键字与保留字

1.关键字和保留字 关键字(Keyword)的定义和特点 1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 2.特点:关键字中的所有字母都是小写 保留字(reserved word) Java保留字:现有Java版本尚未使用,但以后的…

Java关键字及其作用详解

Java中的关键字有如下表格中这么多 表中null true false严格来讲不是关键字 下面分别解释一下每个关键字的含义。 private一种访问控制方式:私用模式protected一种访问控制方式:保护模式public一种访问控制方式:共用模式abstract表明类或者…

java关键字详解

首先来说说我对关键字的理解! 一、什么是关键字? 关键字是java语言中一些被赋予特定意义的一些单词,不可以把它当做标识符来使用。 在java中有两个特殊的关键字goto、const,我们称这两个关键字为保留字。 二、java中有哪些关键…

Java关键字大全

以上是我们学习Java从小白到入门能够接触到的关键字。 下面整理一些我们刚开始学习Java会经常用到的关键字的用法概述: 一,基本数据类型(4类8种): 四类:整型,浮点型,字符型&#xf…

【java基础】java关键字总结及详解

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量…

unity 2018 Android SDK下载26.1.1

1.网上搜索教程下载android studio 默认安装到这个界面 打开sdk manager 2.选择版本 记住路径 3.选择26.1.1 (NDK没测试) ok下载 4.打开unity 替换sdk路径

Android SDK 国内镜像源

Android SDK 国内镜像源 东软信息学院开源镜像站:http://mirrors.neusoft.edu.cn/ 引用:https://www.jianshu.com/p/5f596c60f569

AndroidSDK下载

AndroidSDK下载 貌似目前官网上已经没有单独的SDK下载安装包了,官网推荐的是下载包含有Android SDK的Android Studio,官网链接 Android Studio 的一个功能非常强大的用来做安卓开发试调的官方出品的工具。Ps:官网下载,需科学(翻&a…

最新最详细Android SDK下载安装与配置

最近要学习一门叫Android应用开发的专业课,需要安装Ecplise以及配置Android运行环境配置。但是对于怎么配置,我是一点也不了解,网上的教程也是五花八门,在参考了许多教程,以及不断地尝试下,最终成功了&…

Android SDK Manager 无法下载

在Android SDK Manager 中安装Android 8.1.0 SDK Platform时报错导致无法安装。 错误信息:Downloading SDK Platform Android 8.1.0, API 27, revision 1 Download finished with wrong size. Expected 65606517 bytes, got 65738431 bytes. 1、如图在SDK Manager中…

android sdk 最新国内镜像下载,【Android SDK Manager】SDk国内镜像下载地址

中国科学院开源协会镜像站地址:ubuntu IPV4/IPV6: http://mirrors.opencas.cn 端口:80服务器 IPV4/IPV6: http://mirrors.opencas.org 端口:80fetch IPV4/IPV6: http://mirrors.opencas.ac.cn 端口:803d 上海GDG镜像服务器地址:blog http://s…

最详细的ECLIPSE Android SDK下载安装及配置教程

最近Neo突发神经,想要将学过的一些计算机视觉、机器学习中的算法都放到移动设备上去跑跑,因为移动开发是大势所趋嘛,希望能够通过这样一个实践的过程,找到一些新的灵感(该不会是为了赚钱吧…),我…

mac安装Android SDK

1、利用Android sdk包进行安装 下载Android sdk包后,点击tools下的android执行文件,SDK manager打开空白。看网上教程需要重装sdk解决。重装sdk后,SDK manager打开正常但无法选中各安装包前的复选框和安装按钮(整个SDK manager点…

android sdk根目录,Android SDK位置

Android SDK位置 我有Xamarin Studio,我需要指定Android SDK位置。 我以前曾在我的电脑上使用Xamarin Studio,出于某种原因,我需要再次输入。 我已进入以下位置: C:\Users\**username**\AppData\Local\Android\android-sdk Xamarin Studio不接受此位置并显示以下消息: No …

android sdk集合 下载,Android SDK下载列表(含海内下载)-下

Android SDK下载列表(含国内下载)-下 前一篇博客中借用了三位前辈的博客、里面是SDK的下载列表、 当然、里面不可能是完整的、也有很多都没有收录、但是我们可以从那些已经收录了的链接里的命名习惯中可以知道我们想要下载的链接是什么 当我们需要的版本不在那些下载列表中时、…

前缀和【超详细讲解前缀和】

输入一个长度为n的整数序列。 接下来再输入m个询问,每个询问输入一对l, r。 对于每个询问,输出原序列中从第l个数到第r个数的和。 输入格式 第一行包含两个整数n和m。 第二行包含n个整数,表示整数数列。 接下来m行,每行包含两…

字符串匹配的KMP算法--前缀和后缀的详解

字符串匹配的KMP算法 作者: 阮一峰 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任…

什么是前缀索引?

一、什么是前缀索引? 所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效率更快&#…

Motrix - 清爽开源免费的全能下载工具 (跨平台、支持 BT / 磁力链 / 百度网盘)

简介 Motrix 是一款开源免费且界面非常清爽简约的全能型下载软件,它跨平台支持 Windows、Mac、Linux 三大系统,可以支持下载 HTTP、FTP、BT、磁力链接以及下载百度网盘等资源 Motrix 软件界面非常简约清爽,个人认为设计上比较精美&#xff0…

一个功能齐全的 BitTorrent 库,支持 DHT、磁力链接、加密等功能

【公众号回复 “1024”,免费领取程序员赚钱实操经验】 大家好,我是章鱼猫。 今天给大家推荐三个不错的开源项目。 1、Bt 这是一个 Java 的 BitTorrent 库。支持 DHT、磁力链接、加密等功能的 Java 库,可以根据自己的喜好开发和定制 BT 工具&a…