`

core-java学习【二】

    博客分类:
  • Java
阅读更多
package com;   
  
import java.util.*;   
  
public class ArrayListTest   
{   
    public static void main(String[] args)    
    {   
        // fill the staff array list with three Employee objects   
        // 声明和构造一个保存Employee对象的数组列表   
        ArrayList<Employee> staff = new ArrayList<Employee> () ;   
           
        Employee temp1 = new Employee("Eric", "Zhang", 80000, 1989, 3, 14) ;   
        Employee temp2 = new Employee("Huiyi", "Chen", 80000, 1989, 3, 14) ;   
           
        staff.add(new Employee("Carl", "Cracker", 75000, 1987, 12, 15)) ;   
        staff.add(new Employee("Harry", "Hacker", 50000, 1989, 10, 1)) ;   
        staff.add(new Employee("Tony", "Tester", 40000, 1990, 3, 15)) ;   
        staff.add(temp2) ;   
           
        //使用add方法将对象添加到列表的指定位置,而不会覆盖原值,原有值会自动往下移动一格   
        staff.add(0 , temp1) ;   
           
        //使用set方法将对象添加到列表的指定位置,会覆盖原值   
        staff.set(4 , temp2) ;   
           
        // 使用remove方法将指定位置的对象从列表中删除,其后的对象将自动往上移一个同时调整列表大小   
        staff.remove(3) ;   
           
        // 方法 size()返回当前列表中元素的个数   
        System.out.println("\nstaff.size()= " + staff.size() + "\n");   
           
        // raise everyone's salary by 5%   
        for(Employee e : staff)   
            e.raiseSalary(5) ;   
        /* 等同于如下for循环  
         * for (int i = 0; i < staff.size(); i++)  
         *  {  
         *        Employee e = (Employee)staff.get(i) ;  
         *        e.raiseSalary(5);  
         *       }  
         */  
                   
        // print out the information about all Employee objects   
        for(Employee e : staff)   
            System.out.println("Name= " + e.getName()   
                    + " , salary= " + e.getSalary()   
                    +" , hireDay= " + e.getHireDay()) ;   
    }   
}  

 

 

package com;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.*;

public class ReflectionTest 
{
    public static void main(String[] args) 
    {
        // read class name from command-line args or user input
        // 从命令行获取参数  name
        String name ;
        if (args.length > 0)
            name = args[0] ;
        else
        {
            Scanner in = new Scanner (System.in) ;
            System.out.println("Enter class name (e.g.  java.util.Date  ): ") ;
            name = in.next() ;
        }
        
        //异常捕获
        try
        {
            //print class name and superclass name ( if != Object )
            // 利用静态方法forName 获得字符串对应的Class对象,返回与类名name对应的Class对象
            Class cl = Class.forName(name) ;  
            // 取得上面得到的Class对象的超类 名称
            Class supercl = cl.getSuperclass() ; 
            
            // 输出所要查看的类的名称 信息
            System.out.print("     //输出的 class 类信息是: " + name ) ;
            
            //输出name类的超类(继承关系)
            if ( supercl != null && supercl != Object.class)
                System.out.print( "  extends/*继承*/  " + supercl.getName()) ;
            
            System.out.print("\n  {\n");
            
            // 输出类对象的所有构造器
            System.out.println("     //输出类对象的所有构造器:") ;
            printConstructors(cl) ;
            System.out.println() ;
            
            // 输出类对象的所有方法
            System.out.println("     //输出类对象的所有方法:") ;
            printMethods(cl) ;
            System.out.println() ;
            
            // 输出类对象的所有实例域
            System.out.println("     //输出类对象的所有实例域:") ;
            printFields(cl) ;
            System.out.println("  }") ;
            }
        catch(ClassNotFoundException e)
        {
            // 将Throwable对象和栈的轨迹输出到标准错误流
            e.printStackTrace() ;  
        }
        System.exit(0) ;
    }
    
    /*
         prints all constuctors of a class
            打印类对象的构造器
         @param cl a class
     */
    public static void printConstructors(Class cl)
    {
        // 将返回包含Constructor对象的数组
        Constructor[] constructors = cl.getDeclaredConstructors() ;
        
        for ( Constructor c : constructors)
        {
            String name = c.getName() ;
            
            // 得到对应构造器的修饰符
            System.out.print("    " + Modifier.toString(c.getModifiers())) ;
            // 得到对应构造器的名称
            System.out.print("  " + name +"(" ) ;
            
            //print parameter types 打印构造器的参数类型
            Class[] paramTypes = c.getParameterTypes() ;
            for ( int j = 0 ; j < paramTypes.length ; j++ )
            {
                if ( j > 0 )
                    System.out.print(" ,  ") ;
                System.out.print( paramTypes[j].getName()) ;
            }
            System.out.println("); ") ;
        }        
    }
    
    /*
        Prints all methods of a class 
        @param cl  a class
     */
    public static void printMethods(Class cl)
    {
        // 将返回包含Method对象的数组
        Method[] methods = cl.getDeclaredMethods() ;
        
        for (Method m : methods)
        {
            Class retType = m.getReturnType() ;
            String name = m.getName() ;
            
            // print modifiers, return type and method name
            System.out.print("    " + Modifier.toString(m.getModifiers())) ;
            System.out.print("  " + retType.getName() +"  " + name + "(" ) ;
            
            // print parameter types
            Class[] paramTypes = m.getParameterTypes() ;
            for(int j = 0 ; j < paramTypes.length ; j++ )
            {
                if ( j > 0 )
                    System.out.print(" ,  ") ;
                System.out.print( paramTypes[j].getName()) ;
            }
            System.out.println("); ") ;
        }
    }
    
    /*
        Prints all fields of a class
        @param cl a class
     */
    public static void printFields(Class cl)
    {
        // 将返回包含Field对象的数组
        Field[] fields = cl.getDeclaredFields() ;
        
        for ( Field f : fields)
        {
            Class type = f.getType() ;
            String name = f.getName() ;
            System.out.print("    " + Modifier.toString(f.getModifiers())) ;
            System.out.print("  " + type.getName() +"  " + name + "; \n" ) ;
        }
    }

}

 

分享到:
评论
1 楼 csdn_zuoqiang 2010-07-18  
第一个是有关数组列表的程序;
第二个是有关反射分析类的程序。

相关推荐

    encog-java-core-master.zip_Encog_encog java_encog-java

    - `encog-java-core`支持多种数据导入导出格式,如CSV、Excel和二进制文件。`org.encog.util.format`和`org.encog.util.file`提供了相应的工具类。 - `org.encog.app.analyst`包含了一些数据分析工具,如数据...

    aws-java-sdk-1.2.12下载

    首先,AWS SDK for Java提供了对AWS全系列服务的访问接口,包括计算、存储、数据库、分析、机器学习、安全等。在1.2.12版本中,SDK支持的服务有: 1. **Amazon S3(Simple Storage Service)**:提供云存储解决方案...

    aws-java-sdk-core-1.11.46.zip

    【标题】"AWS Java SDK Core 1.11.46与ScalaTest+Play的集成" 在Java开发中,Amazon Web Services(AWS)提供了一系列的SDK,使得开发者能够轻松地与AWS服务进行交互。其中,`aws-java-sdk-core-1.11.46.zip`是AWS ...

    core-Java-volume1--example-code.rar_core java 1 code

    这个压缩包文件"core-Java-volume1--example-code.rar"包含了书中所有卷一的示例代码,为读者提供了实践编程概念的宝贵资源。下面,我们将详细探讨这些示例代码涵盖的知识点。 首先,Java基础语法是任何学习Java的...

    core-java电子书

    通过学习这本《Core Java》电子书,无论是初学者还是有经验的开发者,都能深化对Java语言的理解,提升编程技能。同时,书中可能还会涵盖一些高级主题,如并发编程、JavaFX GUI开发、数据库连接、JDBC等,为读者提供...

    java--corejava学习黄金代码

    要想学习java corejava是java之旅的最重要的入门知识,本人在学习corejava中练习过的最重量级的代码! 希望对新手有所帮助!

    基于mirai-core的Java开发框架(内置签到、运势、灵签、笑话、闲聊等功能).zip

    本项目提供的源代码可以帮助开发者快速理解如何利用Mirai-Core构建一个多功能的QQ机器人应用,对于学习Java开发和QQ机器人编程具有很高的参考价值。通过这个框架,开发者不仅可以学习到事件驱动编程,还可以深入理解...

    Core-Java-8th-Edition.rar_core java II

    综上所述,《Core Java II》第八版是深入学习Java 8不可或缺的参考资料,其中包含了Lambda表达式、函数式接口、Stream API、日期时间API以及并发编程等多个关键知识点,对于想要提升Java开发能力的程序员来说,这部...

    javamelody-javamelody-core-src-1.68.1.zip

    从标题“javamelody-javamelody-core-src-1.68.1.zip”可以看出,这包含的是JavaMelody核心组件1.68.1版本的源代码。这对于开发者来说是一个宝贵的资源,可以深入理解其内部工作原理,进行定制化开发或者调试。 源...

    gst1-java-core:GStreamer 1.x的Java绑定

    GStreamer 1.x Java核心(gst1-java-core) gst1-java-core是一组Java绑定。 GStreamer是一个用C语言编写的开源,基于管道的多媒体框架。它允许程序员在应用程序内部创建各种媒体处理管道,从简单的媒体播放到编码...

    Core-Java-2.-Volume-II.rar_Core Java Volume II_core java II_core

    《Core Java 2 Volume II》是Java开发领域中一本经典的参考书籍,主要针对有经验的Java程序员,深入探讨了Java的高级特性和功能。这本书的第8版,即"Advanced Features"部分,提供了关于Java技术的详尽指南,涵盖了...

    corejava学习笔记

    Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...

    CoreJava课程学习资料--Java核心技术(第8版)

    《Java核心技术》是Java开发人员必读的经典教材,尤其对于初学者和希望深入理解...通过学习这两卷内容,开发者不仅可以掌握Java编程的基础,还能进一步了解和运用Java的高级特性,为成为专业的Java开发者奠定坚实基础。

    aws-java-sdk-1.6.7.zip

    开发者可以查看、学习或者修改这些源代码,以便更好地理解和定制Sucre Core的功能,或者将这些功能集成到自己的项目中。开源项目的优势在于,它允许社区成员共同参与开发,共享代码,共同解决遇到的问题,从而推动...

    达内 core-java.ppt

    学习Core Java是成为一名合格的Java开发者的基础。 在Java开发中,JDK(Java Development Kit)是必不可少的工具包,它包含了Java编译器、解释器、JRE(Java Runtime Environment)以及一系列的开发工具,如javadoc...

    grpc-java-1.9.0.zip_grpc-java 1.9.0源码

    总之,`grpc-java-1.9.0.zip` 包含了 GRPC 在 Java 平台上的所有源代码,是学习和研究 GRPC 内部实现的宝贵资源。通过深入研究源码,开发者可以更好地掌握 GRPC 的工作原理,从而在微服务架构中更有效地使用这一强大...

    JDK17-java-core-libraries-developer-guide.pdf

    《JDK17-java-core-libraries-developer-guide》是一份针对Java开发者的指南,主要涵盖了Java标准版(Java SE)17的核心库。这个版本的发布号为F40864-03,发布时间为2022年10月。这份文档由Oracle公司及其关联公司...

    mahout-core-0.9.jar+mahout-core-0.8.jar+mahout-core-0.1.jar

    - mahout-core-0.1.jar:这是早期版本,可能包含的基本功能,可能不支持最新的机器学习技术,且可能存在性能和稳定性问题。 - mahout-core-0.8.jar:相比0.1版本,0.8在算法实现和性能上有所提升,可能增加了新的...

    Core-Java-1.-Volume-I---Fundamentals.rar_Fundamentals

    《Core Java 1. Volume I - Fundamentals》是Java编程领域的经典教材,尤其对于初学者而言,它提供了全面且深入的Java基础知识。本教材结合了C++的概念,帮助读者更好地理解和掌握Java语言的核心特性。 首先,书中...

    zxing core-3.3.3.jar core-3.3.3-javadoc.jar core-3.3.3-sources.jar

    如果遇到问题,查阅"core-3.3.3-javadoc.jar"的API文档可以帮助解决问题,而"core-3.3.3-sources.jar"则可以用于深入学习和调试。同时,确保"lib"目录下的所有库都已正确引入,以避免因缺少依赖而导致的运行错误。 ...

Global site tag (gtag.js) - Google Analytics