您的位置:首页 > 职场人生

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

2015-07-03 21:18 507 查看
-----------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学习型技术博客、期待与您交流!---------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: