API其他对象类

来源:互联网 发布:滴滴公司薪酬待遇知乎 编辑:程序博客网 时间:2024/06/06 03:46


就是创建对象,需要构造函数对其进行初始化。将构造函数私有化后,其他类创建该对象时,由于不能访问被私有化的构造函数,就不能对对象进行初始化,也就不能创建对象了。而在本类中,可以使用被私有的成员,所以可以对创建对象进行初始化,也就可以创建对象。

SystemDemo:

import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.Set;


public class SystemDemo {



private static final String LINE_SEPARATOR = System.getProperty("line.separator");
/**
* @param args
*/
public static void main(String[] args) {


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


* 常见方法:
* long currentTimeMillis();获取当前时间的毫秒值。 

*/

// long l1 = 1335664696656l;//System.currentTimeMillis();
// System.out.println(l1/1000/60/60/24);//1335664696656
// code..
// long l2 = System.currentTimeMillis();
// System.out.println(l2-l1);



System.out.println("hello-"+LINE_SEPARATOR+" world");
// demo_1();
//给系统设置一些属性信息。这些信息是全局,其他程序都可以使用。 
// System.setProperty("myclasspath", "c:\myclass");

}

public static void demo_1(){
//获取系统的属性信息,并存储到了Properties集合中。 
/*
* properties集合中存储都是String类型的键和值。
* 最好使用它自己的存储和取出的方法来完成元素的操作。
*/
Properties prop = System.getProperties();

Set<String> nameSet = prop.stringPropertyNames();

for(String name : nameSet){
String value = prop.getProperty(name);

System.out.println(name+"::"+value);
}

}

}


RuntimeDemo:

import java.io.IOException;


public class RuntimeDemo {


/**
* @param args
* @throws IOException 
* @throws InterruptedException 
*/
public static void main(String[] args) throws IOException, InterruptedException {


/*
* Runtime:没有构造方法摘要,说明该类不可以创建对象。
* 又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。
* 而且只有一个,说明Runtime类使用了单例设计模式。

*/

Runtime r = Runtime.getRuntime();

// execute: 执行。 xxx.exe 

Process p = r.exec("notepad.exe");
Thread.sleep(5000);
p.destroy();
}


}

MathDemo:

import java.util.Random;


public class MathDemo {


/**
* @param args
*/
public static void main(String[] args) {


/*
* Math:提供了操作数学运算的方法。都是静态的。

* 常用的方法:
* ceil():返回大于参数的最小整数。
* floor():返回小于参数的最大整数。
* round():返回四舍五入的整数。
* pow(a,b):a的b次方。

*/
double d1 = Math.ceil(12.56);
double d2 = Math.floor(12.56);
double d3 = Math.round(12.46);

// sop("d1="+d1);
// sop("d2="+d2);
// sop("d3="+d3);

// double d = Math.pow(10, 2);
// sop("d="+d);

Random r = new Random();
for (int i = 0; i < 10; i++) {

// double d = Math.ceil(Math.random()*10);
// double d = (int)(Math.random()*6+1);
// double d = (int)(r.nextDouble()*6+1);
int d = r.nextInt(6)+1;
System.out.println(d);
}
}


public static void sop(String string) {
System.out.println(string);
}


}


DateDemo:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class DateDemo {


/**
* @param args
* @throws ParseException 
*/
public static void main(String[] args) throws ParseException {


methodDemo_3();



}


date对象:


时间对象的方法:

日期对象toString方法:




/**
* 将日期格式的字符串-->日期对象。
* 使用的是DateFormat类中的parse()方法。 

//如果风格是自定义的如何解决呢?用dateFormat中的子类SimpleDateFormat自定义。
* @throws ParseException 
*/
public  static void methodDemo_3() throws ParseException {

String str_date = "2012年4月19日";
str_date = "2011---8---17";


DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG); //获取一个对象,因为是抽象类,不能实例化对象,但是有提供方法返回一个对象,单例设计模式。 

dateFormat = new SimpleDateFormat("yyyy---MM---dd");


Date date = dateFormat.parse(str_date);

System.out.println(date);


}




/**
* 对日期对象进行格式化。
* 将日期对象-->日期格式的字符串。
* 使用的是DateFormat类中的format方法。






*/
public static void methodDemo_2() {

Date date = new Date();//创建一个日期对象。

//获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。SHORT (17-8-30),MEDIUM(2017-8-30)也就是默认的
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);//静态的常量,
dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//这个是获取日期和时间的工厂。(新的对象)

连日期带时间都指定风格:


运行结果:(带时间的工厂)


// System.out.println(dateFormat);

//如果风格是自定义的如何解决呢?用dateFormat中的子类SimpleDateFormat自定义。
dateFormat = new SimpleDateFormat("yyyy--MM--dd");//构造函数。

日期格式体现:



String str_date = dateFormat.format(date);

System.out.println(str_date);

自定义效果:


}
默认日期对象格式化成字符:




/**
* 日期对象和毫秒值之间的转换。

* 毫秒值-->日期对象 : 
* 1,通过Date对象的构造方法  new Date(timeMillis);
*  2,还可以通过setTime设置。 
*  因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。
*  

* 日期对象-->毫秒值:
* 2,getTime方法。
* 因为可以通过具体的数值进行运算。 


*/
public static void methodDemo_1() {
long time = System.currentTimeMillis();//
// System.out.println(time);//1335671230671

Date date = new Date();//将当前日期和时间封装成Date对象。
System.out.println(date);//Sun Apr 29 11:48:02 CST 2012

Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。
System.out.println(date2);
}

}

DateTest:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;




/* 练习:
 * "2012-3-17"到"2012-4-6"
 * 中间有多少天?
 * 思路:
 * 两个日期相减就哦了。
 * 咋减呢?
 * 必须要有两个可以进行减法运算的数。
 * 能减可以是毫秒值。如何获取毫秒值?通过date对象。
 * 如何获取date对象呢?可以将字符串转成date对象。
 * 
 * 1,将日期格式的字符串转成Date对象。
 * 2,将Date对象转成毫秒值。
 * 3,相减,在变成天数 
 * 
 * 
 */


public class DateTest {


/**
* @param args
* @throws ParseException 
*/
public static void main(String[] args) throws ParseException {


String str_date1 = "2012-3-17";
String str_date2 = "2012-4-18";
test(str_date1,str_date2);
}


public static void test(String str_date1,String str_date2) throws ParseException {

//1,将日期字符串转成日期对象。
//定义日期格式对象。
DateFormat dateFormat = DateFormat.getDateInstance();
dateFormat = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = dateFormat.parse(str_date1);
Date date2 = dateFormat.parse(str_date2);

long time1 = date1.getTime();
long time2 = date2.getTime();

long time = Math.abs(time1-time2);


int day = getDay(time);
System.out.println(day);

}


private static int getDay(long time) {

int day = (int)(time/1000/60/60/24);

return day;
}






}

CalendarDemo:

import java.util.Calendar;


public class CalendarDemo {


/**
* @param args
*/
public static void main(String[] args) {


Calendar c = Calendar.getInstance();

int year = 2012;
showDays(year);
}


/**
* @param c
*/
public static void showDays(int year) {

Calendar c = Calendar.getInstance();
c.set(year, 2, 1);

c.add(Calendar.DAY_OF_MONTH, -1);

showDate(c);
}


/**
* @param c
*/
public static void showDate(Calendar c) {
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);


System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}


public static String getWeek(int i) {

String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

return weeks[i];
}

}