5.6成员初始化
1.对于方法的局部变量,java以编译时错误的形式来贯彻这种保证。
void f(){ int i; i++;//error -- i not initialized 用到i的时候会报错。 }
2.要是类的数据成员(即字段)是基本类型,保证会有一个初始值。
3.在类里定义一个对象引用时,如果不将其初始化,此引用会获得一个特殊值null。
5.7构造器初始化
1.初始化顺序
a.在类的内部,变量定义的先后顺序决定了变量初始化的顺序。
b.变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。
2.静态数据的初始化
无论创建多少对象,静态数据只占用一份存储区域。static关键字不能应用于局部变量,因此它只能作用于域。如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初值;如果它是一个对象引用,那么它的默认初始值就是null。
初始化的顺序是先静态对象(前提是它们尚未因前面的对象创建过程而被初始化),而后是非静态对象。
package com.yu; public class InitTest2 { static A a = new A(); A aa = new A(); public static void main(String[] args) { System.out.println("Test2"); } static A aaa = new A(); } class A { A() { System.out.println("A con"); } } /*output A con A con Test2 */ package com.yu; public class InitTest3 { public static void main(String[] args) { new Bs(); new Bs(2); } } class Bs { // static 只初始化一次 { B b = new B(); B bb = new B(); System.out.println("~~"); } Bs() { System.out.println("Bs()"); } Bs(int i) { System.out.println("Bs(i)"); } } class B { B() { System.out.println("B()"); } } /*output B() B() ~~ Bs() B() B() ~~ Bs(i) */
5.9枚举类型
1.
package com.yu; public class EnumTest1 { public static void main(String[] args) { for(Spiciness s : Spiciness.values()){ System.out.println(s + "-ordinal-" + s.ordinal()); } } } enum Spiciness{ NOT,MILD,MEDIUM,HOT,FLAMING } /*output NOT-ordinal-0 MILD-ordinal-1 MEDIUM-ordinal-2 HOT-ordinal-3 FLAMING-ordinal-4 */
2.
package com.yu; public class EnumTest2 { Spiciness2 degree; EnumTest2(Spiciness2 degree){ this.degree = degree; } void describe(){ System.out.print("this burrito is :"); switch(degree){ case NOT:System.out.println("not spicy at all"); break; case MEDIUM:System.out.println("a little hot"); break; } } public static void main(String[] args) { new EnumTest2(Spiciness2.NOT).describe(); System.out.println("--------------------"); new EnumTest2(Spiciness2.MEDIUM).describe(); } } enum Spiciness2{ NOT,MEDIUM } /*output this burrito is :not spicy at all -------------------- this burrito is :a little hot */
thinking in java -- notes-1,布布扣,bubuko.com
原文:http://www.cnblogs.com/yurnero0716/p/3568812.html