實(shí)驗(yàn) 6 常用系統(tǒng)類的使用
一、實(shí)驗(yàn)?zāi)康?
了解 Java 常用的系統(tǒng)類,包括 Java Applet、字符串類、輸入輸出流類、數(shù)學(xué)函數(shù)類、日期類、隨機(jī)數(shù)類以及向量類等的基本使用方法。理解 Java 系統(tǒng)類的構(gòu)成。
二、實(shí)驗(yàn)要求
1.?進(jìn)一步了解 Applet 類。
2.?掌握不同類型的輸入輸出流類,標(biāo)準(zhǔn)數(shù)據(jù)流、文件流、數(shù)據(jù)輸入輸出流、對象流等。
3.?掌握數(shù)學(xué)函數(shù)類的使用方法。
4.?掌握日期類的使用方法。
5.?掌握向量類的使用方法。
三、實(shí)驗(yàn)內(nèi)容
(一)了解 Applet 的生命周期
1.?編寫 KY6_1.java 程序文件,源代碼如下。
?????????????? import java.applet.Applet;
?????????????? import java.awt.Graphics;
?????????????? public class KY5_1 extends Applet {
???????????????? StringBuffer buffer=new StringBuffer();
???????????????? public void init() {
?????????????????? addWords("執(zhí)行了初始化方法 init()...");
???????????????? }
???????????????? public void start() {
?????????????????? addWords("執(zhí)行了開始方法 start()...");
???????????????? }
???????????????? public void stop() {
?????????????????? addWords("執(zhí)行了停止方法 stop()...");
???????????????? }
???????????????? public void destroy() {
?????????????????? addWords("執(zhí)行了清除方法 destroy()...");
???????????????? }
???????????????? void addWords(String s) {
?????????????????? System.out.println(s);
????????????? buffer.append(s);
????????????? repaint();
??????????? }
??????????? public void paint(Graphics g) {
????????????? g.drawString(buffer.toString(),5,15);
??????????? }
????????? }
2.?編譯 KY5_1.java 文件。
3.?編寫顯示 KY5_1.class 的頁面文件 KY5_1.html,代碼如下。
???????
???????
???????
4.?在命令提示符窗口調(diào)用小程序查看器瀏覽 KY5_1.html 頁面觀察 Applet 應(yīng)用程序,
(二)使用數(shù)學(xué)函數(shù)類
Math 是一個(gè)最終類,含有基本數(shù)學(xué)運(yùn)算函數(shù),如指數(shù)運(yùn)算、對數(shù)運(yùn)算、求平方根、三角函數(shù)、隨機(jī)數(shù)等,可以直接在程序中加Math.前綴調(diào)用。
1.?創(chuàng)建使用Math 類的應(yīng)用程序KY5_8.java,源程序如下。
import java.util.*;
class KY5_8 {
public static void main(String args[]) {
Random r1=new Random(1234567890L);
Random r2=new Random(1234567890L);
boolean b=r1.nextBoolean(); // 隨機(jī)數(shù)不為0 時(shí)取真值
int i1=r1.nextInt(100); // 產(chǎn)生大于等于0 小于100 的隨機(jī)數(shù)
int i2=r2.nextInt(100); // 同上
double i3=r1.nextDouble(); // 產(chǎn)生大于等于0.0 小于1.0 的隨機(jī)數(shù)
double i4=r2.nextDouble(); // 同上
double d1=Math.sin(Math.toRadians(30.0));
double d2=Math.log(Math.E);
double d3=Math.pow(2.0, 3.0);
int r=Math.round(33.6F);
System.out.println("b 的隨機(jī)數(shù)不為0 時(shí) "+b);
System.out.println("i1 的隨機(jī)數(shù)為 "+i1);
System.out.println("i2 的隨機(jī)數(shù)為 "+i2);
System.out.println("d1 的隨機(jī)數(shù)為 "+i3);
System.out.println("d2 的隨機(jī)數(shù)為 "+i4);
System.out.println("30 弧度的正弦值:Math.sin(Math.toRadians(30.0))= "+d1);
System.out.println("E 的對數(shù)值:Math.log(Math.E)= "+d2);
System.out.println("2 的3 次方:Math.pow(2.0, 3.0)= "+d3);
System.out.println("33.6F 四舍五入:Math.round(33.6F)= "+r);
}
}
2.?編譯 KY6_2.java 文件。
3.?在命令提示符窗口運(yùn)行 KY6_2.class 文件,并輸入 1234??
(三)使用日期類
Java 提供了3 個(gè)日期類:Date、Calendar 和DateFormat。其中,Date 類主要用于創(chuàng)建日期對象并獲取日期,Calendar 類可獲取和設(shè)置日期,DateFormat 類用來設(shè)置日期的格式。
Java 語言規(guī)定的基準(zhǔn)日期為1970.1.1 00:00:00 格林威治(GMT)標(biāo)準(zhǔn)時(shí)間,當(dāng)前日期是由基準(zhǔn)
日期開始所經(jīng)歷的毫秒數(shù)轉(zhuǎn)換出來的。
1.?使用日期類的Applate 應(yīng)用程序
¨?程序功能:說明3 個(gè)日期類Date、Calendar 和DateFormat 的使用方式及顯示的樣式。
¨?編寫KY5_9.java 程序文件,源代碼如下。
import java.text.*;
import java.util.*;
import java.awt.*;
import java.applet.*;
public class KY5_9 extends Applet {
public void paint(Graphics g) {
Date today;
Calendar now;
DateFormat f1,f2;
String s1,s2;
today=new Date(); // 獲取系統(tǒng)當(dāng)前日期
g.drawString("字符串格式:"+today.toString(),20,20);
93
f1=DateFormat.getInstance(); // 以默認(rèn)格式生成格式化器
s1=f1.format(today); // 將日期轉(zhuǎn)換為字符串
g.drawString("系統(tǒng)格式:"+s1,20,40);
// 生成長格式的中國日期格式化器
f1=DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
// 生成長格式的中國時(shí)間格式化器
f2=DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA);
s1=f1.format(today); // 將日期轉(zhuǎn)換為日期字符串
s2=f2.format(today); // 將日期轉(zhuǎn)換為時(shí)間字符串
g.drawString("中國格式:"+s1+" "+s2,20,60);
now=Calendar.getInstance(); // 獲取系統(tǒng)時(shí)間
s1=now.get(now.HOUR)+" 時(shí)" +now.get(now.MINUTE)+" 分"
+now.get(now.SECOND)+"秒";
g.drawString("調(diào)整前時(shí)間:"+s1,20,80);
now.set(2004,8,15,9,9,9);
today=now.getTime();
g.drawString("調(diào)整后時(shí)間:"+today.toString(),20,100);
}
}
¨?編譯程序文件。
¨?在瀏覽器中打開包含應(yīng)用程序的頁面文件
2.?在獨(dú)立運(yùn)行的應(yīng)用程序中使用日期函數(shù)。
¨?程序功能:補(bǔ)充說明3 個(gè)日期類Date、Calendar 和DateFormat 的使用方式及顯示的樣式。
¨?編寫KY5_10.java 程序文件,源代碼如下。
import java.util.*;
import java.text.*;
public class KY5_10
{
public static void main (String args[])
{
Date today = new Date(); //當(dāng)前日期和時(shí)間
SimpleDateFormat sdf;
sdf= new SimpleDateFormat("yyyy 年MM 月dd 日hh 時(shí)mm 分ss 秒 a EEEEE");
System.out.println("當(dāng)前日期和時(shí)間: "+sdf.format(today));
long hms=System.currentTimeMillis(); //當(dāng)前時(shí)間的毫秒數(shù)
System.out.println("當(dāng)前時(shí)間的毫秒數(shù)="+hms);
Date tomorrow = new Date(hms+24*60*60*1000);
System.out.println("明天是"+sdf.format(tomorrow));
Calendar now = Calendar.getInstance();
int year =now.get(Calendar.YEAR); //年份
int month=now.get(Calendar.MONTH)+1; //月份
int day = now.get(Calendar.DATE); //日期
System.out.print("今天是"+year+"年"+month+"月"+day+"日");
int week = now.get(Calendar.DAY_OF_WEEK); //星期
switch (week)
{
case 1: System.out.println(" 星期日");break;
case 2: System.out.println(" 星期一");break;
case 3: System.out.println(" 星期二");break;
case 4: System.out.println(" 星期三");break;
case 5: System.out.println(" 星期四");break;
case 6: System.out.println(" 星期五");break;
case 7: System.out.println(" 星期六");break;
}
}
}
¨?編譯并運(yùn)行程序
評論