黑马程序员---其他对象

-----------android 培训 java培训 、java学习型技术博客、期待与您交流!---------



System对象

      

      System是描述一些系统信息的类,这个类中的方法和属性都是静态的。System类不能被实例化,因为没有提供构造方法。

 

      字段摘要


            out:标准输出流。默认是控制台。


            in:标准输入流。默认是键盘。

 

      方法


            1.   static  Properties  getProperties()            获取系统属性信息


                  因为Properties是HashTable,也就是Map集合的一个子类对象,那么可以通过Map集合中的方法取出该集合中的元素。


                  该集合存储的都是字符串,没有泛型限定。


            2.   static  String  getProperty(String  key)            获取指定键指示的系统属性。


                  例:String value = System.getProperty(“os.name”);            //获取系统名


            3.   static  String  setProperty(String  key , String  value)            设置指定的系统属性。

 

      在JVM启动时,动态的加载一些属性信息


            在DOS命令行中: java –DV = 123 SystemDemo        //可以设置特有的系统属性信息


                                       其中 SystemDemo是要被设置的程序。

 

      System类中方法演示

/*
演示System类中的方法

1.	static Properties getProperties();		//获取系统属性信息

2.	static String getProperty(String key);	//获取指定键指示的系统属性。
例:String value = System.getProperty(“os.name”);	//获取系统名

3.	static String setProperty(String key, String value);	//设置指定键指示的系统属性。

*/
import java.util.*;
class SystemDemo
{
	public static void main(String[] args) 
	{
		//static String getProperty(String key);	//获取指定键指示的系统属性。
		//获取系统名
		String osName = System.getProperty("os.name");
		//输出系统名
		sop("系统名:"+osName);

		sop("--------我是华丽丽的分隔线-------");

		//static String setProperty(String key, String value);//设置指定键指示的系统属性。
		System.setProperty("myKey","myValue");

		//看看我们自己设置的系统属性是否出现在了系统属性中
		//static Properties getProperties();/获取系统属性信息
		Properties prop = System.getProperties();
		//输出系统信息
		sop(prop);
	}
	//输出方法
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


            运行结果



       


Runtime对象


      该类中并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。


            但发现该类中还有非静态方法,说明该类中肯定会提供方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。

      

            由以上特点可以看出,该类使用了单例设计模式完成,保证了对象的唯一性。

 

      Rentime类的常见方法


            1.   static Runtime getRuntime()            Runtime类提供的方法,用来获取本类对象。


            2.   Process exec(String command)            打开一个exe进程


            3.   Process类中的方法 abstract  void destroy()            杀掉子进程方法,可以将exec开启的进程结束

 

      Runntime类中方法示例

/*
演示Runtime类中方法

1.	static Runtime getRuntime():	//Runtime类提供的方法,用来获取本类对象。
2.	Process exec(String command);	//打开一个exe进程
3.	Process类中的方法 abstract  void destroy();	//杀掉子进程方法,可以将exec开启的进程结束

*/

class RuntimeDemo
{
	public static void main(String[] args) throws Exception
	{
		//获取Runtime类的实例
		Runtime r = Runtime.getRuntime();

		//执行笔记本程序
		Process p=r.exec("notepad.exe");  
		//用笔记本打开指定文件 
		r.exec("notepad.exe 123.txt");

		//让线程睡一会儿
		Thread.sleep(2000);

		//关闭子进程
		p.destroy();
	}
}


Date类

      

      Date类表示特定的瞬间,精确到毫秒。


      java中的默认显示格式为:Tue Jun 16 21:50:15 CST 2015

 

      默认的格式不能满足所有人的要求,那么就需要自定义格式化模式。


            因为Date类中的大部分方法已过时,所以只能找其子类来实现。DateFormat是Date的子类,但这个类中的方法都是抽象的,

           

            所以创建它的子类也就是SimpleDateFromat的对象来调用,并通过SimpleDateFromat类的构造方法传入描述日期和时间模式的格式,


                  格式要去看API。


            其实在DataFormat类中有可以实现自定义模式的方法,format 但是没有办法创建DataFormat对象来调用这个方法,所以才需要子类对象来调用。

 

            注:DataFormat及其子类对象是java.text包中的类,所以要记得导包

 

      下面来根据代码来学习Date对象如何使用

/*
Data类自定义时间格式示例
*/

import java.util.*;  
import java.text.*; 

class DateDemo   
{  
	public static void main(String[] args)   
	{  
		//创建Date对象
		Date d=new Date();  
		//先输出默认时间模式
		sop("默认时间模式:"+d);
      
		//通过查看API中SimpleDateFormat类中的时间模式我们来定义
		//2015年6月16日 星期二 22:03:00
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");  
		//调用format方法,将时间按照我们定义的转成字符串 
		String time=sdf.format(d);  
		//输出
		sop(time);  
	}  
    //输出方法 
	public static void sop(Object ojb)  
	{  
		System.out.println(ojb);  
	}  
}  


            运行结果



                                              

Calendar对象


      Calendar是一个抽象类,日历的意思

      

      方法


            1.   static  Calendar  getInstance()            使用默认时区和语言环境获得一个日历


            2.   void  set(int  year , int  month , int  date)            设置日历


                  例:c.set(2017 , 3 , 18);           //月份这里写的3月显示的会是4月,因为计算机上月份计数是从0开始的。


            3.   abstract  void add(int  field , int  amount)            根据日历的规则,为给定的日历字段添加或减去指定的时间量。

 

      Calender类中方法示例

/*
Calendar类中方法示例

1.	static Calendar getInstance()	使用默认时区和语言环境获得一个日历

2.	void set(int year, int month, int date)	设置日历

3.	abstract  void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。

*/
import java.util.*;

class  CalendarDemo
{
	public static void main(String[] args)
	{
		//1.static Calendar getInstance();//使用默认时区和语言环境获得一个日历
		Calendar c = Calendar.getInstance();
		//调用获取时间和日期方法,并输出
		sop("当前日历:"+getTime(c));

		//2.void set(int year, int month, int date);	//设置日历
		//将时间设置为2012,10,15
		c.set(2012,10,15);
		//输出设置之后的日历
		sop("自定义日历:"+getTime(c));

		//abstract  void add(int field, int amount);
		//根据日历的规则,为给定的日历字段添加或减去指定的时间量。
		//给年减去10年
		c.add(Calendar.YEAR,-10);
		//输出设置之后的日历
		sop("年数减10的日历:"+getTime(c));
	}

	//获取时间和日期的方法 
    public static String getTime(Calendar c)  
    {  
		//调用获取年,月,日,星期的方法
        String s=year(c)+month(c)+day(c)+"日"+week(c);  
        return s;  
    }  
      
    //获取年份  
    public static int year(Calendar c)  
    {  
		//用get方法获取年
        return c.get(Calendar.YEAR);  
    }  
    //获取月份  
    public static String month(Calendar c)  
    {  
		//将月份作为元素存入集合中
        String[] yue={"","一月","二月","三月","四月",  
                    "五月","六月","七月","八月",  
                    "九月","十月","十一月","十二月"}; 
		//用get方法获取月数,再作为角标数,去找集合中对应的月份
        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={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
		//用get方法获取星期数,再作为角标,去集合中找对应的星期
        return day[c.get(Calendar.DAY_OF_WEEK)];  
    }  
    
	//打印方法
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


         运行结果



 


Math类

      

      执行基本数学运算方法,该类全为静态方法,所以是工具类。

 

      方法


            1.   static  double  ceil(double  a)            返回最小double值,该值大于参数并等于某个整数


                  例: double  d = Math.ceil(17.85);           //返回18。如果参数为-17.85 返回-17


            2.   static  double  floor(double  a)            返回最大double值,该值小于等于参数,并等于某个整数


                  例: double  d = Math.floor(18.24);         //返回18。如果参数为-18.24 返回-19


            3.   static int round (double a)            四舍五入


            4.   static  double  pow(double  a , double  b)            a的b次幂


            5.   static double random()            返回一个伪随机数,这个数大于等于0 小于1  0<=x<1。然后可以通过强制转换,获得int型,方便使用


                  为什么是伪随机数呢?

                       

                        因为这个数是底层算法算出来的,算的足够多就会找到规律。


                  java.util 中的Random类,使用int  nextInt(int  x)方法获取随机数,可以省去强制转换


                        例:Random  r = new  Random();


                              for(int  x=0 ; x<10 ; x++) {


                                    int  i = r.nextInt(10)+1;


                              }


                        得到大于等于1,小于11的伪随机数,出来的数就会是1.2.3……10之中的一个了。

 

 



谢谢大家观看~!

-----------android培训java培训、java学习型技术博客、期待与您交流!---------


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值