1.this关键字
this代表当前对象(当前new的对象),储存对象的地址
①能够在构造器的首行用来调用本类中的其他构造器
this(参数列表);
其他行不行,必须是首行
②用来区分成员与局部同名问题
如果出现同名问题,默认就近原则
如果出现同名问题,想要指代调用同名的成员,需要this.成员调用
不存在同名问题,知道成员的时候this.可以省略
this在构造器中默认指代当前new的对象
this在成员方法中,默认指代当前调用成员方法的对象
***构造器之间不能相互调用(避免出现死循环的问题)
在静态的被static修饰的方法中不能使用this
2.static关键字
static是成员修饰符,只能修饰成员,不能修饰局部
成员变量:
不被static修饰的变量–>实例变量俗称成员变量
被static修饰的–>静态变量|类变量
成员方法同成员变量
无论是否被static关键字修饰都定义在成员位置,都是成员
使用方法:
①通过对象使用,通过对象的引用调用
引用.静态变量名
引用.静态方法名(参数列表);
②通过类名调用
类名.静态变量名
类名.静态方法名(参数列表)
静态的是属于类的
成员是属于对象的
静态内容是独一份的,在类第一次加载完成之后就进行初始化,只初始化一次
静态变量在静态区中(方法区中),所有对象共享的唯一的静态内容
加载内容是先静态后成员
3.block块
{} 自成作用域, 具有语义化特点
定义位置
{} 定义在方法中或者语句块中 --> 局部代码块|普通语句块 执行时机–>所在方法调用时候
{} 定义在类中方法外 -->构造块 执行时机–>创建对象的时候
static {} 定义在类中方法外 --> 静态块 静态块在main方法之前执行
构造块中的代码在编译期间会被编译到要执行的构造器代码上面,所以构造块代码在构造器代码之前执行
如果存在多个构造块,从上到下依次执行
在类第一次加载完成之后,就执行,并且只执行一次
如果存在多个静态块,从上到下依次执行
执行顺序: 静态块–>main–>创建对象了–>构造块–>构造器
4.Debug调试工具
Debug 调试工具 ****
作用:
1.追踪程序的执行流程
2.定位异常的位置
3.查看程序执行过程中变量的变化情况
4.根据程序的执行过程学习第三方框架的源码
①设置断点
(当程序执行到断点所在位置,会进入到debug调试窗口,后面的每一行语句的执行由程序猿控制)
在行号的后面点击一下设置断点,点一下取消断点
②debug模式下运行
step over F8 下一步跳过 下一步有方法的调用也不进入,不跟随执行,直接执行下一行
step in F7 步入 下一步 下一步如果是自定义方法的调用,进入跟随执行,jdk提供的类库中的方法的调用,不进入
Force step in alt+shift+F7 强制步入 下一步 下一步如果是自jdk提供的类库中的方法的调用,强制进入跟随执行
step out 下一步调出方法的调用,直接结束调用执行进入下一步
Run to cursor 跳到光标所在位置继续执行
5.private关键字
数据不安全,存在隐患
直接操作成员变量,直接赋值,只要符合类型的要求,就能成功赋值;
解决隐患:
在其他类中,不允许直接访问一个类中的成员
private关键字 私有的
成员修饰符,只能修饰成员不能修饰局部的
一个成员一旦私有,只能在本类中使用,外部类无法使用
私有的成员需要配合公共的访问方式一起使用–>方法
设置器 setter
访问器 getter
1.不能直接访问操作成员
2.设置器或者访问器中,方法中可以进行逻辑的判断等…
6.封装
面向对象的三大特性: 封装 继承 多态
封装: 隐藏内部的实现细节,对外提供公共的访问方式
优点:
隐藏内部的实现细节,对外提供公共的访问方式
提高安全性
提高复用性
体现:
类,方法等都是封装的体现
属性私有化是封装的体现
私有是封装
封装不仅仅是私有
JAVABEAN 指代一些列类
代表模板类,根据对象抽取共性定义的类,统一称为javabean
定义javabean的规范:
1.类是公共的
2.至少提供一个空构造,按需提供带参
3.属性私有化
4.公共的访问方式