我们在前面一起学习java中类和对象的许多相关知识今天将继续学习。一定有很多java零基础新手小白通过阅读和阅读java培训课程有接触的时候this关键词知识,今天下面要讲的内容是javathis关键字让我们一起学习相关知识。
This就是java语言中众多关键字中的一个关键字,this关键字表示目前这个对象,也就是说,谁调用这个方法,这个对象就是谁。每个对象都可以使用关键字访问this自己的引用,this引用可以隐式或显示的调用该方法对象的实例变量和其他方法,this的参考名称不属于实体变量,事实上,在调用对象方法时,this作为一个隐形参数传递给这种方法。
This关键词主要有三个应用:一是this关键字可以访问本类中的实例变量,当局部变量与成员变量同名时,必须使用访问成员变量this;二是本类中的实例方法可以访问this关键字;三是this关键字可以访问本类中的其他结构方法,使用this([参数列表]),这里需要注意,使用当this访问这一类的结构方法时,它只能写在结构方法中,并且是第一个句子;当当this关键字访问结构方法时,不能出现递归调用。
可以使用This关键字作为参数传递,当你想把自己作为参数传递给其他对象时,你也可以使用它this。如:public class A{ public A(){ new B(this).print(); } public void print(){ System.out.println("From A!"); } public static void main(String[] args) { new A(); } } public class B{ A a; public B(A a){ this.a = a; } public void print(){ a.print(); System.out.println("From B!"); } }
运行结果:From A!
From B!
This关键字还有另一种用法,用于构造方法的第一行(只能出现在第一行),其他构造方法是通过当前的构造方法调用的,目的是重用代码。调用时的语法格式如下:this(实际参数列表)请参见以下代码: public class Date { private int year; private int month; private int day; //业务要求,默认创建的日期为1970年1月1日 public Date(){ this.year = 1970; this.month = 1; this.day = 1; } public Date(int year,int month,int day){ this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } } public class DateTest { public static void main(String[] args) { Date d1 = new Date(); System.out.println(d1.getYear() + "年" + d1.getMonth() + "月" + d1.getDay() + "日"); Date d2 = new Date(2008 , 8, 8); System.out.println(d2.getYear() + "年" + d2.getMonth() + "月" + d2.getDay() + "日"); } }
运行结果如下:
1970年1月1日
2008年8月8日
希望大家能通过以上方式面对this关键词的介绍和概念的解读,在编写程序的过程中可以熟练地使用this关键词。
最后需要强调的是,静态成员不能直接访问非静态成员,即static修改方法不能访问不适用于static修改的普通方法。对于static修改方法,类别可以直接调用该方法。如果this关键字用于static修改方法,则该关键字不能指向合适的对象。因此,this不能用于static修饰的方法。以上是java中this关键词的相关知识。