当前位置: 技术问答>java相关
final object 只能在constructor 中初始化吗?
来源: 互联网 发布时间:2015-01-31
本文导语: 我在其余method 中初始化怎么不行? 如 class ack{ final lcp p; //lcp是一个class ack(){ p=new lcp(); } } 如果写成如下: class ack{ final lcp p; //lcp是一个class static void one(){ p=new lcp(); } } 怎么不行? | ...
我在其余method 中初始化怎么不行?
如
class ack{
final lcp p; //lcp是一个class
ack(){
p=new lcp();
}
}
如果写成如下:
class ack{
final lcp p; //lcp是一个class
static void one(){
p=new lcp();
}
}
怎么不行?
如
class ack{
final lcp p; //lcp是一个class
ack(){
p=new lcp();
}
}
如果写成如下:
class ack{
final lcp p; //lcp是一个class
static void one(){
p=new lcp();
}
}
怎么不行?
|
题目没说这个FINAL变量是类的变量啊?如果你在方法里面申明,当然就该在方法里面初始化了……
|
static 用于两种情况下:
1、当你只想用一块儿内存空间存储数据,无论创建多少对象,甚至根本没有对象与之相关联
2、当你想要一个特殊方法,该方法没有与该类的任何对象相关联!
既然上下文无关,当然不能再static method 中instantiate none static variable了!
看一下inner class可能理解会更深一些!
1、当你只想用一块儿内存空间存储数据,无论创建多少对象,甚至根本没有对象与之相关联
2、当你想要一个特殊方法,该方法没有与该类的任何对象相关联!
既然上下文无关,当然不能再static method 中instantiate none static variable了!
看一下inner class可能理解会更深一些!