好了,我们开始这个系列详解二的学习。
先介绍一下Class类的常用方法
static ClassforName(String name) 返回指定类名name的Class对象
Object newInstance() 调用缺省构造函数,返回class对象的一个实例
getName() 返回此Class对象所表示的实体(类,接口,数组类或者是void)的名称
Class getSuperClass() 返回当前Class对象的父类的Class对象
Class[] getinterfaces() 获取当前Class对象的接口
ClassLoader getClassLoader() 返回该类的类加载器
Constructor[] getConstructors() 返回一个包含某些Constructor对象的数组
Method getMothed(String name, Class… T) 返回一个Method对象,此对象的形参是paramType
Field[] getDeclaredFields() 返回Filed对象的一个数组
下面介绍4种获取类的几种方式:
public class test02 {
public static void main(String[] args) throws ClassNotFoundException {
Person person = new Student();
System.out.println("这个人是:" + person.name);
//方式一:通过对象获取
Class c1 = person.getClass();
System.out.println(c1.hashCode());
//方式二:forname获得
Class c2 = Class.forName("com.company.Student");
System.out.println(c2.hashCode());
//方式三:通过类名.class获得
Class c3 = Student.class;
System.out.println(c2.hashCode());
//方式四:获得一个类的父类
Class c4 = c1.getSuperclass();
System.out.println(c4);
}
}
class Person{
public Person(String name) {
this.name = name;
}
public Person() {
}
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
class Student extends Person{
public Student(){
this.name = "学生";
}
}
class Teacher extends Person{
public Teacher(){
this.name = "老师";
}
}
下面展示输出结果:
好了,先到这里,推荐一下B站的up主:狂神说java,我基本上都是跟着他学习的~