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
- java初始化之变量初始化
- JAVA之成员变量初始化
- java学习之路------变量初始化
- JAVA之变量默认初始化值
- java - 变量初始化总结
- java变量初始化顺序
- java中变量初始化
- JAVA变量的初始化
- java中变量初始化
- java中变量初始化
- java变量初始化顺序
- Java变量自动初始化
- Java变量自动初始化
- Java变量初始化
- Java变量初始化讨论
- java变量初始化
- JAVA变量初始化顺序
- Java 变量初始化
- 工作时间
- 记一次 JS 模拟 CSS active 效果的过程
- 【极客学院】-iOS学习笔记-5-Swift(变量,循环,控制,函数,面向对象,小项目:呈现网页)
- 堆栈、静态区、栈之间的关系
- 【VS】VS2012未找到与约束匹配的导出
- java初始化之变量初始化
- 排序
- 停用两个模块并发现一个奇怪的注释问题
- Android 6.0设置模块免打扰功能浅析
- spring mvc
- 有道词典不能联网解决方法
- 快来嗨!《笑傲江湖ol》圣诞嘉韶华狂欢开端!--国民网游戏
- java成员方法
- Kali Linux配置nginx支持php