Java语言基础:final和static

原创 2011年03月23日 23:42:00

 

1. final
final可以修饰类,成员方法,成员变量;表示最终的,不能修改,不能继承的:
  • final类不能被继承,类中的方法默认是final方法,但类中的成员变量不是。
  • final方法不能被子类覆盖,可以这样理解:JAVA中的普通方法等于C++的虚方法,JAVA中的final方法等于C++中的普通方法。
  • final成员表示常量,只能在声明时赋值一次,以后不能再被赋值。
public class Test { 
    private final String S="final实例变量"; 
    private final int A=10; 
}
 
  • final函数参数表示该参数为常量,不能在函数中改变:
public void f1(final int i){ 
    i++; //错误:i是final类型的,值不允许改变 
    System.out.print(i); 
}
 
2. static
static表示全局静态,用来修饰成员方法,成员变量,可以形成static代码块:
  • static方法与c++的静态方法类似,不必创建类实例即可使用,不能使用this和super关键字,且只能访问类中的static成员或static方法。
  • static成员变量与C++的静态成员类似,为所有类实例共用,注意JAVA没有局部静态变量。
public class Main {    
    static int i = 100;
}
  • static静态代码块,是在JVM加载类时就执行的代码块,只执行一次,可以用来初始化静态变量:
public class Main {    
    static int i = 100;
    static {
        i = 30;
    }
    public static void main(String[] args) {
        // 此处i应该是30
        System.out.println(i);
    }
}
3. final和static一起使用
类似于C++的全局常量:
static final int j = 200;

 

java中static、final、static final的区别

final可以修饰:属性,方法,类      final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。      final修饰的属性跟具体对象有关,在运行期初始化的final属...
  • qq1623267754
  • qq1623267754
  • 2014年07月01日 16:55
  • 12378

static、final、static final 用法

1.使用范围:类、方法、变量。 2.区别和联系: 2.1.static 含义:静态的,被 static 修饰的方法和属性只属于类不属于类的任何对象。 2.2.static 用法: 2....
  • tengdazhang770960436
  • tengdazhang770960436
  • 2014年05月06日 19:20
  • 28938

Final和Static及程序执行顺序

final: final可以用来修饰:类、属性和方法 用于修饰类:表示该类不可以被继承 用于修饰属性:表示该属性不可以被修改 用于修饰方法:表示该方法不可以被重写 但是,final不可以用于...
  • haha110112
  • haha110112
  • 2016年08月04日 12:25
  • 386

final和static的区别

一、final  根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 fin...
  • uciqxkj
  • uciqxkj
  • 2007年10月05日 12:01
  • 2722

static 和 final 的顺序

private static final int A =1; private final static int A =1; 上面
  • D801907
  • D801907
  • 2014年05月13日 13:26
  • 1870

java中final关键字的使用及static final 和final的区别

javastring优化 java中final关键字可以用在类成员(是不是所谓的域),类的方法及类中。 一、final用在域中表示: 1,一个永不改变的编译时常量。 2,一个在运行时被...
  • u013256831
  • u013256831
  • 2014年09月13日 16:53
  • 3588

java中static关键字和final关键字

原文地址:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到f...
  • wcs542882916
  • wcs542882916
  • 2015年05月06日 11:06
  • 578

static+final与final区别,静态常量与常量

static+final 静态常量,编译期常量,编译时就确定值。(Java代码执行顺序,先编译为class文件,在用虚拟机加载class文件执行)放于方法区中的静态常量池。在编译阶段存入调用类的常...
  • u011299745
  • u011299745
  • 2016年10月21日 22:43
  • 1310

Java中static、final、static final修饰的属性

1、各种情况的属性 (1)仅static修饰:静态变量,所有对象的同一个类变量都是共享同一块内存空间,而每个对象对于所有的实例域都有自己的一份拷贝。静态域属于类,而不属于任何独立的对象。 (2)仅...
  • yangfengjueqi
  • yangfengjueqi
  • 2017年05月22日 11:04
  • 342

java基础学习——final,static,const在使用上有什么区别

JAVA中——final、static final: final修饰类:该类不可继承 final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数) final修饰字段属性:属性值第一次初始化后不...
  • yiziweiyang
  • yiziweiyang
  • 2016年08月25日 19:04
  • 2164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言基础:final和static
举报原因:
原因补充:

(最多只允许输入30个字)