JAVA的一些小笔记
构造块优先于构造方法执行,而且每当有一个新的实例化对象产生时,就会重复执行构造块的程序。
静态块优先于构造块执行,而且不管有多少个实例化对象产生,静态块只会执行一次,它的主要作用是为类中的static属性初始化。
主类中定义的静态块的执行要优先于主方法执行。
内部类的最大优点:可以方便地访问外部类的私有操作,或者是由外部类方便地方位内部类的私有操作。
外部类.内部类 内部类对象 = new 外部类().new 内部类();
Outer.Inner in = new Outer().new Inner();
如果一个内部类不希望被其它类所使用,那么也可以使用private关键字,将这个内部类定义为内部私有类。
用static定义内部类,可以不依赖于外部类实例被实例化。
Outer.Inner in = new Outer.Inner();
对象的多态性:父子类对象的转换。
向上转型:子类对象变为父类对象,父类 父类对象 = 子类实例,自动;
向下转型:父类对象变为子类对象,子类 子类对象 = (子类)父类实例,强制;
方法的覆写和重载是Java多态性的不同表现,覆写是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。
接口属于一种特殊的类,如果一个类定义时全部由抽象方法和全局常量组成,那么这种类就称为接口。接口中的访问权限只有一种,public,即使没写也默认为是Public.
在日常程序开发中,如果要通过程序输出数据,则建议使用PrintStream打印流,如果存在中文则使用PrintWriter,而对于程序输入数据,则建议使用Scanner类完成。
所谓对象序列化指的是可以将在内存中保存的对象数据进行二进制数据传输的一种操作,要想完成这样的二进制操作,对象所在的类就必须实行java.io.Serializable接口,这个接口属于一种标识接口,表示一种能力。可以使用transient关键字定义不被序列化的属性。