您的第二个例子很重要。
this引用在构造函数中可用,这意味着构造函数是针对某个对象(当前正在创建的对象)执行的。
原则上,当您创建新对象时(使用
new运算符),JVM将为其分配一些内存,然后在该新创建的对象上调用构造函数。JVM还确保在构造函数之前不会调用其他任何方法(这使得它变得特别)。
实际上,在机器级别,构造函数是具有一个特殊的隐式
this参数的函数。该特殊参数(运行时传递)使对象方法和静态方法有所不同。换一种说法:
foo.bar(42);
转换为:
bar(foo, 42);
第一个参数命名为
this。另一方面,
static方法按原样称为:
Foo.bar(42);
转换为:
bar(42);
Foo这只是源代码中几乎不存在的名称空间。



