java类实例化的常用方式

测试辅助类:

public class Student {
	
	String name = "无名氏";
	
	//无参构造函数
	public Student(){
		
	}
	
	//有参构造函数
	public Student(String name){
		this.name = name;
	}
	
	//成员方法
	public void print(){
		System.out.println(name);
	}
}

测试类:

public class Test {

	public static void main(String[] args) throws Exception {
		 
		System.out.println("1、通过 new 方式,对构造函数无限制");
		Student stu = new Student("张三");
		stu.print();
		
		System.out.println("2、通过Class.newInstance(),适用于包含无参构造函数的类");
		Student stu2 = (Student)Class.forName("Student").newInstance();
		stu2.print();
		
		System.out.println("3、通过java.lang.reflect.Constructor newInstance(),对构造函数无限制");
		Class<?> studentClass = Class.forName("Student");
		Student stu3 = (Student)studentClass.getConstructor(String.class).newInstance("王五");
		stu3.print();
	}
}

输出结果:

1、通过 new 方式,对构造函数无限制
张三
2、通过Class.newInstance(),适用于包含无参构造函数的类
无名氏
3、通过java.lang.reflect.Constructor newInstance(),对构造函数无限制
王五

猜你喜欢

转载自huangqiqing123.iteye.com/blog/1405681