public class RefEx3 {
	public static void main(String[] args) {
		Person p1 = new Person(); //normal object creation
		p1.sayHello();

		try {
			Person p2 = (Person) Class.forName("Person").newInstance();
			p2.sayHello();
		} catch (ClassNotFoundException cnfe) {
			System.out.println("cannot find class\n"+cnfe.toString()+"\n"+cnfe.getMessage() );
		} catch (InstantiationException ie) {
			System.out.println("an InstantiationException occured\n"+ie.toString()+"\n"+ie.getMessage() );
		} catch (IllegalAccessException iae) {
			System.out.println("an IllegalAccessException occured\n"+iae.toString()+"\n"+iae.getMessage() );
		} //catch
	} //main()
} //class RefEx3

class Person {
	public void sayHello() {
		System.out.println("hello from person!");
	} //sayHello()
} //class Person