一,this关键字的使用场景、细节及其应用
1,什么情况下使用this?
当成员变量和局部变量重名,可以用this关键字区分。
2,this的使用:
this代表对象,代表的就是当前对象。this就是所在函数所属对象的引用。简单来说,哪个对象调用了this所 在的函数,this就代表哪个对象。
示例如下:
上面方法中的this即指下面类中的person
3,注意:一个类中的所有成员想要被执行都必须要被对象调用。
4,this也用于在构造函数中调用其它构造函数(只能定义在构造函数的第一行,因为初始化动作要先执行。构造函数已给对象初始化):
Person(String name)
{
this.name=name;
}
Person(String n,int a)
{
this(name);
this.age=age;
}
二:static关键字
1,static关键字用于修饰成员(成员变量和成员函数)
被修饰后的成员具备一下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意:
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
2,static的特点:
static是一个修饰符,用于修饰成员。
static修饰的成员被所有的对象所共享。
static优先于对象存在,因为static的成员随着类的加载就已经存在了
static修饰的成员多了一种调用方式,就可以直接被类名所调用。类名,静态成员。
static修饰的数据是共享数据,对象中的存储的是特有数据
3,static关键字,静态代码块
静态代码块:独立的代码空间,随着类的加载而执行,而且只执行一次。
作用:用于给类进行初始化。
示例如下:
class StaticCode
{
static int num;
static
{
num=10;
num *=3;
System.out.println("hahh");
}
StaticCode(){}
static void show()
{
System.out.println("num");
}
}
class StaticDemo
{
public static void main(String[] args)
{
StaticCode.show();
}
}
4,static关键字-成员变量和静态变量的区别
两个变量的生命周期不同:
成员变量随着对象的创建而存在;静态变量随着类的加载而存在,随着类的消失而消失。
调用方式不同:
成员变量只能被对象调用;静态变量可以被对象调用,还可以被类名调用。
别名不同:
成员变量也成为实例变量;静态变量成为类变量
数据存储位置不同:
成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据;静态变量数据存储在方法区(共享数据区)(的静态 区),所以也叫对象的共享数据
5,静态使用的注意事项:
静态方法只能访问静态成员(非静态既可以访问静态,又可以访问非静态)
静态方法中不可以使用this , super关键字
主函数是静态的