整理笔记--Java基础(二)
面向对象:
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
权限修饰符:
this和super的区别:
1.this代表的是本类对象的引用 ,可以调用本类中的成员和构造方法,也可以调用父类中的成员(当本类中没有的时候)。
2.super代表的是父类空间的引用,只能调用父类中的成员和构造方法。
注意事项:
this和super只能在构造方法的第一个语句中调用,且不能同时存在。
在继承中构造方法的特点:
子类中的所有构造方法都会默认访问父类中的空参构造方法:super()。
如果在继承时父类中没有空参构造方法怎么办?
使用super()指定访问父类中的有参构造,把具体的参数传递给父类。
final:
修饰类,类不可被继承。
修饰方法,方法不可被重写。
修饰变量,变量变为常量,只能赋值一次。
final修饰局部变量:
1.如果局部变量是基本类型,它的值是不能变的。
2.如果局部变量是引用类型,它的地址值不能变,但是该对象中的内容是可以变化的。
final修饰变量的初始化时机:
1.在定义常量的时候直接显示初始化,final int x = 10。
2.在对象创建完毕之前完成初始化(在构造方法里面和构造代码块里)。
注意事项:
1.上面两张初始化方式不能同时进行。
2.当final修饰成员变量时,系统默认的初始化是无效的。
假设系统默认的初始化值是有效的,那么就代表引用数据类型默认的初始化值是null。但是被final修饰的变量,只能被赋值一次。那么,在使用该引用数据类型的变量时,只能使用null了,这样没有意义。
局部变量和成员变量的区别:
1.成员变量直接定义在类中,在类中有效。局部变量定义在方法中,参数上,语句中。在所属大括号有效。
2.成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
3.成员变量有默认的初始化值,其中引用数据的初始化值为null。局部变量没有默认的初始化值,使用前必须赋值。
静态变量和成员变量的区别:
1.成员变量所属于对象,所以也称为实例变量。静态变量所属于类,所以也称为类变量。
2.成员变量存在于堆内存中。静态变量存在于方法区中。
3.成员变量随着对象创建而存在,随着对象被回收而消失。静态变量随着类的加载而存在,随着类的消失而消失。
4.成员变量只能被对象所调用 。静态变量可以被对象调用,也可以被类名调用。
所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。
static:
1.修饰成员变量和成员方法
2.静态代码块