getclass()和getclass().getName()以及getName有什么不同呀?

张甲 2017-08-26 06:30:25
一共三个问题,都在注释中~
麻烦大侠们出手相助!
package tv.zhangjia.fs;

public class Test {
public static void main(String[] args) throws ClassNotFoundException {
Class<? extends Car> c1 = new Car().getClass();
Class<?> c2 = Car.class;
Class<?> c3 = Class.forName("tv.zhangjia.fs.Car");

Test t = new Test();
System.out.println(t.getClass());
System.out.println(t.getClass().getName());
// System.out.println(t.getName());//问题一:为什么会报错呢?
System.out.println("-----------");
System.out.println(c2.getClass());
//问题二:getClass和getName()以及getCLass().getName()这三个有什么区别?
System.out.println(c2.getName());//问题三:什么时候该用getClasss?
//什么时候该用getCLass.getName()?什么时候该用getName?
System.out.println(c2.getClass().getName());
System.out.println(c3);
}
}

class Car {
public Car() {
System.out.println("创建对象成功");
}

}



输出:
创建对象成功
class tv.zhangjia.fs.Test
tv.zhangjia.fs.Test
-----------
class java.lang.Class
tv.zhangjia.fs.Car
java.lang.Class
class tv.zhangjia.fs.Car
...全文
515 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
张甲 2017-08-27
  • 打赏
  • 举报
回复
引用 2 楼 u012934325 的回复:
你打印出来看看结果啊
问题里有我打印的结果呀
墨笙弘一 2017-08-26
  • 打赏
  • 举报
回复
你打印出来看看结果啊
李德胜1995 2017-08-26
  • 打赏
  • 举报
回复
getName和其他两个扯不上关系,就是类的方法而已,报错是说Test里面没有这个方法。。。 getClass()是等到t的Class对象,使用 System.out.println打印会调用到toString方法 public String toString()将对象转换为字符串。字符串的表示形式为字符串 "class" 或 "interface" 后面紧跟一个空格,然后是该类的完全限定名,它具有 getName 返回的那种格式。。。 getCLass().getName()就是Class对象的getName方法,,, public String getName()以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 如果此类对象表示的是非数组类型的引用类型,则返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明。 如果此类对象表示一个基本类型或 void,则返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String。 如果此类对象表示一个数组类,则名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