面向对象的三大特性:
一、封装性
1. 成员变量和局部变量的区别
-
成员变量定义在类中,整个类的可以访问;局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。
-
成员变量存在于堆内存的对象中。局部变量存在于栈内存的方法中(局部代码块)。
-
成员变量随着对象的创建而存在,随着对象的消失而消失;局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
2、成员变量和静态变量的区别
- 生命周期不同,成员变量随着对象的创建而存在,随着对象的被回收而释放。静态变量随着类的加载而存在,随着类的消失而消失。
- 调用方式不同。成员变量只能被对象调用。静态变量可以用对象调用,还可以用类名调用。
- 数据的存储位置不同。成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。静态变量数据存储在方法区(的静态区),所以叫对象的共享数据。
3、构造函数
作用:可以给对象初始化,创建对象的时候就调用了。
-
在类中如果定义了构造了,那么默认的构造函数就没有了
-
定义构造函数的原因,对象一产生就具有的内容。
4、关键字
- this哪个对象调用就代表哪个对象。关键字this也可以用于在构造函数中调用其他构造函数,但对this的调用必须是构造函数的第一句。
- static的特点:
- static修饰的成员被所有的对象所共享。
- static优先于对象存在,static修饰的成员随着类的加载就已经存在了
- 可以被类名直接调用
- 静态使用的注意事项:
- 静态方法只能访问静态成员。
- 静态方法不能使用this或者super关键字
- 主函数是静态的
5、主函数
- public:因为权限是最大的。
- static:不需要对象,直接用主函数所属类名调用即可。
- void:主函数没有具体的返回值。
- main:函数名,不是关键字,只是一个jvm识别的固定名字
- String[] args:这是主函数的参数列表,是一个数据类型的参数。
- 格式固定。