在Java中,final修饰的类有什么特点

 我来答
xiaoxiaoweng0
推荐于2016-01-11 · TA获得超过6431个赞
知道大有可为答主
回答量:8895
采纳率:54%
帮助的人:4555万
展开全部
关于Java中的final(2010-09-09 14:19:48)转载▼标签: javafinal 分类: Java知识学习

Java中的final共有三种用法:

final成员变量
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。

其初始化可以在三个地方,
一是其定义处,也就是说在final变量定义时直接给其赋值,
二是在构造函数中。而且在Java1.1以前,只能是在定义时给值。
三是在初如化代码块中{} 或者 static{}
下面这段代码演示了这一点:更加详细的探讨请参考关于final变量的初始化探讨

import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;

public class Bat {

final double PI = 3.14; // 在定义时便给址值
final int i; // 因为要在构造函数中进行初始化,所以此处便不可再给值
final List list; // 此变量也与上面的一样

Bat() {
i = 100;
list = new LinkedList();
}

Bat(int ii, List l) {
i = ii;
list = l;
}

public static void main(String[] args) {
Bat b = new Bat();
b.list.add(new Bat()); //引用不可变,但引用指向的内容是可以变的
// b.i=25; syntax error i是不可变的
//b.list=new ArrayList(); 错误,对象引用是不可变的
System.out.println("I=" + b.i + " List Type:" + b.list.getClass());
b = new Bat(23, new ArrayList());
b.list.add(new Bat());
System.out.println("I=" + b.i + " List Type:" + b.list.getClass());
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式