J2ME应用程序开发奇技淫巧(下)

来源:互联网 发布:国家或地区的顶级域名 编辑:程序博客网 时间:2024/06/03 03:14

四、J2ME中的时间处理全攻略

  时间处理在程序开发中相当常见,下面对于时间处理做一个简单的说明。

  一、时间的表达方式
  时间在J2ME中有两种表达方式:
  1、以和GMT1970年1月1号午夜12点和现在相差的毫秒数来代表
  这种方式适合比较两个时间之间的差值。
  2、以对象的形式来表达

  二、时间处理的相关类
  时间处理在J2ME中涉及三个类:
  1、System类

        long time = System. currentTimeMillis();
  使用该方法可以获得当前时间,时间的表达方式为上面提到的第一种。
  2、Date类
        Date date = new Date();
  获得当前时间,使用对象的形式来进行表达。
  3、Calendar类
        Calendar calendar = Calendar. getInstance();

  三、时间处理的具体操作
  1、以上三种表达方式的转换:
  a)将System类获得的时间转换为Date对象
        Date date = new Date(System. currentTimeMillis());
  b)将Date类型的对象转换为Calendar类型的对象
        Calendar calendar = Calendar. getInstance();
        Date date = new Date();
        calendar.setTime(date);

  2、使用Calendar完成一些日期操作:
  Calendar是时间处理中最常用也是功能最强大的类,可以用它来获得某个时间的日期、星期几等信息。
  获得日期:
        Calendar calendar = Calendar. getInstance();
        ……
        int day = calendar.get(Calendar. DATE);
  获得日期、年份、星期的操作和这个类似。
  需要注意的是:Calendar中表示月份的数字和实际相差1,即1月用数字0表示,2月用数字1表示,……12月用数字11表示。

 
五、J2ME中随机数字处理全攻略

  在程序中生成随机数字,用处比较,如人工智能领域等等,这里对于在J2ME中生成随机数的操作进行一个简单的整理,希望对大家能有帮助。

  J2ME和J2SE不同,不能使用Math类的random来生成随机数字,只能使用java.util包的Random类来生成随机数字。

  1、创建Random类型的对象:
        Random random = new Random();
        Random random = new Random(10010010);
  以上两种是创建Random对象的方式,第一种使用默认构造方法,和以下的代码作用完全等价:
        Random random = new Random(System. currentTimeMillis());
  相当与使用当前时间作为种子数字来进行创建。
  第二种方式通过自己来指定种子数字来进行创建。
  大家可以根据需要使用以上两种方式的任一种。

  2、生成随机数字:
  创建好了随机对象以后,我们就可以来生成随机数字了:
  生成随机整数:
        int k = random.nextInt();
        生成随机长整数:
        long l = random.nextLong();

  3、生成指定范围的数字:
  例如生成0-10之间的随机数字:
        int k = random.nextInt();
        int j = Math.abs(k % 10);
  首先生成一个随机整数k,然后用k和10取余,最后使用Math类的abs方法取绝对值,获得0-10之间的随机数字。
  获得0-15之间的随机数,类似:
        int k = random.nextInt();
        int j = Math.abs(k % 15);
  获得10-20之间的随机数字:
        int k = random.nextInt();
        int j = Math.abs(k % 10) + 10;
 
六、使用简单的J2ME程序测试MIDlet的生命周期

  在MIDlet程序学习中,生命周期是一个比较抽象的概念。其实生命周期就是一个简单的规定,规定了MIDlet中的每个方法,什么时候被系统调用。下面是一个示例代码,在每个方法的内部都输出一条语句,可以根据程序的输出结果来验证各方法被调用的顺序,具体代码如下:


import javax.microedition.midlet.*;
public class LifeCircleMIDlet extends MIDlet
{
public LifeCircleMIDlet()
{
System.out.println("默认构造方法");
}
public void startApp()
{
System.out.println("startApp方法");
}
public void pauseApp()
{
System.out.println("pauseApp方法");
}
public void destroyApp(boolean b)
{
System.out.println("destroyApp方法");
}
}