类初始化和构造器初始化的区别
Posted caixiaoyou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类初始化和构造器初始化的区别相关的知识,希望对你有一定的参考价值。
// initialization/ConstructorTest2.java // TIJ4 Chapter Initialization, Exercise 2, p158 /* Create a class with a String field that is initialized at the point of * definition, and another one that is initialized by the constructor. What is * the difference between the two approaches. */ class Tester2 { String s1; String s2 = "hello"; String s3; Tester2() { s3 = "good-bye"; } } public class ConstructorTest2 { public static void main(String[] args) { Tester2 t = new Tester2(); System.out.println("t.s1: " + t.s1); System.out.println("t.s2: " + t.s2); System.out.println("t.s3: " + t.s3); } } //out t.s1: null t.s2: hello t.s3: good-bye
初始化未定义的s3被构造器的覆盖了,也就是构造器内的初始化会覆盖类初始化的域。代码来自thinking 练习题的一个大神。
以上是关于类初始化和构造器初始化的区别的主要内容,如果未能解决你的问题,请参考以下文章