我始终认为纯理论的东西很难帮助新手了解新的东西,所以我打算用案例来解释这些基础知识,案例懂了之后再回过头来看理论会有更好的认识
本次主要讲的是通过对象或者对象实例获得该对象的包的全名和类名。
下面上代码:
package com.riadu.test;
/**
* 手机模型
* @author www.riadu.com
* @date 2012-07-25
*/
public class Mobile {
private String size; //型号
private String factory; //厂商
public Mobile(){
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getFactory() {
return factory;
}
public void setFactory(String factory) {
this.factory = factory;
}
}
下面是测试类
package com.riadu.test;
/**
* 测试类
* @author www.riadu.com
* @date 2012-07-25
*/
public class Client {
public static void main(String[] args) {
Mobile mobile = new Mobile();
//以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
String packagePath =mobile.getClass().getName();
System.out.println(packagePath);
}
}
运行结果:com.riadu.test.Mobile
解释:
Class
类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该Class
对象。基本的 Java 类型(boolean
、byte
、char
、short
、int
、long
、float
和double
)和关键字 void
也表示为 Class
对象。
Class
没有公共构造方法。Class
对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass
方法自动构造的。
我们可以通过类实例来获得Class也可以直接通过类来获得
通过实例需要使用gtClass()方法
通过类则直接用class字段 具体实现请看代码