java 中final的使用

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修饰的类是不能继承的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值