代码改变世界

一些常见的类

2014-06-06 17:27  黑马程序员*  阅读(152)  评论(0编辑  收藏  举报

System

System 类包含一些有用的类字段和方法。它不能被实例化(表示没有构造函数)。

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

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

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

获取系统属性信息:

    properties getProperties();

    String  setProperty(String key, String value)

设置指定键指示的系统属性,返回系统属性以前的值,如果没有以前的值,则返回 null。

system的改变标准输入或输出设备。

        static void setIn(InputStream in)

         重新分配“标准”输入流。

     static void setOut(PrintStream out)

     重新分配“标准”输出流      

//setIn()方法应该写在前面,在后面好像没用

               System.setIn(new FileInputStream("d:\\3.txt"));

               BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

               PrintStream ps = System.out;

               String line =null;

               while((line = br.readLine())!=null){

                      if(line.equals("over")){break;}

              //     System.out.println(line.toUpperCase());

                      ps.println(line);

               }

Properties

       Properties是Hashtable的子类,是一个持久的属性集,可以使用Map的方法。属性的键和值都是字符串。

        --1.1 getProperties(String key)

        --1.2 getProprtties(String )

        --1.3  stringPropertyNames();返回键集Set<String>

        --1.4 Object setProperty(key,value);设置属性,调用了hashtable的put方法。

        --1.5 void list(PrintWriter out)  将属性列表输出到指定的输出流(比如配置文件)。

        --1.6 void load(InputStream inStream) ;将流中的数据加载中property中。

Runtime

该类没有构造函数。每个应用程序都有个Runtime实例对象

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

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

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

       并且返回值类型是本类型,该方法是:getRuntime()。

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

常用方法:

Process exec(String command)

例子:

       Runtime r = Runtime.getRuntime();//不能new

       Process p =  r.exec("notepad.exe day1802.java");

       p.destroy();

void gc() 运行垃圾回收器。

1.Date类。--大部分方法过时。 *

         使用DateFormat(抽象)的子类,simpleDateFormat格式化为想要的格式。

         DateFormat抽象类:format(Date):将一个Date格式化为日期/时间的字符串。     

              Date d = new Date();

              System.out.println(d);

              //构造时即可传入模板 

              SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.ww:dd");

              //用Format方法格式化Date对象            

              String time = sd.format(d);//返回String

              System.out.println(time);

2.Calender。取代Date的很多方法。

能返回本类对象 static Calendar   getInstance()

           void set(int year, int month)

              int get(int field);field: DAY_OF_YEAR

              void set(int field, int value)

          将给定的日历字段设置为给定值。

              set方法

              c.set(Calendar.YEAR,1988);

              c.set(2014, 04, 23);

              int year = c.get(Calendar.YEAR);

              int month = c.get(Calendar.MONTH);

              int day  = c.get(Calendar.DAY_OF_MONTH);

              int hour = c.get(Calendar.HOUR_OF_DAY);

              int day1 = c.get(Calendar.DAY_OF_YEAR);

              System.out.println(year+"年"+(month+1)+"月"+day+"日");//自己设置时间打印时不用加1

              //2.3对时间进行增删(正负表示增和减)

              c.add(Calendar.DAY_OF_MONTH, 1);//增一年

              c.add(Calendar.DAY_OF_MONTH, -1);//减一年

两种方法的区别:SimpleDateFormat类好像还可以使用增减时间,并获取字段。

注意:0是一月。7是星期六   0是一月

练习:1.获取任意年的二月有多少天(get)

思路;三月减一天。

Math工具类类,方法都是静态。

  常用方法:abs(a):绝对值

  --1. static double ceil(double a) ,注意返回值是double.而且只有double类型数据用它。//天花板

  --2. floor(double)同上。//地板

  -- static long round(double a) :注意返回值  四舍五入 四舍五入 有两个方法

         返回最接近参数的 long。

  --3. static int round(float a)

         返回最接近参数的 int。

  --4.0 pow(double a, double b) pow(2,3) 2的3次方。 之所以double类型,是因为在写的时候可以写double,而int可以准成double 

            但是返回值类型double

  --5.0 random() :0.0-1.0 包含0不包含1  0.04443583448134936          

   类 Random

              nextInt(int n)//只有这一个可以使用参数n

练习:练习:给定一个小数,保留该小数的后两位。

double x = (double)(Math.round(d*100))/100;//round方法返回的是整数

              System.out.println(x);