浅谈Java中final与static

来源:互联网 发布:分享做淘宝的经验 编辑:程序博客网 时间:2024/06/06 03:33

final:
final的三个基本概念:1、被final修饰的类不能被继承。2、被final修饰的方法不能被重写。3、被final修饰的变量不可以被修改。
*这里的变量不可以被修改是指变量的引用,而非变量的内容。
比如说:
public class Test
{
    public static void main(String[] args)
    {
        final FinalString fs = new FinalString("1");
        fs.setStr("2");
        System.out.println(fs.getStr());
    }
}
这段代码是不报错的,可以正常运行。而:
 public static void main(String[] args)
 {
     final FinalString fs = new FinalString("1");
     final FinalString fss = new FinalString("333");
     fs = fss;
 }
会报错。


static:
static的基本用法是:1、被static修饰的变量属于类变量,可以用类名.变量名直接引用,不用再new一个类。2、被static修饰的方法属于类方法,可以直接用类名.方法名直接引用,不用再new一个类。


常问的问题:1、静态方法可不可以引用静态资源。2、静态方法可不可以引用非静态资源。3、非静态方法可不可以引用静态资源。
静态资源是类在初始化时加载的,而非静态资源是在类new的时候加载的。类的初始化要早于new,因此对于上述的问题:1、静态方法可以引用静态资源。2、静态方法不可以引用非静态资源。3、非静态方法可以引用静态资源。

0 0
原创粉丝点击