• 大小: 2.78MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: Java
  • 标签:

资源简介

徐传运 清华大学出版社 JAVA高级程序设计 思考与练习答案 算法与程序设计 一到九章答案都有,文字部分也有答案,其余为代码,导入后即可运行。

资源截图

代码片段和文件信息

package ddd.ajava.chapter2.question1;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

import ddd.ajava.util.StringUtil;

/**
 * @author lenovo 
 * 反射得到Person源代码有如下步骤 
 * 1.获得包名 
 * 2.获得类名 
 * 3.获得构造方法
 * 4.获得属性
 * 5.获得方法 
 * 6.组装成为一个类
 */
public class GeneratePerson {
private static final String BLANK = “ “;
private static final String TAB = “\t“;
private StringBuilder sb = new StringBuilder();

public static void main(String[] args) {
GeneratePerson gp = new GeneratePerson();
gp.generate();
}

/*private void testModifier(){
System.out.println(Modifier.PUBLIC);//1
System.out.println(Modifier.PRIVATE);//2
System.out.println(Modifier.PROTECTED);//4
System.out.println(Modifier.INTERFACE);//
}*/

private static Class clazz = null;
static {
try {
clazz = Class.forName(“ddd.ajava.chapter2.question1.Person“);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public void generate(){
this.getPackageDesc();
this.getClassDesc();
this.getFieldDesc();
this.getConstructorDesc();
this.getMethodDesc();
sb.append(“\n}“);
this.generateOutput();
}

private void getPackageDesc() {
String packageName = clazz.getPackage().getName();
sb.append(“package “+packageName+“.generated;“);
}

/**
 * Modifier类修饰符的对应情况
 * Modifier.PUBLIC //1
 * Modifier.PRIVATE//2
 * Modifier.PROTECTED//4
 * “default“//0
 * modifier值>=512即为interface,0-511是class
 */
private void getClassDesc() {
String classModifier=““;
int modifier=clazz.getModifiers();
if(modifier==0){
classModifier=“class“;
}else if(modifier==1){
classModifier=“public class“;
}else{
if(Modifier.isPublic(modifier)){
classModifier=“public interface“;
}else{
classModifier=“interface“;
}
}
String className = clazz.getSimpleName();
sb.append(“\n\n“+classModifier+BLANK+className+“{“);
}

private void getConstructorDesc() {
Constructor[] cons = clazz.getDeclaredConstructors();
for (Constructor c : cons) {
Class[] param=c.getParameterTypes();
StringBuilder paramSB=new StringBuilder();
//有参数的方法,要在类型后面添加变量名
if(param.length>0){
paramSB.append(clazz.getSimpleName()+“(“);
String arg=“arg“;
for(int i=0;i paramSB.append(param[i].getCanonicalName()+BLANK+arg+i+““);
}
paramSB=new StringBuilder(paramSB.substring(0 paramSB.length()-1));
paramSB.append(“)“);
String name=c.toString();
name=name.replaceFirst(“\\S(\\w*\\.*)*\\((\\w*\\.*\\ *)*\\)“paramSB.toString());
sb.append(“\n“+TAB+name+“{\n\n“+TAB+“}\n“);
continue;
}

String name=c.toString();
name=name.replaceFirst(“\\S(\\w*\\.*)*\\(“ cla

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-01 16:18  课后习题参考答案\
     文件       92160  2014-04-16 21:33  课后习题参考答案\第一章和第三章.doc
     目录           0  2014-04-16 21:28  课后习题参考答案\第二章,第四章至第九章(代码)\
     文件         950  2013-08-31 08:33  课后习题参考答案\第二章,第四章至第九章(代码)\.classpath
     文件         381  2013-08-22 12:16  课后习题参考答案\第二章,第四章至第九章(代码)\.project
     目录           0  2014-04-16 21:28  课后习题参考答案\第二章,第四章至第九章(代码)\.settings\
     文件          88  2013-08-19 21:42  课后习题参考答案\第二章,第四章至第九章(代码)\.settings\org.eclipse.core.resources.prefs
     文件         629  2013-08-14 13:21  课后习题参考答案\第二章,第四章至第九章(代码)\.settings\org.eclipse.jdt.core.prefs
     文件           0  2013-08-22 12:11  课后习题参考答案\第二章,第四章至第九章(代码)\a.txt
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question1\
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question10\
     文件        3844  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question10\GenerateSQL.class
     文件        1254  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question10\Person.class
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question11\
     文件        5510  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question11\ConvertBtnPersonAndMap.class
     文件        1890  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question11\Person.class
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question1\generated\
     文件        1491  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question1\generated\Person.class
     文件        6173  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question1\GeneratePerson.class
     文件        1518  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question1\Person.class
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question2\
     文件          72  2013-08-20 09:40  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question2\Person.txt
     文件        4383  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question2\StoreAttrToTxt.class
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question3\
     文件        4697  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question3\SetAttrToInstance.class
     目录           0  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question4\
     文件        1119  2018-01-01 16:19  课后习题参考答案\第二章,第四章至第九章(代码)\bin\ddd\ajava\chapter2\question4\Bootstrap.class
............此处省略296个文件信息

评论

共有 条评论