一、static关键字
1、翻译为静态的,
2、所有的static关键字修饰的都是类相关的,类级别的
3、所有static修饰的,都是采用“类名.”方式访问
4、static修饰的变量:静态变量
5、static修饰的方法:静态方法
6、变量的分类:
变量根据声明的位置进行划分:1、在方法体当中声明的变量叫做局部变量;2、在方法体外声明的变量叫做成员变量。
其中成员变量又可以分为:实例变量、静态变量
7、什么时候声明为实例的,什么时候声明为静态的?
重点?。?!加static的变量叫做静态变量,静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了。静态变量存储在方法区。
对于方法来说,什么时候定义为实例方法?什么时候定义为静态方法?参考标准:当这个方法体当中访问了实例变量,这个方法一定是实例方法。
8、使用static关键字可以定义:静态代码块
静态代码块在类加载时执行,并且只执行一次,静态代码块有如下的特征、特点:
a、静态代码块在类加载时执行,并且在main方法执行之前执行
b、静态代码块按照自上而下的顺序执行
c、有啥作用?可以写日志代码
9、实例代码块
在构造方法之前执行
二、this关键字
一个对象一个this,它是一个变量,是一个引用。this保存当前对象的内存地址,指向自身。严格意义来说,this代表的就是“当前对象”,存储在堆内存当中对象的内部。
为什么this不能使用在静态方法中?this代表当前对象,静态方法中不存在当前对象。
1、this关键字大部分情况下可以省略,什么时候不能省略呢?
在实例方法中,为了与局部变量区分开来,必须使用this关键字:public void setname(String name){
this.name = name;
}
2、this除了可以使用在实例方法中,还可以用在构造方法中。新语法:通过当前的构造方法去调用另一个本类的构造方法,可以使用以下语法格式:this(实际参数列表)
3、这就叫代码复用:通过一个构造方法1去调用构造方法2.但是需要注意的是,构造方法1和构造方法2? 都是在同一个类当中
this总结:1、this是一个关键字? 2、this可以使用在实例方法中,也可以使用在构造方法中;3、this出现在实例方法中其实代表的是当前对象;4、this不能使用在静态方法中;5、this()这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用;6、大部分情况下this.可以省略,但是用来区分局部变量和实例变量的时候不能省略。