This
1、基本含义
指代当前new的对象,在普通方法中,this总是指向调用该方法的对象,在构造方法中,this总是指向正要初始化的对象
2、使用方法
1)在构造器的首行时,用来调用本类中的其他构造器 this(参数列表)
2)让类中的一个方法,访问该类的另一个方法(this.方法名)或属性(this.属性名),常用来访问属性
3)当局部变量和成员变量同名时:先默认就近原则,其次指代的成员用this.调用,此时this指代的是new创建的那个对象,当不存在同名问题的时候,指代的成员可以省略。
3、注意
1)在多个构造器之间,不能通过进行相互调用——这样会造成死循环
2)this关键字在存储时,存储指代的是对象的地址
3)当在构造器中遇到this指代的对象,默认代表当前new的对象
4)当在成员方法中遇到this,默认指代调用成员方法的对象
5)this不能用于static方法
Static
1、基本含义
Static表示静态的,是所有对象所共用的(共用的意思就是说:所有的对象共用这么一个static,只要其中有任何一个对象对其进行了修改,别的其他对象就会看到这个改变),所有的静态内容,都是跟类存在的,在对象还没有的时候,它就已经存在了
2、声明
1)在类中用static声明的成员变量叫做静态成员变量
·静态成员变量是类的公用变量,是属于类的,所有对象都可以进行修改
·对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享只要有一个对其进行修改,别的对象也会看到这个改变
·一般都使用————类名.类属性进行调用
2)用static声明的方法叫静态方法
·不需要通过对象进行调用,可以使用————类名.方法名()进行调用
·在调用方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员,也不可以出现this关键字
·在静态内容中:只能直接使用静态内容,不能直接使用成员内容,需要跟随对象使用成员
·在成员内容中:可以直接使用成员,可以直接使用静态
Block
1、分类
{}定义在方法中或者语句块中 ---> 局部代码块 跟随方法一起调用
{}定义在类中的方法外面 ---> 构造块 跟随new一起使用
static{}定义在类中的方法外 ---> 静态块 类第一次加载时使用
同步块
2、注意
构造块中的代码会先于构造器中的代码之前执行,在编译期间构造块中的代码会被编译到要执行的构造器代码的最上面
如果存在多个构造块,从上到下一次执行
静态块会在类第一次加载完成之后进行执行,并且只执行一次
如果存在多个静态块,从上到下一次执行
构造块作用 : 为成员提供默认初始化
静态块作用 : 1)为静态内容提供默认的初始 2) 基础设置等的加载(数据库的驱动
Debug
1、作用
1.追踪程序的执行流程
2.定位异常出现的位置
3.观察程序执行过程中变量的变化情况
4.根据追踪程序的执行流程学习第三方框架的源码
2、步骤:
1.设置断点
在行号的后面鼠标单击设置断点
2.Debug运行
3.debug运行模式下进行调试
Step over F8 : 下一步跳过|略过
如果下一步是方法的调用,不会跟随方法的调用执行,直接进入下一步
Step into F7 : 步入 | 下一步进入
如果下一步是自定义方法的调用,跟随方法的调用执行每一步
Step out shift+f8 : 下一步调出
如果在方法的内部,下一步直接调出到方法调用处
Force step into alt+shift+f7 : 下一步强制进入
如果下一步是方法的调用,包括jdk源码方法的调用,强制进入,跟随执行
Run to Cursor alt+F9 : 直接运行到鼠标光标所在位置
Package
1、为什么要使用包
为了解决类之间的重名问题、为了便于管理类,更好地管理众多的资源
2、使用方法
通常是类的第一句非注释性语言
3、导包
导包: 指明要使用类型的位置
如果要使用其它类型,可能涉及到导包问题
不需要导包的类:
1)java.lang包下的内容
2)同包类
导包的方式:
1.使用的位置指定类型的全限定名 : 包名.类名
只能在当前位置使用一次,简单方便,但是使用频繁的话建议使用import导包
2.import关键字进行导包
定义语法 : import 包名.类名;
位置: 类的上面,package信息下面
3.模糊匹配
模糊匹配当前报下要使用的所有类型
只会降低编译效率,不会降低运行效率
4.静态导入 import static
导入一个类型中的静态内容
注意:
以后项目中需要先定义包后定义类型
Private
1、为什么要使用
解决数据的安全隐患问题
2、使用方法
private是私有的,是一个成员变量的修饰符(只能修饰成员变量,不能修饰局部变量,但是局部变量修饰也没有什么意思,局部变量本来别的方法也不能进行调用和修改)一旦被private关键字修饰的成员,只能在当前类中使用
私有的属性配合一些相应的方法进行访问:
设置器:setter:成员方法,为私有属性设置值
访问器:getter:成员方法,获取私有属性的值
注意: 以后定义的实体类要求属性全部私有化,并根据需求提供一对公共的访问方式
面向对象的特性
封装:通过隐藏内部的实现细节,对外提供公共的访问方式
优点:提高安全性、提高代码的复用性
注意:私有是封装、是封装的一个具体的体现
但是封装不仅仅是私有,封装还包括类、方法、属性私有化
继承:
多态:
JavaBean
JavaBean就是一个简单的java类,用来存储基本的信息,一般和数据库的表对应