java中的static用法

      static关键字可以用于属性,方法,自由块以及内部类中。

a、静态代码块   

      一般情况下,有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,也就是静态自由块,这种代码是主动(自动)执行的,需要在项目启动的时候就初始化。

     举个例子介绍静态代码块:

    

输出结果:

从结果我们可以看出,静态代码块都是先于其他先执行的。一般来说,对象初始化顺序为:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。

b、静态方法

        在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的。静态方法在类加载的时候就已经加载,可以用类名直接调用。比如main方法就必须是静态的,这是程序入口。
在使用静态方法时,需要注意几个问题:

1、在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的效果,只需要在类中定义的方法前加上static关键字。例如:

public static int maximum(int n1,int n2)

尤其注意:

1)在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。

2) 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生。

2、静态变量是属于整个类的变量而不是属于某个对象的,所以注意不能把任何方法体内的变量声明为静态。

3、一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。

c、静态变量

d、静态类

     通常一个类不允许声明为静态类,只有内部类可以,此时这个声明为静态的内部类可以直接作为一个普通类使用,而不需要一个外部类。

例:

结果输出为:InnerUse

e、static与final结合使用

两者结合来修饰成员变量和成员方法;

对于变量来说,表示一个静态变量,也可以称为全局变量,通常常量的名字应该大写,例如:static final int MAX_TAX_RATE=20;

对于方法来说,表示方法不可以在子类中覆盖,通过类名可以访问。

上面的内容总结于看的书,同时吸收了http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html和http://blog.csdn.net/anmei2010/article/details/4096131

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值