按要求完成以下三道编程题,请标明题号: 1、(static综合)定义一个Teacher类和一个测试类,在测试类中创建Teacher对象并引用。 Teacher类: (1)声明2个私有静态变量,整型totalNumber,用于统计教师人数;String类型totaleNames,用于汇总教师姓名; (2)声明静态代码块:为totalNumber初始化为0,为totaleNames初始化为""; (3)一个静态方法showTotal(教师人数和所有教师姓名); (4)类中定义属性描述姓名(name),系部(depart),课程(course),并封装; (5)定义一个带参数的构造方法(给姓名、系部、课程设置初始值),在构造方法中将新建教师统计到总人数; (6)定义一个成员方法submit,完成教师姓名上报功能,即将教师姓名汇总至静态变量totaleNames中。 (7)定义一个方法show,输出对象详细信息。例如:在信息系工作,担任计算机课程。 测试类: 在main方法中 创建该类的3个对象(s1,s2,s3),分别调用对象的submit和show方法。调用静态方法showTotal,理解静态变量与实例变量的区别,理解静态代码块和静态方法的特性。 2、(垃圾回收)编程验证垃圾回收方法System.gc()的功能: (1)定义一个Person类,在Person类中定义一个成员变量name,在Person类中定义一个public void finalize(){}方法,该方法输出对象的name属性值,并提示该对象被回收; (2)定义一个测试类,创建Person对象,为其name属性初始化,并将其变为垃圾对象,通过调用System.gc()方法来回收垃圾。 3、(内部类)在Outer类中定义成员内部类Inner,并在外部类的成员方法中使用内部类。 (1)Outer类中定义一个私有的、int类型成员变量num;在Inner类中定义成员方法numUp(),该方法内使num增1;在Inner类中定义一个show()方法,用于输出num的值;在外部类中定义innerTest()方法,该方法中创建Inner对象,分别调用该对象的两个方法; (2)定义一个测试类。在主方法中创建Outer对象out,调用Outer对象的innerTest()方法;在主方法中创建一个Outer.Inner对象in,调用2次它的numUp()方法,再调用它的show()方法。