静态变量和静态方法

        static修饰符可以用来修饰类的成员变量和成员方法:

Ø        static修饰的成员变量,称为静态变量,可以直接通过类名来访问。

Ø        static修饰的成员方法,称为静态方法,可以直接通过类名来访问。 

1. 静态变量

(1) 类的成员变量有两种:

Ø        静态变量:使用static关键字所修饰的变量,称为静态变量。

Ø        实例变量:没有使用static关键字所修饰的变量,称为实例变量。

(2) 静态变量与实例变量的区别:

Ø        静态变量属于类,而不属于类的某个实例(对象)

从内存的角度来说:在内存中,为一个类的某个静态变量开辟一块内存空间,这个类的所有实例(对象) 都共享这块内存空间。

Ø        实例变量属于类的实例,而不属于类。

从内存的角度来说:在内存中,为一个类的每一个实例(对象)都将开辟一块内存空间,也即这一个类有多少个对象,就将开辟多少块内存空间;然后为每一个对象的某个实例变量再开辟一块内存空间。

Ø        静态变量的生存周期:从该变量所属的类被装载,直到包含该类的程序运行结束。

Ø        实例变量的生存周期:从该变量所属的类的对象被创建,直到该对象不再被使用而被释放所占的内存空间为止。

Ø        使用静态变量时:直接通过类名来访问。

Ø        使用实例变量时:通过类的对象来访问。

补充:

Ø        什么时候被装载:在应用程序启动时,将装载该应用程序中的所有类,也即在内存中为这些类开辟内存空间。

Ø        什么时候被销毁:在应用程序运行结束时,将销毁该应用程序中的所有类,也即释放这些类在内存中所占用的内存空间。

Ø        为什么要使用静态变量:如果你要想要在整个应用程序的运行过程中,不管什么时候,都可以去访问某个变量,那么就需要将这个变量定义为静态变量。

2. 静态方法

(1) 类的成员方法有两种:

Ø        静态方法:使用static关键字所修饰的方法,称为静态方法。

Ø        实例方法:没有使用static关键字所修饰的方法,称为实例方法。

(2) 静态方法与实例方法的区别:

Ø        静态方法属于类,而不属于类的某个实例(对象)

Ø        实例方法属于类的实例,而不属于类。

Ø        静态方法的生存周期:从该方法所属的类被装载,直到包含该类的程序运行结束。

Ø        实例方法的生存周期:从该方法所属的类的新实例被创建,直到该实例不再被使用而被释放所占的内存空间为止。

Ø        使用静态方法时:直接通过类名来调用。

Ø        使用实例方法时:通过类的对象来调用。

使用静态方法时,要注意以下几点:

1 在静态方法中,不能直接访问类的实例变量和实例方法。这是因为,对于实例变量和实例方法来说,它是属于某个对象的,需要先创建类的对象后,再通过该对象来访问。

2 在静态方法中,不能以任何方式引用 this super 关键字。 这是因为,静态方法在使用前是不需要创建任何对象的,当静态方法被调用时, this 所引用的对象根本就没有产生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值