黑马程序员技术交流社区

标题: 关于java Class类的疑惑 [打印本页]

作者: android0276    时间: 2014-7-6 20:14
标题: 关于java Class类的疑惑
  1. package com.itheima;

  2. public class Test {

  3.         public static void main(String[] args) {

  4.                 Person p1 = new Person();
  5.                 Class c1 = Person.class;
  6.                 Class c2 = p1.getClass();
  7.                 Class c3 = null;

  8.                 try {
  9.                         // =================问题区=======================
  10.                         c3 = Class.forName("test.Person");
  11.                         /*
  12.                          * 为什么这个地方写上test.Person后c2==c3就返回true;而写上Person后c2==c3就返回false
  13.                          */
  14.                         // =================问题区=======================

  15.                 } catch (ClassNotFoundException e) {
  16.                         // TODO Auto-generated catch block
  17.                         e.printStackTrace();
  18.                 }
  19.                 System.out.println(c2 == c3);
  20.         }

  21. }

  22. class Person {
  23.         String name = "shuiguo";

  24.         public String getName() {
  25.                 return name;
  26.         }
  27. }
复制代码



作者: fantacyleo    时间: 2014-7-6 21:11
测试结果如下:
1.   c3 = Class.forName("Person"); 则c2==c3返回true
2. Person类既不在test这个包中,又不是Test的内部类,"test.Person"这个写法会报ClassNotFound异常

作者: luheqi    时间: 2014-7-6 21:37
不加就搜索默认包,可能在其他包内有同名的类。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2