首页 > 编程语言 > 详细

Java反射笔记

时间:2018-08-28 00:11:53      阅读:185      评论:0      收藏:0      [点我收藏+]

 

  第一:先认识Class类

类也是一种实例,类的实例创建有三种方式。

类的实例对象创建的方式有两种。以下的代码详细的介绍:

package com.company;
import java.util.*;

public class Main {

    public static void main(String[] args) {

        //类的实例创建有两种方式
        Vae xs = new Vae();
        xs.music();
        //每个类都是一个实例的对象,Vae类是一个Class类的对象,其实例表达方式有3种
        //第1种,类的class
        Class c1 = Vae.class;
        //第2种,类的实例的getClass
        Class c2 = xs.getClass();
        //第3种,类的名字,这种是最常用的方式,我们在写Java反射的时候会经常使用
        Class c3 = null;
        try {
            c3 = Class.forName("com.company.Vae");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        System.out.println(c1 == c2);
        System.out.println(c2 == c3);

        //类的实例的第2种创建方式
        try {
            Vae xs2 = (Vae) c1.newInstance();
            xs2.music();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

    }
}

class Vae{
    public void music(){
        System.out.println("许嵩是最佳歌手");
    }
}

这段代码的输出结果是:

技术分享图片

下面来整理一下代码,首先,类的实例的创建的两种方法:

//第一种,最常见的new
 Vae xs = new Vae();


//第二种,newInstance()方式,这种方式必须加try catch,否则会报错
try {
    Vae xs2 = (Vae) c1.newInstance();
    xs2.music();
} catch (InstantiationException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
}

其次,类实例的创建方法,其实就是获取这个类的类型,有三种:

//第1种,类的class
Class c1 = Vae.class;
//第2种,类的实例的getClass
Class c2 = xs.getClass();
//第3种,类的名字,这种是最常用的方式,我们在写Java反射的时候会经常使用
Class c3 = null;
try {
    c3 = Class.forName("com.company.Vae");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

第三种的确是最常见的,而且c1,c2,c3是一样的,输出==的时候结果是true。

这些就是Class类的全部知识。先记住。接下来讲解Java的动态加载和静态加载。很快,就可以触及到反射了。

 

 待续。。。

 

Java反射笔记

原文:https://www.cnblogs.com/yunquan/p/9545473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!