Class类学习之Class概念理解,获取和基本操作

Class的概念:

Java中说万物皆对象,我们使用的对象都是某个类的实例,那么类是不是对象呢,又是谁的对象呢?

类当然也是对象,java中有一个Class类,所有的类都是它的对象。当我们声明一个类编译时,Java虚拟机会调用相应的构造方法(此处与类加载器相关以后会讲到),构造出一个类对象供我们使用

JDK的API中是这么说的:Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的

如果你继续问,Class是谁的对象呢,我只能说,它应该算jvm虚拟机的对象

所以Class实际上就是我们平时创建的类的类。慕课网上有一个老师将其命名为类类型,这里我觉得可以借用一下

所有的类都是Class的实例,也就是说每个类都有其类类型(这是当然的了,每个对象都属于它的类嘛),每个类的类类型都不一样,类类型包含了这个类的一切,比如这类的所有属性,方法,类属于哪个包等等。一般人可能会说,我用一个类的实例不也能获取类的属性和方法吗,但是你获取的只是方法的使用权限,我Class获取的是方法本身。比如Class可以java.lang..String类的私有方法的名字,你用其他方法怎么获取?所以,获取到类的类类型,你也就拥有了更大的权限来操作这个类

Class的获取:

类类型的的获取有三种方式:

1、Class classOne = Class.forName(全类名);

2、Class classTwo = 类名.class;

3、Class classThree = 对象.getClass;


获取类类型有什么用呢,平时用到的很少,但是用到框架和反射的时候就会有很大用处


Class的基本操作

1、属性获取的四种方式:


    1)Class.getField()   //获取指定的public属性

    2)Class.getFields()   //获取所有public属性

    3)Class.getDeclarField()  //获取任意指定的属性

    4)Class.getDeclareFields()  //获取所有属性

2、方法获取的四种方式:

    1)Class.getMethod()   //获取指定的public方法

    2)Class.getField()   //获取所有public方法

    3)Class.getDeclareMethod()  //获取任意指定的方法

    4)Class.getDeclareMethods()  //获取所有方法

3、用Class创建对象:

举例说明:

class Person{
	
	public String name;
	int age;
	
	public Person() {}
	public Person(String name){
		this.name = name;
		this.age = age;
	}
}


public class ClassFunctions {
	public static void main(String[] args) {
		//获取Class
		Class PersonClass = Person.class;
		//获取类的构造方法
		Constructor[] constructors = PersonClass.getConstructors();
		
		//打印出所有的构造方法,看看需要使用哪个
		for (Constructor constructor : constructors) {
			System.out.println(constructor.toString());
		}
		
		//构造Person对象
		try {
			Person p = (Person) constructors[0].newInstance();
		} catch (Exception e) {}
		
	}
		
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值