当前位置: 代码迷 >> Java相关 >> 请教一个关于This关键字的问题!
  详细解决方案

请教一个关于This关键字的问题!

热度:74   发布时间:2012-04-28 09:51:56.0
请教一个关于This关键字的问题!
class Employee {
    private String name;
    private int age;
    public Employee (String name, int age) {
        this.name = name;
        this.age = age;
    }
}
在这段代码中,this.name = name;
             this.age = age;
哪个是局部变量,哪个是实例变量啊? 有点迷糊!
搜索更多相关的解决方案: 关键字  public  private  age  

----------------解决方案--------------------------------------------------------
首先看构造函数:
public Employee (String name, int age) {
        this.name = name;
        this.age = age;
    }
在这个构造函数中:
函数参数中的 name 是类 String 的一个实列变量,同时又是一个局部变量,
同样函数参数中的 age 也是一个局部变量,
再看看:  
private String name;
private int age;
这两个其中的 name是类String的实例变量,也是一个局部变量,他只在这个类定义的实列中起作用,age也是,

----------------解决方案--------------------------------------------------------
this.name(局部变量)=name(传进来的);
----------------解决方案--------------------------------------------------------
this.name是创建对象的成员变量,name是形参
----------------解决方案--------------------------------------------------------
成员变量和局部变量的区别
    A:作用范围
        成员变量:成员变量定义在类中,在整个类中都可以被访问.

        局部变量:作用于变量所在区域.也就是方法体内.
    B:初始化值
        成员变量:堆内存的数据都有默认初始化值.

        局部变量:必须按照如下步骤:定义,赋值,使用.
    C:存储位置
        成员变量:存储在堆内存中,随着对象的存在而存在.
             当对象变成垃圾被回收时,该对象中的成员变量就会消失.

        局部变量:存储在栈内存中,当方法被调用,或者语句被执行时才存在.
             当方法运行完,或者语句执行完毕,局部变量被自动释放.
this关键字
    (1)代表本类对象的引用
       谁调用,this代表谁.
    (2)什么时候使用
        A:局部变量隐藏成员变量(你就是这种情况)
        B:构造方法中
        C:用于减少实参中的对象个数.
            this本身谁调用就代表谁.所以,在方法内部,有一个this对象.
----------------解决方案--------------------------------------------------------
回看历史………………
----------------解决方案--------------------------------------------------------
this 是指向自身的引用 引用(this)+ “. ” 后面的那是成员变量……

this.name(成员变量) = name(形参);
this.age(成员变量) = age(形参);



----------------解决方案--------------------------------------------------------
  相关解决方案