已采纳回答 / 阳少兮_s
以下所说的只是自己的理解。如果有不对的情况请大家指正我。一般情况下我们都会使用new Foo().print();这种情况下是我们肯定使用Foo的对象的时候我们会这么用。但是当我们需要在运行时才能确认哪个类的print方法时会用到反射。比如现在有个方法,根据我们传递的类名来调用方法public void print(String className) { Class<?> c = Class.forName(className); ......}这样,只要你传入正确的类名,不仅能调用Foo类...
2015-07-28
已采纳回答 / 好帮手慕珊
这个其实用不用静态方法都可以,这里面之所以使用静态方法,是觉得该方法就是一个常用的方法,不属于某个对象特别的行为。比如求数学绝对值的方法,Math.abs(9),这个abs方法就是一个静态方法,它就是求绝对值这样一个运算,一般我们把这种方法可以定义为静态。再举一个例子,Cat类,里面有一个eat()方法,指的是某个具体的Cat对象在eat(),这时就不适合使用静态方法了。
2014-12-30
已采纳回答 / 偌颜宁
Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
2014-11-26
最赞回答 / 比利海灵顿
(thinking in java 4th p319)newInstance是实现虚拟 构造器的一种方法,(虚拟构造器:允许你不知道确切类型,但是你必须要正确的创造自己)而c1,c2,c3仅仅只是Class类的引用,编译器不具备任何更多信息,只有在创建新实例的时候会得到Object引用(注意 是Object引用),你要想用这个引用那你必须要向下转型啦,就是这里的强制类型转换。。
2014-11-26
已采纳回答 / 好帮手慕珊
如果一个java文件只有一个类的时候,这个类可以不用public修饰,文件名就是类名。class前没有public默认是包访问权限,也就是这个类只能被同一个包中的类访问。当一个java文件中有多个类时,只能有一个类是public修饰,并且该类作为java文件的文件名。
2014-11-26