基础类和工具类.ppt

上传人:小飞机 文档编号:6223833 上传时间:2023-10-07 格式:PPT 页数:46 大小:767KB
返回 下载 相关 举报
基础类和工具类.ppt_第1页
第1页 / 共46页
基础类和工具类.ppt_第2页
第2页 / 共46页
基础类和工具类.ppt_第3页
第3页 / 共46页
基础类和工具类.ppt_第4页
第4页 / 共46页
基础类和工具类.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《基础类和工具类.ppt》由会员分享,可在线阅读,更多相关《基础类和工具类.ppt(46页珍藏版)》请在三一办公上搜索。

1、面向对象编程,1,4.2.2 对象初始化-静态调用,public class ObjectCreation TestClass testClass=new TestClass(fieldValue);static TestClass testClass2=new TestClass(staticValue);static testClass2.test();public ObjectCreation()System.out.println(ObjectCreation init);public ObjectCreation(String name)System.out.println(Obje

2、ctCreation+name+init);,面向对象编程,2,public static void main(String args)ObjectCreation objectCreation=new ObjectCreation(object1);ObjectCreation objectCreation2=new ObjectCreation(object2);class TestClass public TestClass(String name)System.out.println(TestClass+name+init);void test()System.out.println(

3、makeInner()invoked);,面向对象编程,3,基础类和工具类,面向对象编程,5,主要内容,Java类库 语言基础类 向量类 工具类,面向对象编程,6,Java类库,Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。Java的类库大部分是由它的发明者SUN公司 提供的,这些类库称为基础类库(JFC)。API 应用程序编程接口面向过程语言 函数库(子程序包)面向对象语

4、言 类库,面向对象编程,7,Java类库,类库的结构java.lang 语言基础类库(System、Math、Thread、基本数据类型类)java.util Java的工具类库(向量、栈、日期)java.io Java的标准输入输出类库java.applet 用于实现Java Applet小程序的类库java.awt 用于构建图形用户界面的类库java.awt.event 界面用户交互控制和事件响应类 库 Java的用于实现网络功能的类库使用JDK Document查看类库,面向对象编程,8,语言基础类库-Object类,Java程序中所有类的直接或间接父类,也是类库中所有类的的父类,所有的

5、其他类都是从Object类派生。构造方法:Object()一般方法:Object clone()生成当前对象的一个拷贝。boolean equals(Object obj)比较两个对象是否 相同。Class getClass()获取当前对象所属的类信息。String toString()用来返回当前对象本身的有关 信息。,面向对象编程,9,public class BasicObjectDemo public static void main(String args)A a1=new A();A a2=new A();A a3=a1;B b=new B();System.out.println

