类成员变量初始化的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类成员变量初始化的问题相关的知识,希望对你有一定的参考价值。
class window{ window(int maker){ System.out.println("window"+maker); } } class House{ window w1 ;//new window(1); window w3 = new window(3); House(){ System.out.print("House"); w3 = new window(33); } window w4 = new window(4); } class Demo { public static void main(String[] args) { // TODO Auto-generated method stub House h = new House(); //System.out.println("hello world"); } } //output: window3 window4 Housewindow33
今天在看编程思想的时候,突然发现自己的java基础有多渣,习惯了get/set方法后,一直以为类成员变量在类初始化的时候只有调用类成员变量的时候并手动将其输出才可以其打印出来。看了上面这个例子才发现如果类成员变量在类内部初始化后(上例中的window类的构造器初始化后),在new一个House对象出来的时候,编译器会自动打印已初始化的类成员。 -(PS:我好渣 - -!)
而且原书讲到w3虽然初始化了两次,效率虽然不高,但是如果存在重载构造器,这样可以使初始化得到保证。
以上是关于类成员变量初始化的问题的主要内容,如果未能解决你的问题,请参考以下文章
C++成员初始化列表(构造函数后加冒号:)(用于在构造函数中初始化类成员变量,可以避免使用构造函数体内的赋值语句,可以确保成员变量在对象构造之初就已经被正确初始化,提高代码的性能和可读性)