Static 和 Final

来源:互联网 发布:vmware网络主机模式 编辑:程序博客网 时间:2024/06/05 06:57

Static:

          java是面向对象的编程语言,使用static标记变量或方法后,便可以直接使用该变量或方法,而不需要进行实例化。而且每一个对象使用的该变量或方法都是一个。

如:

public classExampleClass{public ExampleClass(){实例化。。。}public static int i=0;public static void exampleMethodHasStatic(){//执行某些操作代码。。。}public  void exampleMethodNoStatic(){//执行某些操作代码。。。}}

1,我们要引用 exampleMethodNoStatic()方法时,需要先实例化ExampleClass ec=new ExampleClass(),然后再引用ec. exampleMethodNoStatic()

2,我们要引用 exampleMethodHasStatic()方法时,不需要先实例化ExampleClass ec=new ExampleClass(),可以直接引用ExampleClass.exampleMethodHasStatic()

3,如果实例化两个对象:ExampleClass ec1=new ExampleClass(),ExampleClass ec2=new ExampleClass()。

                                    那么:ec1. exampleMethodNoStatic()!=ec2. exampleMethodNoStatic() 

                                        而:ec1. exampleMethodHasStatic()==ec2. exampleMethodHasStatic() 

所以static定义的变量或方法,指向的是同一块内存区域。

Final:

如果使用final定义的变量或方法,那么在实例化对象后,则不可以修改。

如:

public classExampleClass{final int i;public ExampleClass(){i=随机数;}public  int change_i(){this.i=另外一个常量;return  this.i;}}

1,对于两个实例化对象:ExampleClass ec1=new ExampleClass(),ExampleClass ec2=new ExampleClass()。ec1.i可以不等于ec2.i

      而在一个实例化对象ec1中,ec1.change_i()这个Method就不能够再更改全局变量i的值了。

另外:static final 表示一块不可修改的内存区域
原创粉丝点击