static
final
老师给我们留的作业
这两个关键字在Java中的作用
不要CTRL+C CTRL+V
static
final
老师给我们留的作业
这两个关键字在Java中的作用
不要CTRL+C CTRL+V
简单的说
static 修饰类里面的变量或方法或代码段,表示是只跟类相关的,不能访问对象实例的变量
final 是说变量不能被修改,或者方法不能被改写,或者类不能被继承
具体的可以去google上搜一下
static:
1.用static修饰的方法和变量是属于类的,这些方法和变量可以被该类的所有对象调用,且可以直接通过用类名.方法名(或类名.成员变量名) 来调用。
2.static方法中只能调用static方法和static变量。
final:
1.用final修饰一个变量后,该变量的值就不可以被改变 eg:final PI=3.14;
2.用final修饰的类不可以被继承。
static 修饰方法称为静态方法,修饰变量称为静态变量。(当然还有静态模块和修饰内部内,此不作分析)
它们在类完成加载后,只分配一次内存(重点),即可以直接通过类名访问。(而实例方法,实例变量,调用的时候必须new一个对象,在new的过程中是需要分配内存的);
static 修饰的方法由于只分配一次内存,所以不能去访问实例变量或实例方法;
static{} 称为静态代码块 类加载的同时完成代码块内的内容,它的期中一个作用见下;
最后static 不能在局部中出现,否则出现错误。
final 最终型
修饰类 表明此类不可被派生,否则编译出错;
修饰方法 表明此累不可以被重载或覆盖,否则便也出错;
修饰变量 表明次变量不可以第二次改变(重点),即申明final的同时必须初始化;
例 fianl int i; // 错
final int i=0;//对
或者 final int i; // 这种方法只提供参考不作解释
static{
i=0;
}
在局部修饰变量 即允许局部变量能在方法体的内部累中被访问
例 : 、、、、、、、、省略其他代码
public static void main(String[] args){
final String s="out";
addWIndowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println(s); //如果s不声明为final,编译出错
}
});
}
//我只想说一句。
“不要CTRL+C CTRL+V” 你不配说这句话