java初始化之变量初始化

来源:互联网 发布:剑三成女脸型数据网盘 编辑:程序博客网 时间:2024/05/17 20:13

Java在变量初始化是按照变量的定义顺序进行先后初始化的。先定义的变量不能使用后定义的变量进行初始化,因为此时后定义的变量还没有初始化,如果直接使用后定义的变量进行初始化,编译时会有错误,但是有一种方法可以使用后定义的变量初始化先定义的变量,那就是使用静态函数。

见代码:

public class StaticInit {public static void main(String[] args) {Test test = new Test();}}class Test {static Class1 class1 = new Class1(getName());static Class2 class2 = new Class2();static String getName(){return class2.getName();}}class Class1 {String name = "class1";public Class1() {System.out.println(name);}public Class1(String name1) {System.out.println(name1 + name);}}class Class2 {String name = "class2";public Class2() {System.out.println(name);}public Class2(String name2) {if(name2 == null)System.out.println("NULL"+name);elseSystem.out.println(name2+name);}public String getName() {return name;}}

使用以上代码会报

java.lang.NullPointerException
错误!


静态变量初始化还有一种方法:使用静态语句块;将上面代码的Test类修改如下:

class Test {//static Class1 class1 = new Class1(getName());static Class1 class1;static Class2 class2 = new Class2();static {class1 = new Class1(getName());}static String getName(){return class2.getName();}}
程序将正常运行结果如下:

class2class2class1

static语句块是在变量初始化完成后进行的。在执行语句块之前class1为null;

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3岁宝宝撕书怎么办 孩子上幼儿园不爱写字怎么办 一年级小孩不爱做作业怎么办 小孩不愿多做作业怎么办 小孩一年级不自觉做作业怎么办 小孩会读不会写怎么办 好多字都不会写怎么办 写作业怎么办才能写快 五周宝宝爱玩不写字怎么办 爱玩手机的小孩怎么办? 一年级学生记不住生字怎么办 一年级小孩记不住生字怎么办 配镜度数高了怎么办 宝宝两岁半不肯坐马桶拉臭臭怎么办 儿子字写得不好 怎么办 小孩不听话不爱读书和写字怎么办 两岁宝宝不愿意穿衣服怎么办 做题粗心不认真怎么办 5岁宝宝不会写字怎么办 四岁宝宝不会写字怎么办 4岁宝宝不写字怎么办 四岁宝宝不写字怎么办 孩子学习粗心计算能力差怎么办 一年级的小朋友不爱看书怎么办 马上要生了害怕怎么办 孩子做题不爱读题怎么办 孩子作业写的慢怎么办 孩子学习不好怎么办我们有绝招 英语不会做题怎么办呢? 小学二年级孩子厌学怎么办 狗狗拉肚子不吃东西怎么办 小孩做作业时容易发呆怎么办 一上高速就犯困怎么办 孩子初中数学学不好怎么办 高三注意力不集中怎么办 考砸了家长打我怎么办? 高三学生困疲劳怎么办 高三晚上很困怎么办 孩子上高三压力大不想上学怎么办 高三的孩子压力大怎么办 高三复读压力大怎么办