成员变量和局部变量区别
1、在类中的位置不同
成员变量在类中、方法外
局部变量在方法中或方法声明上(形参)
2、在内存中位置不同
成员变量在堆内存
局部变量在栈内存
3、生命周期不同
成员变量随着对象的创建而存在,随着对象的消失而消失
局部变量随着方法的调用而存在,随着方法的调用完毕而消失
4、初始化值得问题
成员变量有默认值(使用时可不赋值,会用默认值)
局部变量没有默认值,必须先定义、赋值,然后才能使用(使用前必须赋值)
封装
1、概述
封装是面向对象三大特征之一;是面向对象编程语言对客观世界的模拟,成员变量都是隐藏在对象内部的,外界无法直接操作和修改
2、原则
将不需要对外提供的内容隐藏起来;
把属性隐藏,提供公共方法对其访问;
成员变量private,提供对应的getter/setter方法
3、好处
通过方法来控制成员变量的操作,提高了代码的安全性;
把代码用方法进行封装,提高了代码的复用性
4、this关键字
(1)this:代表所在类的对象引用
方法被哪个对象调用,this就代表那个对象
(2)什么时候用
局部变量和成员变量重名
构造方法
1、用处
主要用来给对象的数据进行初始化
2、构造方法格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
3、构造方法注意项与重载
不提供构造方法,系统会给出默认构造方法
提供了构造方法,重载条件和普通方法相同
构造方法也是可以重载的,重载条件和普通方法相同
4、抽象类可以有构造方法
抽象类可以有构造方法,只不过是不能直接创建抽象类的实例对象;在继承了抽象类的子类中,通过super(参数列表)调用抽象类中的构造方法。