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);

}

}


分享到:


相關文章: