文档章节

core-java学习【二】

ruyees
 ruyees
发布于 2014/10/05 11:47
字数 775
阅读 7
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

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" ) ;
        }
    }

}

 

ruyees
粉丝 3
博文 71
码字总数 0
作品 0
深圳
产品经理
私信 提问
加载中
请先登录后再评论。
Java 核心系列教程

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 关于Java核心技术学习积累的例子,是初学者及核心技术巩固的最佳实践。包括基础语法...

泥沙砖瓦浆木匠
2019/03/03
95
0
Java 核心系列教程

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 关于Java核心技术学习积累的例子,是初学者及核心技术巩固的最佳实践。包括基础语法...

osc_5dotef4h
2019/03/02
3
0
Java核心库中的GoF设计模式示例 - Examples of GoF Design Patterns in Java's core libraries

问题: I am learning GoF Java Design Patterns and I want to see some real life examples of them. 我正在学习GoF Java设计模式,我想看看其中的一些现实示例。 What are some good exa......

fyin1314
07/08
4
0
Java核心库中的GoF设计模式示例 - Examples of GoF Design Patterns in Java's core libraries

问题: I am learning GoF Java Design Patterns and I want to see some real life examples of them. 我正在学习GoF Java设计模式,我想看看其中的一些现实示例。 What are some good exa......

富含淀粉
05/03
1
0
Java 学习路线

Java 学习路线 如何系统高效地学习Java,想必这是一个很多人迫切知道的问题。本人于19年6月毕业,以Java开发的职位进入职场。但由于之前学习Java时,比较零散,基础不牢。于是查询了众多Jav...

osc_gu0nti2n
2019/10/12
4
0

没有更多内容

加载失败,请刷新页面

加载更多

技术教程| 百度鹰眼历史轨迹查询:轨迹抽稀功能

本文作者:用****9 本篇教程中,我们将详细地说明鹰眼历史轨迹查询(gettrack接口)中,如何通过vacuate_grade选项对轨迹进行抽稀,以及不同的抽稀力度对轨迹产生的影响。 上一篇教程中,我们...

百度开发者中心
前天
0
0
整数的最大值和最小值 - Maximum and Minimum values for ints

问题: I am looking for minimum and maximum values for integers in python. 我在python中寻找整数的最小值和最大值。 For eg., in Java, we have Integer.MIN_VALUE and Integer.MAX_VA......

法国红酒甜
19分钟前
16
0
Quartz的Misfire处理规则 错过任务执行时间的处理机制

调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则 CronTrigger withMisfireHandlingInstructionDoNothing ——不触发立即执行 ——等待下次Cron触发频率...

独钓渔
今天
4
0
如何在Django视图中合并两个或多个查询集? - How to combine two or more querysets in a Django view?

问题: I am trying to build the search for a Django site I am building, and in that search, I am searching in 3 different models. 我正在尝试搜索要构建的Django网站,在该搜索中,我......

javail
今天
5
0
PHP解析/语法错误; 以及如何解决它们? - PHP parse/syntax errors; and how to solve them?

问题: Everyone runs into syntax errors. 每个人都遇到语法错误。 Even experienced programmers make typos. 即使是经验丰富的程序员也会打错字。 For newcomers, it's just part of the......

fyin1314
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部