this在Java中的必须使用和不推荐使用的情况
在面向对象中this是很常见的,通常是用来指当前对象,以下情况为必须使用this的情况。
1.在setter方法中,参数名和成员变量名相同时,必须使用this加以区分。
示例代码:
public class Person {
private byte age;
private String sex;
private String name;
public Person(byte age,String sex,String name){
this.age=age;
this.sex=sex;
this.name=name;
}
}
2.在某些方法中,由于命名原因造成两个变量名相同,但是作用范围不同,这时同样需要对成员属性添加this进行区分。
示例代码:
public void printName(){
String name="local name";
System.out.println("local variable value is "+name+"name belongs to Object "+this.name);
}
3.在容器类和部件类中,部件往往要接受一个容器的引用作为参数,这时我们可以简单的使用this即可。
示例代码:
/*
* initialize AdView
*/
private void initAdView(){
//初始化广告视图
AdView adView = new AdView(this);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
//设置广告出现的位置(悬浮于屏幕右下角)
params.gravity=Gravity.BOTTOM|Gravity.RIGHT;
//将广告视图加入Activity中
addContentView(adView, params);
}
4.在构造函数中调用另一个构造函数使用this
示例代码:
public class Person {
private byte age;
private String sex;
private String name;
public Person(){
System.out.println("persion constructor");
}
public Person(byte age){
this();
this.age=age;
}
public Person(byte age,String sex,String name){
this(age);
this.sex=sex;
this.name=name;
}
}
那么以上情况下是必须使用this的场合,那么场合不适合使用this呢
由于this表示的是类的对象,因此在静态成员变量或方法就无法使用"this.数据域"的形式。
那么不推荐的情况就是在不发生冲突的情况下每个成员属性或方法都使用this.貌似有点不好,因为如果我们有一天需要将某个方法或成员变量改成static,那就麻烦了,必须还要手动去掉"this."。
示例代码:
public class Person {
private byte age;
private String sex;
private String name;
private static String nation="I am from China";
public static void getNation(){
//错误使用
//System.out.println(this.nation);
System.out.print(nation);
}
}
更多技术文章请访问
http://thinkblog.sinaapp.com
分享到:
相关推荐
this关键字的使用详细介绍:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不...
java this方法的使用 java this方法的使用 java this方法的使用
哪些情况下使用this,以及如何使用,举例加说明,this与super比较
要注意的是this只能在类中的非静态方法中使用, 静态方法和静态的代码块中绝对不能出现this。this也可作为构造函数来使用。在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针, 而...
Java中的this和super的用法
Java中this内存原理图示
java this关键字的使用包括代码及注释,适合初学者
java中this 与super的详解
78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中...
今天突然想到this的问题,搜了一波,终于找到个能用的,建个项目main运行一下就清楚多了。
java中this和supper关键字的详细区分
Java中this和super的用法。本文很详尽的描述了两者的区别。并用代码例证。
Java语言中This关键字应用浅析,看完后帮助于JAVA中类的操作。
JAVA中this的使用
Java this用法
对于java中this、super进行详细的解释
JAVA中this的使用.docx
Java中static、this、super、final用法.doc
java中this与super用法
java代码-使用java解决用this关键字方法重载的源代码 ——学习参考资料:仅用于个人学习使用!