《常用系统类》PPT课件.ppt

上传人:小飞机 文档编号:5503673 上传时间:2023-07-14 格式:PPT 页数:45 大小:484.50KB
返回 下载 相关 举报
《常用系统类》PPT课件.ppt_第1页
第1页 / 共45页
《常用系统类》PPT课件.ppt_第2页
第2页 / 共45页
《常用系统类》PPT课件.ppt_第3页
第3页 / 共45页
《常用系统类》PPT课件.ppt_第4页
第4页 / 共45页
《常用系统类》PPT课件.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《常用系统类》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《常用系统类》PPT课件.ppt(45页珍藏版)》请在三一办公上搜索。

1、第5章 常用系统类,本章主要内容1.Applet类2.输入输出流类3.数学函数类4.日期类5.随机数类6.向量类,5.1 Applet类,Applet是一种特殊的Java程序,经过编译后可被嵌入到HTML文件中,并由Web浏览器内置的Java解释器执行。所有Applet都继承自同一个类:java.applet.Applet,这个类是Java语言的基础类,有关Applet的所有特性都被定义在这个类中。,5.1.1 Applet的特点,Applet是一种在Web页中运行的小应用程序。Java的Applet与Application有一个明显的区别:Application是独立程序,可直接通过Java

2、解释器来解释运行;而Applet只能在Web浏览器上运行,必须通过标签将编译后的字节码文件嵌入到Web页中。,5.1.2 创建Applet,创建applet 需要导入java.applet包中的 Applet类 由于paint方法是AWT的一部分,所以我们这里也导入java.awt包中的AWT类import java.applet.Applet;import java.awt.*;public class applet extends Applet/类applet继承自Applet类 public void paint(Graphics g)/Graphics类的 g 对象传递给paint g

3、.drawString(hello from java!,60,100);/开始位置/用g对象的drawString方法实际绘制文本,5.1.3 运行Applet,文件名字为abc.html 可以直接显示,也可以用appletviewer查看C:appletviewer abc.html,在代码中嵌入标记,/*将标记直接放入applet.java文件中,可以不用Web页面测试,创建appletviewer applet.java观看 CODE=applet.class WIDTH=200 HEIGHT=200*/import java.applet.Applet;import java.awt

4、.*;public class applet extends Applet public void paint(Graphics g)g.drawString(hello from java!,60,100);,运行结果,5.2 输入输出(I/O)流类,1数据流(Stream)与数据流是传递信息数据的载体,是程序中的数据所经历的路径。流分为输入流与输出流两大部分。数据是指一组有顺序的、有起点和终点的字节集合,数据的发送者与数据接收者可以是:一个文件、磁盘、内存、另一个程序或是网络,数据可以是不同的格式:字符串、图像、声音或对象等。,2输入流与输出流,建立数据流实际上就是建立数据传输通道,将起点

5、和终点连接起来。例如,程序要读写文件,可以在程序和文件之间建立一个数据流。如果要从文件中读数据,则文件是起点,程序是终点;写入数据,则刚好相反。输入流只能读不能写,而输出流只能写不能读。java.io包中具体声明了用于读写操作的输入流与输出流类,例如,FileInputStream(文件输入流类)、ObjectOutputStream(对象输出流类)。,3缓冲流,对数据流的每次操作是以字节为单位进行,即可以向输入流或输出流中读取或写入一个字节,显然这样的数据传输效率很低。为了提高数据传输效率,通常使用缓冲流(buffered stream),即为一个流配有一个缓冲区(buffer)。当向一个缓

6、冲流写入数据时,系统将数据发送到缓冲区,而不是直接发送到外部设备,缓冲区自动记录数据,当缓冲区满时,系统将数据全部发送到相应设备。,5.2.2 Java的标准数据流,标准输入输出指在字符方式下(如DOS提示符),程序与系统进行交互的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。标准输入输出的功能是通过Java中的系统类System实现的。System类在java.lang包中,有三个静态的成员变量:in、out和err,可以在程序中直接调用它们。,1标准输入System.in,System.in作为InputStream类

7、的对象实现标准输入,可以调用它的read方法来读取键盘数据。read方法有3种格式:public abstract int read()public int read(byte b)public int read(byte b,int off,int len)如果输入流结束,返回-1。发生I/O错时,会抛出IOException异常。,2标准输出System.out,System.out作为PrintStream打印流类的的对象实现标准输出,可以调用它的print、println或write方法来输出各种类型的数据。print和println的参数完全一样,不同之处在于println输出后换行

