this关键字
this:看上去 ,适用于区分局部变量和成员变量同名情况
this:其实代表本类的对象,到底代表哪一个
this代表它所在函数所属对象的引用
简单说,哪个对象在调用this所在的函数.this就代表哪个对象
this的应用:当定义类中的功能时,该函数内部要用到该函数的对象时,这时用this来表示这个对象
this语句:用于构造函数之间进行相互调用
this语句只能放在构造函数的第一行,因为初始化要先执行
static关键字
静态:static
用法:是一个修饰符,用于修饰成员(成员变量,成员函数)
当成员被静态修饰后,就多了一个调用方法 类名.静态成员
static特点:
1.随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2.优先于对象存在 静态先存在的,对象是后存在的
3.被所有对象共享
4.可直接被类名调用
实例变量(成员变量) 和类变量的区别
1.存放位置
类变量随着类的加载而加载存在方法区中
实例变量随着对象的建立而存在于堆内存中
2.生命周期
类变量生命周期最长,随着类的消失而消失
实例变量生命周长随着对象消失而消失
静态使用的注意事项:
1.静态方法只能访问静态成员
非静态方法既可以访问静态也可以访问非静态
2.静态方法中不可以定义this,super 关键字
静态优先于对象存在,所以静态方法中不可以出现this(指对象)
3.主函数是静态的
静态有利有弊
利处:对对象的共享数据进行单独空间的存储,节省空间,可以直接类名调用
弊端:生命周期过长,访问出现局限性(静态只能访问静态)
什么时候使用静态
从两方面下手
因为静态修饰的内容与成员变量和函数
静态变量:当对象出现共享***数据***时(类是共享属性)
静态函数:当功能内部没有访问到非静态数据(对象的特有数据),那么功能可以定成静态的
静态代码块
static{
}
特点:随着类的加载而执行,只执行一次,并优先于主函数,用于给类进行初始化
main函数
主函数是一个特殊的函数,作为程序的入口 可以被jvm调用
public static void main(String[] args) {
System.out.println(args);
System.out.println(args.length);
System.out.println(args[0]);
}
**
final关键字
**
最终 修饰符
1.可以修饰类,函数,变量
2.被final修饰的类不能被继承 为了避免被继承,被子类覆写功能
3.被final修饰的方法不能覆写
4.被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,又可以修饰局部变量
当描述事务时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读,而这个值不需要改变,所以加上final修饰,作为常量:常量的书写规范所有字母都大写,如果由多个单词组成,单词间通过_连接
5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量