面向对象之关键字final

来源:互联网 发布:网络购物市场交易规模 编辑:程序博客网 时间:2024/06/08 06:45

                                                         面向对象之关键字final

 final:最终的 ,可以用来修饰类、属性、方法

 1.final修饰类:这个类就不能被继承。但类中的方法,属性还是可以修改的。如:String类、StringBuffer类、System类 
 2.final修饰方法:不能被重写。如:Object类的getClass() 
 3.final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值。习惯上,常量用大写字符表示。 定义一个常量,习惯于遵循的规范:XXX_YYY_ZZZ/。final修饰的属性只有get方法,没有set方法。 
   3.1此常量在哪里赋值:①此常量不能使用默认初始化,②可以显式的赋值、代码块、构造器。不能用方法来给其赋值,(因为方法可能不会调用)
   3.2 变量用static final修饰:全局常量。比如:Math 类的PI  

>面试题:finally finalize()区分开

代码举例:

class D{
final int I = 12;
final double PI;

final String NAME;

public void m1(){
System.out.println(I);
// I = 10;
}
{
PI = 3.14;
}
public D(){
NAME = "DD";
}
public D(String name){
this();
//NAME = name;
}
}


第一题:x是确定的,不能修改,不能自增,但return i+1;可以的

第二题:没有问题的,final Other o ,假如令 b = Other o ,其实b是个地址值 是Other o 在堆空间对象的首地址值。 final b 表示对象不变或者地址值不变了,对对象中的属性操作不影响。如果加上o = new Other().则会报错,因为对象地址值变了。


原创粉丝点击