java又一摘要反思

  核心java一本很好的书(@more@)

只能私有内部类。
常规类总是包或公共可见性。

内部类:如果一个内部类有构造函数,编译器修改它们,
添加一个外部类引用参数。
一个内部类方法可以访问自己的数据字段
和外部对象创建它。


内部类->本地内部类->匿名内部类

当你会使用函数指针在c++中,
你应该考虑在Java中使用一个接口。
我们建议您使用方法对象在您自己的程序只在绝对必要时
。使用接口和内部
类几乎总是一个更好的主意。特别是,我们回声
Java的开发人员,建议不使用方法对象回调函数
。使用接口回调
导致代码运行更快,更易于维护。
=====================================
使用反射来分析类的功能
示例盘中。ReflectionTest。java
1。进口java.util。*;
2。进口数组;*;
3。
4。公开课ReflectionTest
5。{
6。公共静态void main (String [] args)
7。{
8。//从命令行参数读取类名或用户输入
9。字符串名称;
10。如果(arg游戏。长度> 0)
11。name=参数[0],
12。其他
13。{
14。扫描仪在=新扫描仪(系统);
15。system . out。println(“输入类名(例如java.util.Date):”);
16。name=in.next ();
17。}
18岁。
19。试着
20。{
21。//打印类名和父类名(如果!=对象)
22。类cl=forname(名字),
23。类supercl=cl.getSuperclass ();
24。system . out。打印(“阶级”+名字);
25。如果(supercl !=null & & supercl !=Object.class)
26。system . out。打印(“延伸”+ supercl.getName ());
27。
28。System.out.print(“   {   ”);
29。printConstructors (cl);
30。System.out.println ();
31。printMethods (cl);
32。System.out.println ();
33。printFields (cl);
34。System.out.println (“}”);
35。}
36。抓住(ClassNotFoundException e) {e.printStackTrace ();}
37。system . exit (0);
38。}
39。
40岁。/* *
41。打印所有的类的构造函数
42。@param cl 43类
。*/
44。公共静态孔隙printConstructors(类cl)
45岁。{
46。构造函数[]构造函数=cl.getDeclaredConstructors ();
47岁。
48。(构造函数c:构造函数)
49。{
50。字符串名称=c.getName ();
51。system . out。打印(" + Modifier.toString (c.getModifiers ())),
52。system . out。打印(+名字+”(“);
53。
54。//打印参数类型
55。类[]paramTypes=c.getParameterTypes ();
56。for (int j=0;j 57。{
58岁。如果(j> 0) system . out。打印(",");
59。System.out.print (paramTypes [j] . getname ());
60岁。}
61。System.out.println(“;”); 62年
。}
63。}
64。65年
。/* *
66。印刷类的所有方法
67。@param cl类
68。*/
69。公共静态孔隙printMethods类(cl)
70。{
71。方法[]方法=cl.getDeclaredMethods(); 72年
。73年
。(方法m:方法)
74。{
75。类retType=m.getReturnType(); 76年
。字符串名称=m.getName(); 77年
。78年
。//打印修饰符,返回类型和方法名称
79。system . out。打印(" + Modifier.toString (m.getModifiers ())),
80。system . out。打印(" + retType.getName() + " " +名称+”(81年),
。82年
。//打印参数类型
83。类[]paramTypes=m.getParameterTypes(); 84年
。for (int j=0;j 85。{
86。如果(j> 0) system . out。打印(",");87年
。System.out.print (paramTypes [j] . getname()); 88年
。}
89。System.out.println(“;”); 90年
。}
91。}
92。93年
。/* *
94。印刷类的所有字段
95。@param cl类
96。*/
97。公共静态孔隙printFields类(cl)
98。{
99。?[]字段cl.getDeclaredFields(); 100年
。101年
。(字段f:字段)
102。{
103。类类型=f.getType(); 104年
。null

java又一摘要反思