This关键字:表示一个对象
This就好比预先划定的一块地皮 留给某个开发商的 反正无论市政府的领导怎么变 这块地皮就在这 一定要卖 但到底属于哪个开发商 就看是谁买下的
哪个对象调用了这个函数那么this就指代哪个对象
作用:解决了局部变量和成员变量名称相同的问题
应用:给函数传参数:
person(String name)
{
this.name= name;
}
Static关键字:表示没有特有数据 意思是只属于这个函数的数据
特点是:
在内存中存在时间特别长尽量避免吧
随着类的加载而加载
先于对象存在而存在
被所有对象共享
可以类名调用
应用:
1 在多线程中 比如卖票程序 将共享数据使用static处理 实现共享的效果
2 类名调用可以不用新建对象很方便有时候甚至会利用不用新建对象这一点来使用这个特性(因为有的时候无法新建对象调用方法)例如懒汉式和饿汉式。单例设计模式无法直接建立对象,而是通过static方法进行getInstance()的类名调用来建立对象。
懒汉式代码:
Class Peron
{
Private Person p = null;
Private Person(){}
Public static Person getInstance()
{
If(p == null)
P =new Person();
Return p;
}
}
这时候调用:
ClassSingleDemo
{
Publicstatic void main(String[] args)
{
Personp = Person.getInstance();//(相当于绕过了new Person())
}
}
注意:
静态方法只能访问静态成员
不能使用this和super关键字(因为这俩是随着对象的调用而存在而static是随着类的加载而存在所以矛盾了)
static是成员修饰符不能修饰局部
比如在方法内部的内部类就不能用static修饰
Final关键字:
可以修饰类方法 变量
被修饰的类不能被继承
被修饰的方法不能被覆盖
被修饰的变量只能赋值一次
内部类只能访问final修饰的局部变量
用法:保护数据
权限:
Private:私有 用处:保护数据
Public:公有
不能用来修饰内部类