實驗 6 常用系統類的使用
一、實驗目的
了解 Java 常用的系統類,包括 Java Applet、字符串類、輸入輸出流類、數學函數類、日期類、隨機數類以及向量類等的基本使用方法。理解 Java 系統類的構成。
二、實驗要求
1.?進一步了解 Applet 類。
2.?掌握不同類型的輸入輸出流類,標準數據流、文件流、數據輸入輸出流、對象流等。
3.?掌握數學函數類的使用方法。
4.?掌握日期類的使用方法。
5.?掌握向量類的使用方法。
三、實驗內容
(一)了解 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("執行了初始化方法 init()...");
???????????????? }
???????????????? public void start() {
?????????????????? addWords("執行了開始方法 start()...");
???????????????? }
???????????????? public void stop() {
?????????????????? addWords("執行了停止方法 stop()...");
???????????????? }
???????????????? public void destroy() {
?????????????????? addWords("執行了清除方法 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.?在命令提示符窗口調用小程序查看器瀏覽 KY5_1.html 頁面觀察 Applet 應用程序,
(二)使用數學函數類
Math 是一個最終類,含有基本數學運算函數,如指數運算、對數運算、求平方根、三角函數、隨機數等,可以直接在程序中加Math.前綴調用。
1.?創建使用Math 類的應用程序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(); // 隨機數不為0 時取真值
int i1=r1.nextInt(100); // 產生大于等于0 小于100 的隨機數
int i2=r2.nextInt(100); // 同上
double i3=r1.nextDouble(); // 產生大于等于0.0 小于1.0 的隨機數
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 的隨機數不為0 時 "+b);
System.out.println("i1 的隨機數為 "+i1);
System.out.println("i2 的隨機數為 "+i2);
System.out.println("d1 的隨機數為 "+i3);
System.out.println("d2 的隨機數為 "+i4);
System.out.println("30 弧度的正弦值:Math.sin(Math.toRadians(30.0))= "+d1);
System.out.println("E 的對數值: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.?在命令提示符窗口運行 KY6_2.class 文件,并輸入 1234??
(三)使用日期類
Java 提供了3 個日期類:Date、Calendar 和DateFormat。其中,Date 類主要用于創建日期對象并獲取日期,Calendar 類可獲取和設置日期,DateFormat 類用來設置日期的格式。
Java 語言規定的基準日期為1970.1.1 00:00:00 格林威治(GMT)標準時間,當前日期是由基準
日期開始所經歷的毫秒數轉換出來的。
1.?使用日期類的Applate 應用程序
¨?程序功能:說明3 個日期類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(); // 獲取系統當前日期
g.drawString("字符串格式:"+today.toString(),20,20);
93
f1=DateFormat.getInstance(); // 以默認格式生成格式化器
s1=f1.format(today); // 將日期轉換為字符串
g.drawString("系統格式:"+s1,20,40);
// 生成長格式的中國日期格式化器
f1=DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
// 生成長格式的中國時間格式化器
f2=DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA);
s1=f1.format(today); // 將日期轉換為日期字符串
s2=f2.format(today); // 將日期轉換為時間字符串
g.drawString("中國格式:"+s1+" "+s2,20,60);
now=Calendar.getInstance(); // 獲取系統時間
s1=now.get(now.HOUR)+" 時" +now.get(now.MINUTE)+" 分"
+now.get(now.SECOND)+"秒";
g.drawString("調整前時間:"+s1,20,80);
now.set(2004,8,15,9,9,9);
today=now.getTime();
g.drawString("調整后時間:"+today.toString(),20,100);
}
}
¨?編譯程序文件。
¨?在瀏覽器中打開包含應用程序的頁面文件
2.?在獨立運行的應用程序中使用日期函數。
¨?程序功能:補充說明3 個日期類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(); //當前日期和時間
SimpleDateFormat sdf;
sdf= new SimpleDateFormat("yyyy 年MM 月dd 日hh 時mm 分ss 秒 a EEEEE");
System.out.println("當前日期和時間: "+sdf.format(today));
long hms=System.currentTimeMillis(); //當前時間的毫秒數
System.out.println("當前時間的毫秒數="+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;
}
}
}
¨?編譯并運行程序
評論
查看更多