JAVA笔记 -- this关键字
程序员文章站
2023-10-29 10:06:46
this关键字 一、 基本作用 在当前方法内部,获得 当前对象的引用 。在引用中,调用方法不必使用 这样的形式来说明,因为编译器会自动的添加。 必要情况 : 1. 为了将对象本身返回 2. 引用外部工具传递方法时,为了将自身传递到外部方法 二、 在构造器中调用构造器 一个类可能有很多个构造器( 重载 ......
this关键字
一、 基本作用
在当前方法内部,获得当前对象的引用。在引用中,调用方法不必使用
this.method()
这样的形式来说明,因为编译器会自动的添加。
必要情况:
- 为了将对象本身返回
java public class leaf{ int i = 0; leaf increment(){ i++; return this; //明确指出当前对象引用,返回当前对象 } }
-
引用外部工具传递方法时,为了将自身传递到外部方法
class peeler{ static apple peel(apple apple){ //remove pell return apple; } } class apple{ apple getpeeled(){ return peeler.peel(this); //这里的this是必要的,将自身传递给外部方法 } }
二、 在构造器中调用构造器
一个类可能有很多个构造器(重载构造器),如果在一个构造器中调用另一个构造器,避免重复代码,就可以调用其他构造器。这时,就需要
this
关键字。
-
调用构造器的时候,必须放在起始处
class callconstructor(){ callconstructor(int i){ system.out.println(i); } callconstructor(string str){ this(6); //一定要放在起始处 system.out.println(str); //! this(6); //放在这里,编译器会报错 } }
-
调用构造器的时候,只能调用一次
class callconstructor(){ callconstructor(int i){ system.out.println(i); } callconstructor(double n){ system.out.println(n); } callconstructor(string str){ this(6); //一定要放在起始处 //! this(1.0); //放在这里编译器会报错,不可以调用两次 //其实说白了也是调用构造器的时候,一定要放在开头 system.out.println(str); } }
-
除了构造器之外,其他方法禁止调用构造器
class callconstructor(){ callconstructor(int i){ system.out.println(i); } callconstructor(double n){ system.out.println(n); } void commmethod(){ //! this(6); //这是错误的!一定不可以这么写 system.out.println("common method"); } }
三、 static的含义
static
顾名思义,就是静态的意思。这个关键字还会在后续继续探究。 -
static方法
static方法
就是没有this的方法。static方法
不能调用非静态方法,反过来是可以的。 static方法具有全局函数的语义