广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如何使用Java this来区分当前对象?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-30分类:Java技术浏览:1039


导读:相信大家在学习Java的过程在会遇到各种各样的问题,例如:如何使用Java this来区分当前对象?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么讲解这道题的。

相信大家在学习Java的过程在会遇到各种各样的问题,例如:如何使用Java this来区分当前对象?那么下面我们一起来看看惠州北大青鸟学术部老师是怎么讲解这道题的。

Java 中为解决变量的命名冲突和不确定性问题,引入关键字 this 代表其所在方法的当前对象的引用:

构造方法中指该构造器所创建的新对象;

方法中指调用该方法的对象;

在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法。

this 只能用在构造器或者方法中,用于获得调用当前的构造器方法的对象引用。可以和任何的对象引用一样来处理这个this对象。

说明:

当实例变量和局部变量重名,JAVA 平台会按照先局部变量、后实例变量的顺序寻找。即,方法中使用到的变量的寻找规律是先找局部变量,再找实例变量。如果没用找到,将会有一个编译错误而无法通过编译。

如果使用 this.a,则不会在方法(局部变量)中寻找变量 a ,而是直接去实例变量中去寻找,如果寻找不到,则会有一个编译错误。

在一个方法内,如果没有出现局部变量和实例变量重名的情况下,是否使用 this 关键字是没有区别的。

在同一个类中,Java 普通方法的互相调用可以省略 this. ,而直接使用方法名 + 参数。因为 Java 编译器会帮我们加上。

例子

下面的代码显示了如何使用 this 关键字来引用一个实例变量,它的名字被一个局部变量隐藏。

public class Main {  int num = 2014; // An instance variable
 void printNum(int num) {
   System.out.println("Parameter num: " + num);
   System.out.println("Instance variable num: " + this.num);
 }  public static void main(String[] args) {
   Main tt6 = new Main();
   tt6.printNum(2000);
 }
}

上面的代码生成以下结果。

Parameter num:2000

Instance variable num:2014

注意

下面的代码显示了如何使用 this 关键字来引用一个实例变量,它的名字被一个局部变量隐藏。

例如,以下代码非常常见:

Student 类声明了一个实例变量 id。在其 setId() 方法中,它还命名参数 id,并使用 this.id 引用实例变量。

它还使用 this.id 在其 getId() 方法中引用实例变量id。

public class Student {  private int id; // An instance variable
 public void setId(int id) {
   this.id = id;
 }  public int getId() {    return this.id;
 }
}

我们可以使用关键字 this 来限定实例方法名称。以下代码显示使用关键字 this 调用 m2() 方法的 m1() 方法。

public class Main {
 void m1() {
   // Invoke the m2() method
   this.m2(); // same as "m2();"
 }

 void m2() {
   // do something
 }
}

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java15.jpg

Java


Java技术排行
标签列表
网站分类
文章归档
最近发表