为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
反射——Java高级开发必须懂的_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

反射——Java高级开发必须懂的

Cedar
难度入门
时长 1小时20分
  • 1.Class.forName("类的全称")不仅表示了类得类类型,还代表了动态加载类 编译时刻加载类是静态加载类、运行时刻加载类是动态加载。 2.new 创建对象是静态加载类,在编译时刻就需要加载所有的可能使用到的类;通过动态加载类可以实现这个问题 Class c = Class.forName(args[0]); 通过类类型,创建该类对象。 OfficeAble oa=(OfficeAble)c.newInstance();//在此之前应该定义个接口Interface OfficeAble,并且让子类实现它。 oa.start(); 。。。。在编译时Word.java需要重新编译,而OfficeBetter.java不需要,每次添加新的功能的时候只用编译使用了接口的子类,然后运行时输入 java OfficeBetter Word,这时oa是Word类 3.在线升级用的就是动态加载类。功能性的类,要使用动态加载,而不能使用静态加载。
    查看全部
  • 1.类类型的创建 Class c1 = Foo.class;//说明任何一个类都有一个隐含的class静态成员变量。 Class c2 = (new Foo()).getClass();//通过类的实例对象,获取该类的类类型。 Class c3 = Class.forName(类的全称,包括包名)//包名加类名,会有异常需要捕获ClassNoFoundException 不管是c1,c2还是c3都代表了Foo类的类类型(class type),一个类只可能是class类的一个实例对象,故他们相等 2.可以通过类得类类型创建该类的对象实例--->通过c1.c2或c3创建Foo的实例对象: Foo foo=(Foo)c1.newInstance();//Foo类需要有无参数的构造方法,且必须进行类型转换。
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 动态加载类
    查看全部
  • 动态加载Class c1 = Class.getClassName(name); 配合接口OfficeIm off = (OfficeIm)c1.newInstance (); off.start (); 实现一个叫做OfficeIm接口,这个接口是自创的,里面有一个start();的方法。 这样生成的动态类只要将自己的代码写入start();方法的实现体中即可。
    查看全部
  • 类也是对象,其是java.lang.class 的实例对象
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-07-22

  • 在java语言中,只有静态的成员和普通数据类型类没有对象,但后者有包装类对象
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-07-22

  • 面向对象的世界里,万物皆对象
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-07-22

  • 类类型
    查看全部
  • new创建对象是静态加载类,在编译时就要加载所有的类
    查看全部
  • 获取函数信息
    查看全部
  • java中集合的泛型,只在编译阶段有效,用来限定输入的,编译之后是去泛型的
    查看全部
  • Class类 1)在面向对象的世界里,万事万物皆对象。 类是对象,类是java.lang.Class类的实例对象。 There is a class named Class 2)//Foo的实例对象如何表示 Foo foo1=new Foo();//foo1就表示出来了 //Foo这个类也是一个实例对象,Class类的实例对象,如何表示呢? //任何一个类都是Class的实例对象,这个实例对象有三种表示方式 //第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量class Class c1=Foo.class; //第二种表达方式--->已经知道该类的对象通过getClassF方法 Class c2=foo1.getClass(); //官网c1,c2表示了Foo类的类类型(class type),万事万物皆对象,类也是对象,是Class类的实例对象 //这个对象我们称为该类的类类型 //不管c1 or c2都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 //第三种表达方式 Class c3=null; c3=Class.forName("com.imooc.reflect.Foo"); //我们完全可以通过类的类类型创建类的对象实例--->通过c1 or c2 or c3创建Foo的实例对象 Foo foo=(Foo)c1.newInstance();//需要有无参数的构造方法
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

  • Class.forName()不仅表示类类型,还表示动态加载类 编译时加载的类称为静态加载类,运行时加载的类称为动态加载类 new 创建对象是静态加载类,需要在编译时就全部进行加载 通过动态加载可以解决之运行需要用到的类 Class.forName 创建一个类类型,在运行时加载 通过类类型创建对象 newInstance()
    查看全部
  • 万事万物皆对象,所以一个类也是一个class的实例对象,如何创建一个class的实例对象呢?有以下三种方法:<br> class Foo{<br> }<br> 方法1: class c1=Foo.class;<br> 方法2:Foo foo=new Foo(); class c2=foo.getclass();<br> 方法3:Class c3=null; c3=class.forName("创建的类的完整路径"); 可以通过类的类类型创建一个实例对象 Foo foo2=(Foo)c1.newInstance();
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 获取类的成员名称getname和类的方法名
    查看全部

举报

0/150
提交
取消
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!