面向对象小知识点
一、成员变量和局部变量
1、位置
成员变量:在类的内部,与成员方法平级
局部变量:在方法体中。
2、内存中的位置
成员变量:属于对象,存在于堆中。
局部变量:随着方法的调用而产生,随着方法的销毁而销毁,在栈区中。
3、作用域(有效范围)
成员变量:作用范围在整个类中。
局部变量:作用范围就在该方法体中。
4、两者的默认值
成员变量:不用先赋值,带有默认值。如int类型默认值为0,String类型默认值为null。
局部变量:要赋值才能使用。
5、出现重名作用域问题
当局部变量与成员变量出现重名时,作用域小的会覆盖作用域大的 (局部变量作用域小)
先给成员变量进行赋值,然后调用方法,输出的内容是方法体中定义好的局部变量。
二、构造方法
构造方法:类似普通方法的使用,分为构造方法的实现与调用。
构造方法的调用: new 类名();
构造方法的实现: public 类名(){}
注意:当我们在类中没有写构造方法时,系统会自动生成无参构造,当我们写了构造方法时,就不会自动生成了。
构造方法的执行步骤:
1、分配内存空间
2、给属性赋初始值
3、调用构造方法实现(new Cat(“加菲猫”)这一步就在此实现)
3、把开辟好的空间赋值给引用变量(下面的例子中Cat cat = new Cat()的cat,就是引用变量)
三、this的使用
this:当前对象,谁调用this所在的方法,this就代表谁
应用:this.属性----->调用当前对象的属性
如上图所示,首先对Cat类new了一个对象,然后实现带参构造,把“加菲猫”这个属性值传入,然后把new好的空间分配给引用变量cat,最后cat.nameString的值就是“加菲猫”。