8、而print不换行。write方法用来输出字节数组,在输出时不换行。,例5.6 从键盘输入字符,在屏幕显示输出数据。如图所示。,class IO1 public static void main(String args)throws java.io.IOException byte buffer=new byte40;System.out.println(从键盘输入不超过40个字符,按回车键结束输入:);int count=System.in.read(buffer);/读取标准输入流 System.out.println(保存在缓冲区的元素个数为+count);System.out.prin

9、tln(输出buffer元素值:);,for(int i=0;icount;i+)System.out.print(+bufferi);System.out.println();System.out.println(输出buffer字符元素:);System.out.write(buffer,0,buffer.length);,5.2.3 java.io包中的数据流类,java.io包封装了大量的数据流类,支持基于字节流的数据流和基于字符流的数据流。基本流类有4个,它们都是抽象类,它们是基于Unicode字符的输入流Reader和输出流Writer,基于二进制字节的输入流InputStream

10、和输出流OutputStream。其它所有数据流类都是从它们中派生出来的子类。,5.2.4 数据流的应用,例5.7 基于字符型的文件输入输出流与缓冲流的应用。该程序具有复制文件,在屏幕显示文件内容的功能。运行结果如图所示。,import java.io.*;public class IO2 public static void main(String args)throws IOException FileReader in=new FileReader(Hello.java);/建立文件输入流 BufferedReader bin=new BufferedReader(in);/建立缓冲输入

11、流 FileWriter out=new FileWriter(Hello.txt,true);/建立文件输出流 String str;while(str=bin.readLine()!=null)System.out.println(str);out.write(str+n);in.close();out.close();,5.3 数学函数类Math,Math是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根和三角函数等,可以直接在程序中加Math前缀调用。下面是其成员变量和常用成员方法(举例说明):static double E/数学常量estatic double PI/

12、圆周率static double sin(double a)/正弦函数static double cos(double a)/余弦函数static double tan(double a)/正切函数static double exp(double a)/常数e的a次幂,5.4 日期类,Java提供了3个日期类:Date、Calendar和DateFormat,提供了日期和时间操作。在程序中,对日期的处理主要是如何获取、设置和格式化,Java的日期类提供了很多方法以满足程序员的各种需要。其中,Date主要用于创建日期对象并获取日期,Calendar可获取和设置日期,DateFormat主要用来创

13、建日期格式化器。Java语言规定的基准日期为1970.1.1 00:00:00 格林威治(GMT)标准时。,例5.10 日期的获取、设置和格式化,如图所示。,import java.text.*;import java.util.*;import java.awt.*;import java.applet.*;public class Date1 extends Applet public void paint(Graphics g)Date today;Calendar now;DateFormat f1,f2;String s1,s2;,today=new Date();/获取系统当前日期

14、 g.drawString(字符串格式:+today.toString(),20,20);f1=DateFormat.getInstance();/以默认格式生成格式化器 s1=f1.format(today);/将日期转换为字符串 g.drawString(系统格式:+s1,20,40);/生成长格式的中国时间格式化器,f2=DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA);s2=f2.format(today);/将日期转换为时间字符串 g.drawString(中国格式:+s1+s2,20,60);,now=Calendar

15、.getInstance();/获取系统时间 s1=now.get(now.HOUR)+时+now.get(now.MINUTE)+分+now.get(now.SECOND)+秒;g.drawString(调整前时间:+s1,20,80);now.set(2001,2,15,9,9,9);today=now.getTime();g.drawString(调整后时间:+today.toString(),20,100);,5.5 随机数类Random,随机数类Random,提供了随机数生成器。Random有两个构造方法:Random()、Random(long seed)。前者使用系统时间作为种子

16、数,后者使用指定的种子数。构造方法只是创建了随机数生成器,必须调用生成器的方法才能产生随机数。Random具有nextBoolean、nextInt等方法。,例5.11 生成各种类型的随机数,如图所示。,import java.util.*;class RD1 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);/产

17、生大于等于0小于100的随机数 int i2=r2.nextInt(100);/同上 double d1=r1.nextDouble();/产生大于等于0.0小于1.0的随机数 double d2=r2.nextDouble();/同上 System.out.println(b);System.out.println(i1);System.out.println(i2);System.out.println(d1);System.out.println(d2);,5.6 向量类Vector,向量类Vector,提供了类似于可变长数组的操作。Java中的数组只能保存固定数目的元素,且必须把所有需

