传智播客Java培训 反射、注解
反射机制
特点:动态获取类以及类中成员。
通常在程序扩展时,会使用父类或者接口完成,其实就是多态。
在这种情况,运行时,还是需要给其传递一个自定义的子类对象。需要自己new来完成。
虽然修改动作已经很少了,但还是需要修改部分细节。
interface Inter{void show();}
class Demo{
void function(Inter in){
in.show();
}
}
main(){
Demo d = new Demo();
d.function(new InterImpl());//这里需要传入一个新的后期子类对象。
}
class InterImpl implements Inter{
public void show(){}
}
能不能完全不改动源程序,就可以运行后期子类内容呢?
我们可以对外暴露一个配置文件,该配置文件可以是键值对形式的.ini文件、xml文件。
通过反射机制动态获取子类字节码文件,并动态创建其对象。
main(){
Demo d = new Demo();
BufferdReader bufr = new BufferedReader(new FileReader("config.txt"));
String className = bufr.readLine();
Class clazz = Class.forName(className);
Inter in = (Inter)clazz.newInstance();
d.function(in);
}
通过上面示例,可以看到反射进一步增强了程序的扩展性。
Class 类的实例表示正在运行的 Java 应用程序中的类和接口,它将字节码文件封装成了对象,类字段,方法,构造函数也被封装为对象,我们可以通过对象效用获取类中的字段方法和构造函数。
例:
package cn.itcast.test;
public class Person {
private String name;
private int age;
private String address;
public Person(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
public void show(String name,int age){
System.out.p
相关文档:
Java 7提供了一个新API访问文件系统,但除此之外,JSR 203(NIO.2)还包含其它很多新特性,这个新版本的确新增了很多改善I/O编程的类,本文将会介绍下面的新特性:
· SeekableByteChannel:随机访问通道;
· MulticastChannel:允许IP多播的通道;
· NetworkChannel:新的网络通道超级接口;
· ......
java中接口在开发中占重要地位
(1)接口中的所有方法都是public abstract
(2)在接口中声明方法时,不能使用native,static,final,synchronized,private,protect等修饰符,即只能使用public abstract(默认)
......
转帖this的用法方便自己以后查看
必须用this关键字的三种情况:
1、我们想通过构造方法将外部传入的参数赋值给类的成员变量,构造方法的形式参数名称与类的成员变量名相同。例如:
class Person
.. ......
java学习已有段时间,个人觉得,快速成长起来有几中途径:
一培训,到权威的机构去培训,能在短期内达到比较好的效果.
二自学,在自学中除了看一些视频教程外,还要额外看一些参考书.有了这些理论,更多的是要实践,编程就是要不断的动手,从错误中学习,从编程中学习,让自己的理论知识更加扎实,有了一定的理论基础,个人认为可以做有 ......
1.请写出下列Java代码的输出结果
package test;
public class FatherClass()
{ public FatherClass()
&n ......