final对基本类型,限定常量. final对对象的引用,不可引用其他对象. final的字段,必须在定义时或者构造器内完成初始化.构造内才完成初始化的Blank Final(空白final). class Poppet { private int i ; public Poppet(int ii) { i = ii; } } class BlankFinal { private int i = 100; private final int j ; private final Poppet p;
Java有3类变量 局部变量 成员变量(实例变量) 类变量(静态变量) 局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局部变量: 局部变量只在声明它的方法.构造方法或者语句块中可见: 局部变量是在栈上分配的. 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用. 例子 package import_test; public class Dog { public v
转自:http://java.chinaitlab.com/base/836044.html public class BB{ public int i; } public class PP{ public static void f(final BB ref) //我的理解是无法修改ref { ; } public static void main(String args[]){ BB x = new BB(); f(x); System.out.println(x.i); //但事实上是修改
1.涵义 最一般的意思就是声明 "这个东西不能改变".之所以要禁止改变,可能是考虑到两方面的因素:设计或效率. final 关键字可以用来修饰变量.方法和类,修饰变量表示变量不能被修改,修饰方法表示方法不能被重写,修饰类表示类不能被继承. 2.修饰变量 对于基本数据类型, final 会将值变成一个常数:但对于对象引用, final 会将引用变成一个常数.进行声明时,必须将引用初始化到一个具体的对象.而且永远不能将引用变成指向另一个对象.来个Demo 如下: public class
static:用于属性和方法 static修饰属性:无论一个类生成多少对象,所有这些对象共用唯一一个静态成员变量.一个对象对该静态变量进行修改,其他对象对该静态变量的值也随之发生变化.可以通过类名.成员变量名的方式来使用它. static修饰方法:静态方法不能被重写,只能被隐藏.子类只能继承父类的静态方法,不能重写父类静态方法,子类隐藏了父类的静态方法.静态方法可以包含静态和非静态方法,非静态方法只能包含非静态方法,不能包含静态方法. instance method: An instance m