企业网站html5,怎么申请app软件,wordpress商城网站,北京做网络优化的公司#xff08;1#xff09;this代表当前对象的一个引用。所谓当前对象#xff0c;指的是调用类中方法或属性的那个对象。 最经常使用this关键字的情况#xff0c;是在对象的一个属性被方法或构造器的参数屏蔽时#xff0c;需要调用这个被屏蔽的属性#xff0c;如下#xf… 1this代表当前对象的一个引用。所谓当前对象指的是调用类中方法或属性的那个对象。 最经常使用this关键字的情况是在对象的一个属性被方法或构造器的参数屏蔽时需要调用这个被屏蔽的属性如下
class Person {private String name;private int age;public Person(String name, int age) {// 局部变量name,age把Person类的属性屏蔽this.name name;this.age age;}
}2this只能在方法内部使用表示对“调用方法的那个对象”的引用。但要注意如果在方法内部调用同一个类的另一个方法就不必使用this直接调用即可。当前方法中的this引用会自动应用于同一类中的其他方法。 如下
public class Apricot {void pick() {}void pit() {pick();}
}在pit()内部你可以写this.pick()但无此必要。编译器能帮你自动添加。只有当需要明确指出对当前对象的引用时才需要使用this关键字。
注有些人执意将this放在每一个方法调用和字段引用前认为这样“更清楚更明确”。但是造成别这样做。我们使用高级语言的原因之一就是它们能帮我们做一些事情。要是你把this放在一些没必要的地方就会使读你程序的人不知所措因为别人写的代码不会到处用到this。人们期望只在必要处使用this。遵循一种一致而直观的编程风格能节省时间和金钱。 3this不能用于静态方法。main方法也是静态的所以this也不能用于main方法。 Static方法是类方法先于任何的实例对象存在。即Static方法在类加载时就已经存在了但是对象是在创建时才在内存中生成而this指代的是当前的对象。
在方法中定义使用的this关键字它的值是当前对象的引用。也就是说你只能用它来调用属于当前对象的方法或者使用this处理方法中成员变量和局部变量重名的情况.。
而且,更为重要的是this和super都无法出现在static 修饰的方法中static 修饰的方法是属于类的该方法的调用者可能是一个类而不是对象。如果使用的是类来调用而不是对象则this就无法指向合适的对象。所以static 修饰的方法中不能使用this。 4可以使用this关键字调用重载构造方法。避免相同的初始化代码只能在构造方法中用并且必须位于构造方法的第一句。并且除了构造器之外编译器禁止在其他任何方法中调用构造器。 package this_constructor;
class Person {String name;int age;public Person() {System.out.println(Person() constructor!);}public Person(String name, int age) {this(); // 调用本类中无参构造方法this.name name;this.age age;System.out.println(Person(String name, int age) constructor!);}
}
public class ThisConstructor {public static void main(String[] args) {{new Person(小光, 25);}}
}【结果】
再看下例
public class Rectangle {private int x, y;private int width, height;public Rectangle() {this(0, 0, 0, 0); // 调用当前对象带有四个参数的构造器}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;}...
}有的读者经常会有这样的疑问如果我把this()调用无参构造方法的位置任意调换那不就可以在任何时候都可以调用构造方法了么实际上这样理解是错误的。构造方法是在实例化一个对象时被自动调用的也就是说在类中的所有方法里只有构造方法是被优先调用的所以使用this调用构造方法必须也只能放在类中。