6、(a1.equals(a2);System.out.println(a3.equals(a1);System.out.println(a1.hashCode();System.out.println(a1.toString();class A class B,面向对象编程,10,实例,public class PhoneNumber private String region;private String number;public String toString()return book.ch6.PhoneNumber+region=+region+,number=+number+;,面向对

7、象编程,11,System类,属性public static InputStream in public static PrintStream outpublic static PrintStream err 获取系统信息、完成系统操作的方法public static long currentTimeMillis();获取自1970年1月1日零时至当前系统时刻的微秒数 972370687290public static void exit(int status);强制Java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统。System.exit(0);public s

8、tatic void gc();强制调用Java虚拟机的垃圾回收功能。,面向对象编程,12,语言基础类库:System类,System是一个功能强大的类,它提供了标准输入输出、运行时的系统信息等工具系统功能类获取系统标准输入/输出System.in,System.out,System.err获取系统信息System.currentTimeMillis()执行系统操作System.exit(0);System.gc();,面向对象编程,13,语言基础类库:数据类型类,基本数据类型 vs.数据类型类boolean vs Boolean,char vs Character等数据类型类规定了数据类型的

9、最大值、最小值构造函数:如new Integer(10);完成不同数据类型间转换,注意不同的数据类使用的方法会有不同。Double.toString(0.08)、Integer.parseInt(“123”)、Double.ValueOf(“0.08”).intValue()等,见JDK Doc,面向对象编程,14,语言基础类库:Math类,Math类用来完成常用的数学运算数学常量:E,PI数学运算Math.abs(-8.09);Math.exp(5.7);Math.random();Math.sqrt(9.08);Math.pow(2,3);/乘方Math.round(99.6);均为sta

10、tic,使用时无需创建实例 Math.method(variable);,面向对象编程,15,数学运算的Math类,属性public final static double E;/数学常量epublic final static double PI;/圆周率常量方法(均为静态方法)public static int abs(int i);public static double sin(double a);public static double log(double a);public static double max(double a,double b);public static do

11、uble pow(double a,double b);public static double random();/产生01之间伪 随机数,面向对象编程,16,数学运算的Math类,public static double exp(double a);public static int round(float a);public static double sqrt(double a);例:System.out.println(Math.E);2.718281828.System.out.println(Math.PI);3.14159265System.out.println(Math.p

12、ow(2,3);8.0System.out.println(Math.round(99.6);100System.out.println(Math.abs(-8.09);8.09,面向对象编程,17,public class StringDemo public static void main(String args)String s;s=String test;s=new String(String test);int stringLength=s.length();System.out.println(stringLength=+stringLength);boolean startTes

13、t=s.startsWith(Str);boolean endTest=s.endsWith(est);System.out.println(startTest=+startTest);System.out.println(endTest=+endTest);int blankIndex=s.indexOf();System.out.println(blankIndex=+blankIndex);,字符串相关类String,面向对象编程,18,int subStringIndex=s.indexOf(est);System.out.println(subStringIndex=+subStri

14、ngIndex);int lastIndex=s.lastIndexOf(s);System.out.println(lastIndex=+lastIndex);String s2=String test2;int compare=pareTo(s);System.out.println(compare=+compare);boolean equalTest=s2.equals(s);System.out.println(equalTest=+equalTest);char singleChar=s.charAt(3);System.out.println(singleChar=+single

15、Char);,面向对象编程,19,String subString=s.substring(3);System.out.println(subString=+subString);String trimString=s.trim();System.out.println(trimString=+trimString+);String upperCase=s.toUpperCase();System.out.println(upperCase=+upperCase);String lowerCase=s.toLowerCase();System.out.println(lowerCase=+lo

16、werCase);,面向对象编程,20,字符串相关类StringBuffer,public class StringBufferDemo public static void main(String args)StringBuffer buffer=new StringBuffer();buffer.append(S);buffer.append(tringBuffer);System.out.println(buffer.charAt(1);System.out.println(buffer.capacity();System.out.println(buffer.indexOf(tring

17、);System.out.println(buffer=+buffer.toString();揭秘StringBuffer的capacity.mht,面向对象编程,21,6.3 集合,Collection-Set:不允许重复元素存在;无保存顺序-List:允许重复元素存在,保存顺序-Iterator接口:可以用来遍历集合所有数据-Map接口:表示关键字-值的集合,面向对象编程,22,6.3 集合-Set,public class SetDemo public static void main(String args)Set set=new HashSet();set.add(1);set.ad

18、d(2);set.add(3);set.add(4);set.add(new Integer(1);set.add(new Double(7.0);set.add(3);System.out.println(set=+set);,面向对象编程,23,6.3 集合-List,public class ListDemo public static void main(String args)List list=new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(new Double

19、(7.0);list.add(4);System.out.println(list=+list);,面向对象编程,24,Iterator接口,public class IteratorDemo public static void main(String args)Set set=new HashSet();set.add(1);set.add(2);set.add(3);set.add(4);set.add(new Integer(1);set.add(new Double(7.0);Iterator iterator=set.iterator();while(iterator.hasNex

20、t()System.out.println(iterator.next();iterator.remove();System.out.println(set=+set);,面向对象编程,25,ListIterator接口,public class ListIteratorDemo public static void main(String args)List list=new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);ListIterator iterator=list.listIterat

21、or();while(iterator.hasNext()System.out.println(iterator.next();while(iterator.hasPrevious()System.out.println(iterator.previous();,面向对象编程,26,Map接口,Map接口:表示关键字-值的集合,面向对象编程,27,Map接口,public class MapDemo public static void main(String args)Map map=new HashMap();map.put(1,value1);map.put(2,value2);map.

22、put(3,value3);map.put(4,value4);System.out.println(map.get(1);,面向对象编程,28,Set keySet=map.keySet();for(Iterator iterator=keySet.iterator();iterator.hasNext();)System.out.println(iterator.next();Collection values=map.values();for(Iterator iterator=values.iterator();iterator.hasNext();)System.out.printl

23、n(iterator.next();Set entrySet=map.entrySet();for(Iterator iterator=entrySet.iterator();iterator.hasNext();)System.out.println(iterator.next();,面向对象编程,29,运行结果,面向对象编程,30,向量类-Vector,Vector是一组对象的集合,Vector可以追加对象元 素的数量,方便地修改和维护序列中的对象。适合于如下的情况需要处理的对象数目不定序列中元素都是对象,而不是基本数据类型的量需要做频繁的元素插入和删除需要定位序列中的对象或其他查找操作

24、0 1 2 3,面向对象编程,31,创建向量类对象,创建向量类的对象Vector myVector=new Vector();创建空的向量对象(初始容量为10)优化存储管理Vector myVector=new Vector(100);创建空的向量对象(初始容量为100)Vector myVector=new Vector(100,50);创建空的向量对象(初始容量为100,增量 为50),面向对象编程,32,向量元素操作,追加元素 addElement(Object obj)插入元素 insertElement(Object obj,int index)修改向量中的元素 setElement

25、At(Object obj,int index)删除向量中的指定元素 removeElementAt(int index)Boolean removeElement(Object obj)removeAllElements(),面向对象编程,33,向量元素操作,取出向量中的指定元素 Object get(int index)测试对象在向量中是否存在 boolean contains(Object obj)查找指定元素的位置 int indexOf(Object obj)int indexOf(Object obj,int start_index),面向对象编程,34,向量元素操作,返回指定位置

26、的元素 Object elementAt(int index)由于返回的是Object类型的对象,在使用前要 进行强制类型转换,将返回的对象引用转换成 Object类的某个具体子类的对象。String str=(String)MyVector.elementAt(0);返回一个包含向量中所有元素的对象数组 Object toArray(),面向对象编程,35,获取向量信息,清空向量(删除所有元素)clear()测试向量是否为空 boolean isEmpty()当前向量元素数量 int size()向量当前容量 int capacity(),面向对象编程,36,例:CatsAndDogs.ja

27、va public class CatsAndDogs public static void main(String args)Vector cats=new Vector();for(int i=0;i 7;i+)cats.addElement(new Cat(i);/Not a problem to add a dog to cats:cats.addElement(new Dog(7);for(int i=0;i cats.size();i+)(Cat)cats.elementAt(i).print();/Dog is detected only at run-time/改为:if(ca

28、ts.elementAt(i)instanceof Cat)/:,缺点:Object的类型不确定;对象的类型不匹配只能在运行期才能被检测出来,面向对象编程,37,工具类库:日期,Calendar(表示日期和时间)getInstance():得到表示当前时间的实例get(int):获取相应信息,如get(Calendar.YEAR)set(int,int):如 set(Calendar.YEAR,1999)set(year,month,date):set用来设置信息Calendar.getTime():得到当前时间的Date对象GregorianCalendar有不同的构造方法,用来创建实例。如

29、:GregorianCalender(year,month,date,),面向对象编程,38,日期类Date,构造方法 Date()初始化时间对象方法 long getTime()获取自1970.1.1零时至当 前系统时刻的微秒数 其他若干方法 int getDate()获取系统当前日期,面向对象编程,39,日期类Calendar,抽象类,在Date对象和一组整数域之间进行转换:YEAR,MONTH,DAY,HOUR,Calendar c=Calendar.getInstance();int c.get(Calendar.YEAR)int c.get(Calendar.MONTH)(1月为0)

30、int c.get(Calendar.DATE)int c.get(Calendar.HOUR)int c.get(Calendar.MINUTE)int c.get(Calendar.SECOND)Date c.getTime(),面向对象编程,40,日期类Calendar,c.set(Calendar.YEAR,2000)c.set(Calendar.MONTH,10)(11月)c.set(Calendar.DATE,7)c.set(2000,10,7)c.set(2000,10,7,17,48,20),面向对象编程,41,例题-银行帐户,面向对象编程,42,工具类库:栈,java.uti

31、l.Stack(常用的线性数据结构)栈底:固定的一端栈顶:数据元素进出的一端遵循:“后进先出”原则常用的堆栈操作创建堆栈:Stack()压栈操作:push(Object)弹栈操作:pop(),面向对象编程,43,堆栈Stack,是Vector的子类构造方法 Stack()建立一个新的栈方法 boolean empty()测试栈是否空 Object peek()查看栈顶元素 Object pop()弹栈(出栈)Object push(Object item)压栈(进栈)int search(Object item)查找栈中元素,返回距栈顶 位置(栈顶位置为1),栈底,栈顶,面向对象编程,44,堆栈例-表达式计算,#,2,*,(,3,+,5,8,16,-,4,12,操作数栈 s1 操作符栈 s2,面向对象编程,45,堆栈例-表达式计算,栈顶运算符 表达式当前运算符,面向对象编程,46,课后作业,P144.第4、6、8、10题,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号