this与static

this 关键字***
this的用途
1、调用本类属性
如this.name;明确表示调用类中的name属性,不再使用就近原则(在类中调用本类属性时,一定要加上this关键字,无论形参与本类属性是否同名)
2、调用本类方法
1)调用普通方法:this.方法名称(参数)调用本类普通方法不加this也可以正常
2)调用构造方法:this(参数)在构造方法中对this的调用必须放在构造方法的首行并且要留有出口,也就是调用构造方法不能成环
3、表示当前对象(this表示的是当前调用方法的对象)
当前是哪个对象调用的普通方法、普通属性,this就表示它
static关键字*****
static与类的实例化无关,与类有无对象无关
传统属性所具备的特征:保存在堆内存中,且每个对象独享属性。描述共享属性只需要在属性前加上static关键字即可。
static属性又称为类属性,保存在全局数据区(也称方法区或运行时常量池)的内存之中,所有对象都可以进行该数据区的访问
c语言中可在方法中定义static变量,java只能在类中定义属性。
访问 static属性应使用类名称.属性名;所有的非static属性(实例变量),必须在对象实例化后使用,static属性不受对象实例化控制,因为static与对象无关。
因此,描述共享属性或者不受对象实例化控制的时候选择用static
static类方法(与对象无关,直接通过类名称来调用)
描述工具方法时,一般使用static方法 如:java.util.Arrays.sort()数组排序
静态方法不能访问普通属性,普通方法可以访问静态属性。因为static与对象无关而非static有对象,可以调用

猜你喜欢

转载自blog.csdn.net/qq_43577380/article/details/85327084
今日推荐