您的位置:首页 > 其它

static和final的区别

2012-04-15 00:00 218 查看
1.final定义的变量可以看做一个常量,不能被改变;final定义的方法不能被覆盖;final定义的类不能被继承。final static 就是再加上static的特性就可以了
2.static 是在内存中分配一块区域,供整个类通用,所有的类的对象都享有它的共同的值

static定义一个变量:实现的是类所有对象的共享,比如算网站的点击量的时候,通过一个static变量实现。

public class StaticTest
{
private static int i = 0;

public int add(int i)
{
return this.i += i;
}
/**
* @param args
*/
public static void main(String[] args)
{
StaticTest st = new StaticTest();
st.add(3);
StaticTest st1 = new StaticTest();
st1.add(4);
System.out.println(i);
}

}

代码中的i的值实现了共享,由此可见静态域保存在类的存储单元里,问不是保存对象的存储单元里。

而final如同上面所讲的,定义常量或者方法不能覆盖,类不能继承。这里的方法不能覆盖但是可以重载:

public class StaticTest
{
private static int i = 0;

public final int add(int i)
{
return this.i += i;
}
}


public class StaticTest1 extends StaticTest
{
private int i = 0;
public int add(String i)
{
return this.i += Integer.parseInt(i);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  static final 区别