java中有关初始化的问题
Posted 何甜甜在吗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中有关初始化的问题相关的知识,希望对你有一定的参考价值。
在类的内部,变量定义的先后顺序决定了初始化顺序,即时变量定义分散在方法定义之外,它们依旧会在任何方法(包括构造器)被调用之前得到初始化
其中初始化的顺序先是静态对象,其后是非静态对象
例如:
class Cat{ private Dog dog1=new Dog(1); static private Dog dog2=new Dog(2); public Cat(int n){ System.out.println("第"+n+"只猫"); } } class Dog{ public Dog(int n){ System.out.println("Dog("+n+")"); } } public class TestStatic { public static void main(String[] args) { System.out.println("test..."); Cat cat=new Cat(1); } }
运行结果:
test... Dog(2) Dog(1) 第1只猫
cat类和dog类构造器中打印信息为了看初始化信息
在main方法中,创建了一个Cat类,除构造方法外,有两个对象,一个是静态dog,另外一个是dog,因为静态对象有先初始化,所以先打印出Dog(2),其后才是Dog(1)
最后才调用cat的构造方法,打印出cat(1)
非静态实例初始化
{}里初始化的内容在构造器之前执行,且每次生成该类{}将会重新被初始化
以上是关于java中有关初始化的问题的主要内容,如果未能解决你的问题,请参考以下文章
xml 中的 Android 谷歌地图片段。我得到“意外的命名空间前缀”
片段无法转换为 java.util.concurrent.Executor 错误