面向对象的三大要素:封装,继承,多态
面向对象的思想是如何在java展现的呢? 就是通过类和对象
- 类是一组相关的属性和行为的集合。是一个抽象的概念。
- 对象是该类事物的具体表现形式。具体存在的个体。
- 成员变量事物的属性
- 成员方法事物的行为
一、 成员变量和局部变量的区别:
(1)在类中的位置不同
- 成员变量:类中方法外
- 局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同
- 成员变量:在堆中
- 局部变量:在栈中
(3)生命周期不同
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
- 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
- 成员变量:有默认值
- 局部变量:没有默认值,必须定义,赋值,然后才能使用
二、static关键字
Static关键字注意事项
- A:在静态方法中是没有this关键字的
静态是随着类的加载而加载,this是随着对象的创建而 存在的 → 静态比对象先存在
- B:静态方法只能访问静态的成员变量和静态的成员方法
(1)静态方法:
- A:成员变量:只能访问静态变量
- B:成员方法:只能访问静态成员方法
(2)非静态方法:
- A:成员变量:可以是静态的,也可以是非静态的
- B:成员方法:可以是静态的成员方法,也可以是非静态的成员方法
为什么静态方法不能访问非静态方法呢?
- 因为静态方法是随着类的加载而加载的,静态是优于对象存在的,你要访问非静态的东西,可是这时候可能它还不存在。
总结起来一句话:静态只能访问静态
三、静态变量和成员变量
- 静态变量属于类,所以也称为类变量
- 成员变量属于对象。所以也称为实例变量(对象变量)