java静态

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

 

static关键字

static关键字用来修饰类的成员,被这个关键字修饰的成员都和类加载有关。

JVM运行时不会将所有类加载到内存,因为无法确定程序中要使用哪些。类在第一次使用时加载,只加载一次。

1         静态变量

static修饰的变量就是静态变量。

 

静态变量在类加载后就初始化。

静态变量被类的所有实例所共享。

静态变量可以使用类名.变量名形式访问。

 

如果在定义一个类的时候,发现一个成员变量需要被所有实例所共享,那么这个成员变量就需要定义为static的。

2         静态方法

static修饰的方法就是静态方法。

 

静态方法在类加载后就可以使用。

静态方法可以使用类名.方法名形式访问。

静态方法不能直接访问外部非静态成员。

       因为外部非静态成员必须在类创建对象之后才能使用,而静态方法可以在没创建对象时就使用。

如果要在静态方法内部访问外部非静态成员,需要先创建该类对象,通过对象访问。

静态方法中不能使用this关键字。

       因为this是个引用,哪个对象调用方法就引用哪个对象。而静态方法有可能不是被对象调用的,this无从引用。

 

如果一个方法不用访问非静态成员,那么就可以定义为静态的,这样使用者就不需要创建对象,直接用类名调用。

静态方法通常是作为工具方法或者一个可以产生对象的方法被声明,目的是为了让调用者更方便的使用,不必创建对象。

3         静态代码块

static修饰的代码块就是静态代码块。

 

静态代码块在类加载后执行。

静态代码块和静态方法相同,不能使用外部非静态成员。

静态代码块执行和静态变量的初始化顺序由代码从上到下顺序决定。

 

如果我们有一段代码想在别人使用某个类的时候就运行, 而且只运行一次, 那么就可以写在静态代码块中.

4         静态内部类

可以使用static修饰一个类中的内部类。

静态内部类不用创建外部类对象就可以直接创建对象。

       外部类名.内部类名变量名 = new 外部类名.内部类名();

静态内部类可以定义静态成员。

       因为静态内部类可以直接使用,无需创建外部类对象。

静态内部类中不能访问外部非静态成员。

       因为创建静态内部类不需要外部类对象,也就是有可能没有创建外部类对象,使用外部类成员必须有外部类对象。

 ---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值