java建立對象的幾種方式:
(1) 用new語句建立對象,這是最常見的建立對象的方法。
(2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()執行個體方法。
(3) 調用對象的clone()方法。
(4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
下面測試代碼塊,靜态代碼塊,構造器的初始化順序
public class TestExtends {
public static void main(String[] args) {
A a = new A(5);
Son s = new Son();
}
}
class B {
private int radius = 10;
public void draw() {
System.out.println("B.draw(), radius = " + radius);
}
public B() {
System.out.println("B constructor");
draw();
}
}
class A extends B {
private int radius = 1;
public void draw() {
System.out.println("A.draw(), radius = " + radius);
}
public A(int radius) {
this.radius = radius;
System.out.println("A constructor");
System.out.println("A.draw(), radius = " + radius);
}
}
class Parent{
{
System.out.println("parent中的初始化塊");
}
static{
System.out.println("parent中static初始化塊");
}
public Parent(){
System.out.println("parent構造方法");
}
}
class Son extends Parent{
{
System.out.println("son中的初始化塊");
}
static{
System.out.println("son中的static初始化塊");
}
public Son(){
System.out.println("son構造方法");
}
}