2 qq 21840787 qq_21840787 于 2016.04.07 22:14 提问

java中 String类问题<初级程序员的自我修远>

刚学习java语言
我看String中源码写的

 private final char[] c;

为什么在自己的类中这样写就会报未初始化的错误

7个回答

caozhy
caozhy   Ds   Rxr 2016.04.07 22:52

private final char[] c = new char[长度];

luochoudan
luochoudan   Ds   Rxr 2016.04.07 23:45

final char[] c这样写的话,c就不能再指向别的引用,但是你又没给人家初始值,编辑器自然不干了。

taoleialskdjfhg
taoleialskdjfhg   2016.04.07 22:39

有final属性,要有构造器,并且初始化该属性

public class Person{
private final char[] c;

public Person() {//
    this.c = "123".toCharArray();
}

}

qq_25827845
qq_25827845   2016.04.07 22:44

我只知道final 类型的需要初始化操作。

fubo1990
fubo1990   2016.04.08 08:48

private final char[] c; 没有报错是,在构造函数里面给它赋值了。
final 变量要不声明时候给其复制,要么在构造函数中给其赋值,不然就会报错。

qq_26431469
qq_26431469   2016.04.08 09:53

final 修饰的变量只会被赋值一次, 要么构造函数要么声明

peterlee1983
peterlee1983   2016.04.08 10:33

final变量不赋值,怎么用呢?你在内存里面要了一个地址,告诉他别人都不能用了,却什么都不放在这里,这块就永远闲置啦。
jvm当然看不下去了,于是提醒你,你错了!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!