Java中的内部类和反射

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 11:02   791   0


Java中的内部类和反射是Java中学习最难的一部分,可能对于初学着来说很难第一时间内就全部掌握,先来看一下他们的具体定义吧。
内部类
1) 从 JDK 1.1 以后,把具有包含关系的类应用到语法上的包含的一种实现
2) 包括了静态内部类、成员内部类、局部内部类、匿名内部类
3) 静态内部类和成员内部类定义于类内部,局部内部类和匿名内部类定义在方法内部

静态内部类:
a.定义在类的内部
b.相当于静态成员
Out t = new Out();
t.member/member()
t.this.imember
OutStatic os=new Out.Static() os.inmember/()
c.添加static修饰符
d.编译后产生的class的命名规则如下,
外部类名$内部类名.class

成员内部类
a.定义在类的内部
b.相当于类的成员
1.直接访问外部类的成员
2.在外部类创建成员内部类实例this.new inner()
3.外部类的外部创建成员内部类
(new outter()).new inner()
out_in_class.imember

c.编译后产生的class的命名规则同静态内部类

局部内部类
a.定义在方法的内部
b.相当于方法的局部变量
1.实例化方法 new inner()
2.由于其是局部内部类,不能在方法外访问,不能加访问 权限修饰符
c.编译后产生的class的命名规则为
外部类名$序号内部类名.class
Week2$1DayIterator.class

匿名内部类
a.定义在方法内部
b.匿名内部类只能实现一个接口或者继承一个抽象类
c.匿名内部类对接口和抽象类必须全实现
d.匿名内部类中不可以显式定义构造器
非静态初始化代码块
{ ... } 实现成员变量初始化功能

f.匿名内部类产生的class的命名规则为
外部类名$序号.class
Week2$1.class
写法:
new 接口/抽象类名称(){...}

10.反射
通过一种机制获得类的具体的内容的过程成为反射。
这种机制我们成为反射机制。
1.创建一个类 new ...();
classname constructor field method ...
Class {...... .... ... ....}
2.创建一个类的对象的同时也对这个类创建一个Class对象。
使用Class对象保存类的信息。
3.对一个类通过反射机制可以把它的信息反射到Class对象中,获取该类的信息。
4.反射机制的作用:
a. 可以在运用类之前,把封装在类中信息反射得到;
b. 在不知道一个类的名字的时候,不运行也可以创建类的 实例
c. 可以通过反射突破封装特性获取/设置属性
d. 可以通过反射在不运行类的情况下,可以执行方法
e. 可以不运行的情况下,创建数组,设置长度,调整元素

5.所有的反射机制的功能 在 java.lang.reflect包下
在使用Java反射方面是内容是需要用到的Java架包和一些API
API包括:
java.lang.Class
java.lang.reflect.Field
java.lang.reflect.Method
java.lang.reflect.Array
java.lang.reflect.Constructor
好了,今天就先看到这里了。


Class<?> classIntance = Class.forName(this.getClass()
.getCanonicalName()
+ "$" + className);
System.out.println(classIntance.getCanonicalName());
Constructor<?> constructor = classIntance
.getDeclaredConstructor(SfsDownLoadCheck.class);
constructor.setAccessible(true);
Object newInstance = constructor.newInstance(sfsDownLoadCheck);
// Invoke the method to download file
DownloadStrategies downloadStrategies = (DownloadStrategies) newInstance;
int length = downloadStrategies.getContent(filePath).length();

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP