当前位置: 代码迷 >> 编程 >> 黑马软件工程师-API中的其他常用类
  详细解决方案

黑马软件工程师-API中的其他常用类

热度:7542   发布时间:2013-02-26 00:00:00.0
黑马程序员-API中的其他常用类

?

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

?

?

API中的其他常用类

?

?

?

System:类中的方法和属性都是静态的。

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

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

?

描述系统一些信息。

?

获取系统属性信息:Properties getProperties();

?

import java.util.*;class SystemDemo {	public static void main(String[] args) 	{		Properties prop = System.getProperties();				//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。		//那么可以通过map的方法取出该集合中的元素。		//该集合中存储都是字符串。没有泛型定义。				//如何在系统中自定义一些特有信息呢?		System.setProperty("mykey","myvalue");		//获取指定属性信息。		String value = System.getProperty("os.name");		System.out.println("value="+value);			//可不可以在jvm启动时,动态加载一些属性信息呢?		String v = System.getProperty("haha");		System.out.println("v="+v);				//获取所有属性信息。		for(Object obj : prop.keySet())		{			String value = (String)prop.get(obj);			System.out.println(obj+"::"+value);		}	}}

?

?

?

Runtime对象

该类并没有提供构造函数。

说明不可以new对象。那么会直接想到该类中的方法都是静态的。

发现该类中还有非静态方法。

说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。

?

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

?

?

该方式是static Runtime getRuntime();

?

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

?

?

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);		long l = System.currentTimeMillis();		Date d1 = new Date(l);		System.out.println("d1:"+d1);	}}

?

?

import java.util.*;import java.text.*;class  CalendarDemo{	public static void main(String[] args) 	{		Calendar c = Calendar.getInstance();		String[] mons = {"一月","二月","三月","四月"					,"五月","六月","七月","八月"					,"九月","十月","十一月","十二月"};		String[] weeks = {						"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",							};				int index = c.get(Calendar.MONTH);		int index1 = c.get(Calendar.DAY_OF_WEEK);		sop(c.get(Calendar.YEAR)+"年");		//sop((c.get(Calendar.MONTH)+1)+"月");		sop(mons[index]);		sop(c.get(Calendar.DAY_OF_MONTH)+"日");		//sop("星期"+c.get(Calendar.DAY_OF_WEEK));		sop(weeks[index1]);				Date d = new Date();		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");		String year = sdf.format(d);		System.out.println(year);			}	public static void sop(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  CalendarDemo2{	public static void main(String[] args) 	{		Calendar c = Calendar.getInstance();		//c.set(2012,2,23);		c.add(Calendar.DAY_OF_MONTH,-18);				printCalendar(c);	}	public static void printCalendar(Calendar c)	{		String[] mons = {"一月","二月","三月","四月"					,"五月","六月","七月","八月"					,"九月","十月","十一月","十二月"};		String[] weeks = {						"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",							};				int index = c.get(Calendar.MONTH);		int index1 = c.get(Calendar.DAY_OF_WEEK);		sop(c.get(Calendar.YEAR)+"年");		//sop((c.get(Calendar.MONTH)+1)+"月");		sop(mons[index]);		sop(c.get(Calendar.DAY_OF_MONTH)+"日");		//sop("星期"+c.get(Calendar.DAY_OF_WEEK));		sop(weeks[index1]);	}	public static void sop(Object obj)	{		System.out.println(obj);	}}

?

?

练习。给定一个小数。

保留该小数的后两位。

?

选作。可以考虑,保留时进行四舍五入。

?

import java.util.*;class  MathDemo{	public static void main(String[] args) 	{				/*		Random r = new Random();		for(int x=0; x<10; x++)		{			//int d = (int)(Math.random()*10+1);			int d = r.nextInt(10)+1;			sop(d);		}		*/		saveTwo(12.3456,3,true);//12.34	}	public static void saveTwo(double d,int scale,boolean isRound)	{				double base = Math.pow(10,scale);		double num = isRound?Math.round(d*base)/base:((int)(d*base))/base;		sop("num="+num);		/*		double d1 = d*100;		sop("d1="+d1);		d1 = d1+0.5;		double d2 = (int)d1;		sop("d2="+d2);		double d3 = d2/100;		sop("d3="+d3);		*/	}	public static void show()	{		double d = Math.ceil(16.34);//ceil返回大于指定数据的最小整数。		double d1 = Math.floor(12.34);//floor返回小于指定数据的最大整数。		long l = Math.round(12.54);//四舍五入		sop("d="+d);		sop("d1="+d1);		sop("l="+l);		double d2 = Math.pow(2,3);		sop("d2="+d2);	}	public static void sop(Object obj)	{				System.out.println(obj);	}}

?

?

?

?

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

  相关解决方案