(1)创建Person类,Person的属性有:
Strng name 姓名 String sex 性别 Integer age 年龄
String idNo 身份证号
Boolean isMerried 是否已婚
请生成相应的getter、setter方法,并创建两个构造方法:Person(),Person(String idNo),把Person编译成.class文件。请通过反射技术,为Person生成相应的.java代码,java代码中的方法的方法体为空,即方法内部代码不用生成。请注意生成的java代码的格式。
(2) 请为第1题目中Person类创建实例(对象),并为每个属性赋值,然后采用反射技术,把创建的Person实例的属性值存入文本文件中,文本文件的格式为: idNo = 5122245566 name = 张小平 age = 23 sex = Male
isMerried = true
三、实验结果
写实验报告。内容包括:
1、习题的运行结果,源程序。 2、程序调试中出现的错误提示。(英文、中文对照) 3、若有没通过的程序,分析原因。
四、选做题目
(1) 请采用反射技术为一个的类的所有私有属性生成相应的getter、setter方法。
(2) 思考Java的动态代理是怎么实现的?请试图设计动态代理功能,并实现核心的代码。(提示:如果在运行时能够把.java的文件编译成.class文件,是不是问题就可以解决)
(3)编写一个实现IOC功能的简单Spring框架并编写测试程序。 (4)创建代理类 PersonProxy,PersonProxy的在代理Person类的所有setter方法时,把方法的调用时间、方法名称写入到文本文件中,每一行日志的格式为: 时间:2012-09-01 23:34:24;方法名称:setName;参数:张小平
实验3 泛型
一、实验目的
9
1、了解泛型的基本概念以及为什么要使用泛型。
2、了解泛型类、泛型方法、泛型接口、泛型数组以及泛型的继承。 3、学习如何利用泛型写出更加严谨的程序。
二、实验内容
1、验证实验
(1)输入如下程序观察编译器会报什么错误。
public class GenericTest {
public static void main(String[] args) {
List
list1.add(new Integer(1));
list1.add(new String(\测试\
}
}
(2)输入如下程序,观察输出结果是什么?
public class Person
protected T t;
public Person(T t){
this.t = t;
}
public String toString(){
return \参数的类型是:\
}
(3)输入如下程序,观察输出结果是什么?
public class GenericTest
public static void main(String[] args) throws Exception{
Class> clazz = Integer.class;
System.out.println(clazz.getCanonicalName());
clazz = String.class;
System.out.println(clazz.getCanonicalName());
clazz = Date.class;
System.out.println(clazz.getCanonicalName());
}
}
2、程序填空 (1)如下程序,在GenericTest类中创建一个Interger类型的Person对象。并输出person对象的类型名称。
10
public class Person
protected T t;
public Person(T t){
this.t = t;
}
public String toString(){
return \参数的类型是:\
}
}
public class GenericTest
public static void main(String[] args){
————————————
————————————
}
(2)如下代码,怎么填才能使其正确 ArrayList dates___=new ArrayList___(); dates.add(new Date);
Date date = dates.get(0) ; 三、根据下面的要求编写程序
(1)设计一个泛型堆栈类GenericStack,并编写一个测试程序。 (2)使用泛型二分查找法实现下面的方法。
Public static
(3)实现下面的方法,返回数组中的最大元素
Public static
四、实验结果
写实验报告。内容包括:
1、习题的运行结果,源程序。 2、程序调试中出现的错误提示。(英文、中文对照) 3、若有没通过的程序,分析原因。
五、选做题目
11
(1)使用泛型选择排序法实现下面的方法
Public static
Public static
(3)编写一个泛型方法返回二维数组的最大元素
Public static
一、实验目的
实验4 注解
12