Java反射第一课认识Class类
2016-08-05 13:25
507 查看
Class类
1.在面向对象的世界里,万事万物皆对象
(1)先来理解两个问题:
(1)Java语音中,静态的成员,普通数据类型是不是对象?
【普通的数据类型int a = 5 不是面向对象的,但是它有包装类弥补了】
【java静态的东西不是面向对象的,静态的东西不是某个对象的他是属于类的】
所以在面向对象的世界里,万事万物皆对象
(2)类是谁的对象?
类是对象,类是java.lang.Class类的实例对象
Class类的实例对象是什么?---我们每一个对象所属的类就是Class类的实例对象(也就是说Class类的实例对象是类)
(3)Class类的这个对象如何表示
1.在面向对象的世界里,万事万物皆对象
(1)先来理解两个问题:
(1)Java语音中,静态的成员,普通数据类型是不是对象?
【普通的数据类型int a = 5 不是面向对象的,但是它有包装类弥补了】
【java静态的东西不是面向对象的,静态的东西不是某个对象的他是属于类的】
所以在面向对象的世界里,万事万物皆对象
(2)类是谁的对象?
类是对象,类是java.lang.Class类的实例对象
Class类的实例对象是什么?---我们每一个对象所属的类就是Class类的实例对象(也就是说Class类的实例对象是类)
(3)Class类的这个对象如何表示
<pre name="code" class="java">package com.edu.reflect; public class ClassDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub //Foo的实例对象如何表示: Foo foo1 = new Foo(); //Foo 这个类也是一个实例对象,是Class类的实例对象 //任何一个类都是Class的实例对象,Class类的实例对象如何表示?3中表示方式 //Class类的构造方法是私有的,只有java虚拟机可以创建,所以我们不能直接new出Class类的实例对象 //第一种表示方式。实际在告诉我们任何一个类都有一个隐含的静态成员变量class Class c1 = Foo.class; //第二中表达方式 已知该类的对象通过getClass方法 Class c2 = foo1.getClass(); /* * 官网:c1,c2表示了Foo类的类类型(class type) * 万事万物皆对象 * 类也是对象,是Class类的实例对象 * 这个对象我们称为该类的类类型 */ //不管c1 or c2 都代表了Foo类的类类型,一个类只可能是Class类 //的一个实例对象 System.out.println(c1==c2);//结果输出true //第三种表达方式 try { Class c3 = Class.forName("com.edu.reflect.Foo"); System.out.println(c2==c3);//true } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //我们完全可以通过类的类类型创建该类的对象实例 try { Foo foo = (Foo) c1.newInstance();//需要有无参数的构造方法 foo.print(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Foo{ void print(){ System.out.println("foo类方法"); } }
相关文章推荐
- Java反射第一课认识Class类
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
- 认识class类 JAVA的反射机制
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
- java中的反射一(Class类的认识)
- java基础之反射(1.认识class类)
- Java反射(一)Class类对象
- java反射学习笔记(1)-----Class类的使用
- 黑马程序员——Java基础---反射Class类、Constructor类、Field类
- Java 反射:Class类,动态加载类获取方法和成员变量构造信息,方法反射的基本操作,集合泛型的本质
- 黑马程序员——反射认识二Constructor.java
- 反射--认识Class类
- Class类与JAVA反射
- Java Class类及反射机制
- JAVA反射和CLASS类
- java基础教程之Class类和反射API介绍
- 黑马程序员——基础加强---反射机制-认识Class类
- Java_14 Class类与Java反射
- java反射之Class类
- 黑马程序员:java中的Class类和反射(一)