class Test
{
final int age;
{
// System.out.println(age);
age=8;
System.out.println(age);
}
public static void main(String[] args)
{
new Test();
}
}
系统不会对final修饰的类成员变量属性初始化//System.out.println(age);是会出现错误的!
class TestFinalLocalVariable
{
public static void main(String[] args)
{
final String default1="statement case";
//不能再给default1赋值,因为有final的修饰
//default1 ="ex";
System.out.println(default1);
}
public void test(final int a){
//不能对final修饰的行参赋值
//a=5;
}
}
import java.util.*;
public class TestFinalReference
{
public static void main(String[] args)
{
final int[] iArr={3,54,5,34,76,45};
System.out.println(Arrays.toString(iArr));
Arrays.sort(iArr);
System.out.println(Arrays.toString(iArr));
iArr[2]=7777;
System.out.println(Arrays.toString(iArr));
//系统会提示你无法为变量指定值,这里是不容许的
iArr=null;
System.out.println(Arrays.toString(iArr));
final Person p=new Person(23);
System.out.println(p.getAge());
//系统会提示你无法为变量指定值,这里是不容许的。有了final的修饰
p=null;
}
}
class Person
{
int age ;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(int age){
}
}
//还要大家注意的就是final修饰的方法不能被子类重写,但是可以重载
public calss FinalOverload{
public final void Test(){}
}
class SubFinal extends FinalOverload{
//这样定义一个方法也是没问题的
public void test(){}
//重载父类的方法也是没问题的,但是就不能重写
public final void test(String[] str){}
}
//还有就是final修饰的类是不能继承的