帮我看一个程序,我刚学JAVA,遇到了一个问题,先谢了
class ClassTest
{
public static void main(String[] args)
{
Point pt=new Point();
Class c1=pt.getClass();
System.out.println(c1.getName());
try
{
Class c2=Class.forName("Point");
System.out.println(c2.getName());
}
catch(Exception e)
{
e.printStackTrace();
}
Class c3=Point.class;
System.out.println(c3.getName());
Class c4=int.class;
System.out.println(c4.getName());
Class c5=Integer.TYPE;
System.out.println(c5.getName());
Class c6=Integer.class;
System.out.println(c6.getName());
}
}
class Point
{
int x,y;
void output()
{
System.out.println("x="+x+","+"y="+y);
}
}结果调试的时候这个语句发生了System.out.println(c2.getName());这句话会执行不是发生异常了,Try后面的话不会执行了,就到Catch语句里去了
class ClassTest
{
public static void main(String[] args)
{
Point pt=new Point();
Class c1=pt.getClass();
System.out.println(c1.getName());
try
{
Class c2=Class.forName("Point");
System.out.println(c2.getName());
}
catch(Exception e)
{
e.printStackTrace();
}
Class c3=Point.class;
System.out.println(c3.getName());
Class c4=int.class;
System.out.println(c4.getName());
Class c5=Integer.TYPE;
System.out.println(c5.getName());
Class c6=Integer.class;
System.out.println(c6.getName());
}
}
class Point
{
int x,y;
void output()
{
System.out.println("x="+x+","+"y="+y);
}
}结果调试的时候这个语句发生了System.out.println(c2.getName());这句话会执行不是发生异常了,Try后面的话不会执行了,就到Catch语句里去了
System.out.println(c2.getName());
这段代码没有什么不对的啊。
Point是你定义的一个类
Class.forName("Point")就是用来动态加载Point类
把Point.class文件放入缓存Class c2=Class.forName("Point"); //加载类
Point point = (Point)c2.newInstance(); //实例化对象,这两行等同于Point point = new Point();
那么后面的那句话System.out.println(c2.getName());就不应该执行了,到跳到catch 里执行不是这样的吗