java基礎學習之使用構造器創建對象的知識講解

使用構造器創建對象

Class claz = User.class;

//獲取無參構造

Constructor constructor = claz.getConstructor();

//創建對象

User newInstance = (User)constructor.newInstance();//打印出無參

//獲取String name構造

Constructor constructor2 = claz.getConstructor(String.class);

//創建對象

User newInstance2 = (User)constructor2.newInstance("小黑");//打印出name=小黑

//獲取String name,int age構造 注意 private需要用getDeclaredConstructor

Constructor constructor3 = claz.getDeclaredConstructor(String.class,int.class);

//創建對象(注意private構造不能直接使用newInstance)會報錯Class com.io.aa can not access a member of class com.io.User with modifiers "private"

constructor3.setAccessible(true);//這句設置表示直接可以訪問private修飾的構造器

User newInstance3 = (User)constructor3.newInstance("小黑",2);//打印出name=小黑age=2

//注意如果某個類中構造器是public修飾且無參可以用Class對象的newInstance()方法直接創建對象

User newInstance4 = (User)claz.newInstance();

User類

class User{

public User(){

System.out.println("無參");

}

public User(String name){

System.out.println("name="+name);

}

private User(String name,int age){

System.out.println("name="+name+"age="+age);

}

}


分享到:


相關文章: