黑马程序员——java基础之其他对象

——- android培训java培训、期待与您交流! ———-

一 Runtime类


Runtime对象
该类并没有提供构造函数
说明不可以new对象 那么会直接想到该类中的方法都是静态的
发现该类中还有非静态方法
说明该类肯定会提供了方法获取本类对象,而且该方法是静态的,并返回值类型是本类类型

由这个特点可以看出该类使用了单例设计模式完成
示例代码:

class RuntimeDemo
{
    public static void main(String[] args)throws Exception
    {
        Runtime r = Runtime.getRuntime();
        Process p = r.exec("notepad.exe RuntimeDemo.java");
        Thread.sleep(4000);
        p.destroy();
        }
    }

运行结果
这里写图片描述


二 时间类

date类

Date类表示特定的瞬间,精确到毫秒。
java中的默认显示格式为:Mon Jun 10 22:35:21 CST2013
自定义格式:
因为Date类中的大部分方法已过时,所以只能找其子类来实现。子类DateFormat中有format方法可以实现,但是DateFormat是抽象类,不能实例化。但是其下有个SimpleDateFormat子类,可以定义时间模式。
具体步骤:

  1. 创建Date对象
  2. 将时间模式封装到SimpleDateFormat对象中
  3. 调用format方法让格式化模式指定Date对象

代码如下:

import java.util.*;
import java.text.*;
class DateDemo
{
    public static void main(String[] args){
    Date d = new Date();
    System.out.println(d);//打印的时间看不懂,希望有些格式

    //将模式封装到simpledateformat对象中
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss ");
    //调用format方法让模式格式花指定Date对象
    String time = sdf.format(d);


    System.out.println("time = "+time);
        }
    }

运行结果:
这里写图片描述



Calendar类

  1. Calendar是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段之间的转换提供了一些方法
  2. Calendar可以对年月日等时间进行获取。并提供了相应的子段值。
  3. 获取时间的方法
    1. 获取年份:Calendar.YEAR
    2. 获取月份:Calendar.MONTH
    3. 获取日期:Calendar.DAY_OF_MONTH
    4. 获取星期:Calendar.DAY_OF_WEEK
    5. 获取小时:Calendar.HOUR_OF_DAY
    6. 获取分钟:Calendar.MINUTE
    7. 获取秒数:Calendar.SECOND
import java.util.*;
import java.text.*;
class CalendarDemo
{
    public static void main(String[] args)
    {   
        Calendar c = Calendar.getInstance();        
        show(c.get(Calendar.YEAR)+"年");
        //查表法
        String[] mons ={"一月","二月","三月","四月",
            "五月","六月","七月","八月",
            "九月","十月","十一月","十二月",};

        String [] weeks = {"", "星期日","星期一","星期二","星期三","星期四","星期五","星期六",};
        int index = c.get(Calendar.MONTH);

        int index1 = c.get(Calendar.DAY_OF_WEEK);
        //获取并打印日期
        show(mons[index]);
        show(weeks[index1]);
        show(c.get(Calendar.DAY_OF_MONTH)+"日");     
        }

        public static void show(Object obj){
            System.out.println(obj);
            }   
    }

运行结果:
这里写图片描述



为了巩固所学知识。下面是两个小练习,代码如下

/*
练习
1、获取任意年的二月有多少天:
    思路:根据指定年设置一个时间就是 
    c.set(year,2,1)//某一年的3月1日。
    c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。

2、获取前一天的现在这个时刻
    思路:c.add(Calenar.DAY_OF_MONTH,-1);

*/

import java.util.*;

class  CalendarDemo_2
{
    public static void main(String[] args) 
    {
        //练习1测试
        sop("2016年二月份有"+whatDay(2016)+"天");

        //练习2测试
        sop("昨天的现在这个时刻:"+lastNowTime());

    }

    //练习1
    public static int whatDay(int year)
    {
        Calendar c=Calendar.getInstance();
        c.set(year,2,1);
        c.add(Calendar.DAY_OF_MONTH,-1);
        return c.get(Calendar.DAY_OF_MONTH);
    }

    //练习2
    public static String lastNowTime()
    {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DAY_OF_MONTH,-1);
        return pattern(c);
    }


    //获取指定日期和时间
    public static String pattern(Calendar c)
    {
        String s=year(c)+month(c)+day(c)+week(c)+" "+time(c);
        return s;
    }

    //获取年份
    public static int year(Calendar c)
    {
        return c.get(Calendar.YEAR);
    }
    //获取月份
    public static String month(Calendar c)
    {
        String[] yue={"一月","二月","三月","四月",
                    "五月","六月","七月","八月",
                    "九月","十月","十一月","十二月"};
        return yue[c.get(Calendar.MONTH)];
    }
    //获取日期
    public static int day(Calendar c)
    {
        return c.get(Calendar.DAY_OF_MONTH);
    }
    //获取星期
    public static String week(Calendar c)
    {
        String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        return day[c.get(Calendar.DAY_OF_WEEK)];
    }
    //获取时间,格式为时:分:秒
    public static String time(Calendar c)
    {
        String s=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
        return s;
    }

    //打印输出
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

运行结果:


这里写图片描述


三 System类

  1. System是描述系统一些信息的类,类中的属性和方法都是静态的。不能被实例化,没有提供构造函数。
    out:标准输出流。默认是控制台。
    in:标准输入流。默认是键盘。
  2. 方法列表

    1. 获取系统的属性信息:
      PropertiesgetProperties();
    2. 获取指定属性信息:
      String getProperty(Stringkey);
    3. 在系统内定义特有信息:
      String setProperty(Stringkey,String value);

    示例代码:

import java.util.*;
class SystemDemo 
{
    public static void main(String[] args) 
    {
        Properties p=System.getProperties();//获取当前的系统属性
        sop(p);

        String value=System.getProperty("os.name");//获取指定键指示的系统属性
        sop("os.name="+value);

        System.setProperty("wode","My_PC");//设置指定键指示的系统属性信息
        sop(p);

        String s= System.getProperty("enen");//当系统中没有该键值,返回null
        sop(s);

    }

    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

运行结果:
这里写图片描述



——- android培训java培训、期待与您交流! ———-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值