当前位置: 代码迷 >> Java相关 >> this. 的使用 小弟有些不懂 请高手指点
  详细解决方案

this. 的使用 小弟有些不懂 请高手指点

热度:85   发布时间:2010-07-23 16:43:46.0
this. 的使用 小弟有些不懂 请高手指点
这只是一部分

class Person {
   private String name;
   private int age;
   public Person(String[] args){
      this.setName(name);//this.  用在程序中是什么意思呢??  起强调?  不理解 希望高手帮忙
      this.setAge(age);//
}
   public void tell() {
     Sustem.out.println("姓名:"+getName()+",年龄"+getAge());
}
   public String getName(){
       return  name;
     }
    public void setName(String n){
         name = n;
     }
    public int getAge(){
       return  age;
     }
    public void  setAge(int a) {
     if  (a>=0  &&  a<150)   {
          age  =  a;
     }
   }
}
  public class ConsDemo{
    public static void main(String[] args) {
      Person  per =  new Person("张三",30);
      per.tell();
   }
}

----------------解决方案--------------------------------------------------------
this.setName(name)//调用本类(Person)中的setName方法,

同样的

this.setAge(age);//调用Person类中的setAge方法
----------------解决方案--------------------------------------------------------
this是指当前对象(也就是说Person本身):
1、this.setName(name); this.setAge(age);意思是由person自己调用这两个方法进行设值。。

2、this.name="abc";this.age=20;意思是把两个值赋给当前对象的属性, 当属性和形参的名字相同时,this就是区分它们,如:
public void setName(String name){
         this.name = name;
     }

   
3、this(String[] s)---》意思是调用当前对象的构造方法,
   
    注:第3点只能在构造方法中用。。。


----------------解决方案--------------------------------------------------------
支持ls
lz注意ls第二点。既可明白:
public void setName(String name){
         name = name;//如这里去掉this的话,那么赋值不会成功, 因这个name是局部变量,与本类定义的name无关系
     }
另外注意一点:
public Person setName(){
         return this;//这里返回的是本类的对象.
     }
----------------解决方案--------------------------------------------------------
回复 3楼 hsh_1987
谢谢您的指导 谢谢 ~  我会了  不过第3点 我还是不太懂 不过我会努力地
----------------解决方案--------------------------------------------------------
回复 4楼 gameohyes
谢谢高手的指导
我会了 不过您提到的第2种我还不太理解  我会努力的  谢谢
----------------解决方案--------------------------------------------------------
  相关解决方案