class GetMyName_newInstance //getName()
{
	/*
A a = (A)Class.forName("pacage.A").newInstance();
这和
A a = new A();
是一样的效果。
   JVM会执行静态代码段,要记住一个概念,静态代码是和class绑定的,class装载成功就表示执行了静态代码了,以后也就不会再走这段静态代码了。
   Class.forName(xxx.xx.xx) 返回的是一个类
   Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段,动态加载和创建Class 对象,比如想根据用户输入的字符串来创建对象
String str = 用户输入的字符串
Class t = Class.forName(str);
t.newInstance();
	*/
	void sayhi()
	{
	System.out.println("sayhi()");
	}

	public static void main(String[] args) 
	{

		try{

		Class c1 = Class.forName ("GetMyName_newInstance"); 
		System.out.println(c1.getName());
		GetMyName_newInstance ins=(GetMyName_newInstance)c1.newInstance();
		ins.sayhi();
		}
		catch (ClassNotFoundException e)
		{
			System.out.println(e);
		}
		catch(InstantiationException eins)
		{
			System.out.println(eins);
		}
		catch(IllegalAccessException ell)
			{
			System.out.println(ell);
		}
	}
}
/*
GetMyName_newInstance
sayhi()
请按任意键继续. . .
*/