18、要的内存单元一次性的申请出来,而不能先创建数组再追加数组元素数量,为了解决这个问题Java中引入了向量类Vector。Vector也是一组对象的集合,但相对于数组,Vector可以追加对象元素数量,可以方便的修改和维护序列中的对象。,Vector被设计成一个能不断增长的序列,用来保存对象引用。在创建Vector对象时可以指定初始容量和增量,每次添加元素都将使向量长度按增量自动增长。向量(Vector)是java.util类包提供的一个工具类。Vector类似于可变长数组,但功能更加强大,任何类型的对象都可以放入Vector。通过调用Vector封装的方法,可以随时添加或删除向量元素,以及增加或

19、缩短向量序列的长度。,向量比较适合在如下情况下使用:1.需要处理的对象数目不定,序列中的元素都是对象或可以表示为对象。2.需要将不同类的对象组合成一个数据序列。3.需要做频繁的对象序列中元素的插入和删除。4.经常需要定位序列中的对象和其他查找操作。5.在不同的类之间传递大量的数据。Vector类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,例如其中的对象不能是简单数据类型等。,(1)创建向量类的对象Vector类的三个构造函数:Vector():构造一个空的向量Vector(int capacity):以指定的存储容量构造一个空的向量Vector(int capacity,int

20、capacityIncrement):以指定的存储容量和容量增量构造一个空的Vector。例如:Vector MyVector=new Vector(100,50);这个语句创建的MyVector向量序列初始有100个元素的空间,以后以50为单位递增,使序列中元素的个数变化成150,200,。在创建Vector序列时,不需要指明序列中元素的类型,可以在使用时确定。,(2)向向量序列中添加元素:有两种添加元素的方法:addElement(Object obj):将新元素添加到序列尾部。insertElementAt(Object obj,int index):将新元素插入到指定位置。,下面是使用

21、这两种方法的例子:Vector MyVector=new Vector();for(int i=1;i=10;i+)MyVector.addElement(new Random();MyVector.insertElementAt(middle,5);,(3)修改或删除向量序列中的元素使用以下方法修改或删除向量序列中的元素:1.setElementAt(Object obj,int index)将向量序列index位置处的对象元素设置成为obj,如果这个位置原来有元素则被覆盖。2.removeElement(Object obj)删除向量序列中第一个与指定的obj对象相同的元素,同时将后面的元

22、素前提,补上空位。3.removeElementAt(int index)删除index指定位置处的元素,同时将后面的元素前提。4.removeAllElements()清除向量序列中的所有元素。,(4)查找向量序列中的元素 常用于查找向量序列中某元素的方法如下:1.Object elementAt(int index)返回指定位置处的元素。一个要注意的问题:由于返回的是Object类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。例如:String str=(String)MyVector.elementAt(0);2.boolean

23、contains(Object obj)检查向量序列中是否包含指定的对象元素obj。,3.int indexOf(Object obj,int start_index)从指定的start_index位置开始向后搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置。若指定的对象不存在,则返回1。4.int lastIndexOf(Object obj,int start_index)从指定的start_index位置开始向前搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置。若指定的对象不存在,则返回1。例如:int i=0;While(i=MyVector.indexOf(“

24、welcome”,i)!=-1)System.out.println(i);,(5)Vector中的其他方法capacity():返回Vector的容量 clone():建立Vector的备份copyInto(Object):把Vector中的元素拷贝到一个数组中firstElement():返回第一个元素lastElement():返回最后一个元素isEmpty():判断是否为空setSize(int size):设置Vector的大小size():返回Vector中元素的数量trimToSize():将Vector的容量下调至最小值,使用Vector时,一个需要特别注意的问题就是要先创建后

25、使用。如果不先使用new运算符利用构造函数创建Vector类的对象,而直接使用Vector的方法,如:addElement()等方法,则可能造成堆栈溢出或使用null指针等异常,妨碍程序的正常运行。,例5.12 Vector的各种用法,如图所示。,import java.util.*;public class V0public static void main(String args)Vector v=new Vector(1,1);v.addElement(args0);v.addElement(args1);v.addElement(3);v.insertElementAt(0,0);v.

26、insertElementAt(aaa字符串元素,3);v.setElementAt(4,4);,Enumeration enu=v.elements();StringBuffer buffer=new StringBuffer();while(enu.hasMoreElements()buffer.append(enu.nextElement().append(,);buffer.deleteCharAt(buffer.length()-1);System.out.println(第4号元素为:+v.elementAt(4);,System.out.println(所有元素:+buffer.toString()+n);System.out.println(元素个数:+v.size()+向量长度:+v.capacity()+n);v.removeAllElements();System.out.println(删除后元素个数:+v.size()+向量长度:+v.capacity()+n);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号