收藏 分享(赏)

06-基础类和工具类.ppt

上传人:Facebook 文档编号:9710082 上传时间:2019-08-27 格式:PPT 页数:46 大小:511.50KB
下载 相关 举报
06-基础类和工具类.ppt_第1页
第1页 / 共46页
06-基础类和工具类.ppt_第2页
第2页 / 共46页
06-基础类和工具类.ppt_第3页
第3页 / 共46页
06-基础类和工具类.ppt_第4页
第4页 / 共46页
06-基础类和工具类.ppt_第5页
第5页 / 共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.

2、println(“ObjectCreation “ + 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 “ + nam

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

4、库称为基础类库(JFC)。 API 应用程序编程接口 面向过程语言 函数库(子程序包) 面向对象语言 类库,面向对象编程,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查看类库,面

5、向对象编程,8,语言基础类库-Object类,Java程序中所有类的直接或间接父类,也是类库中所有类的的父类,所有的其他类都是从Object类派生。 构造方法:Object( ) 一般方法: Object clone( ) 生成当前对象的一个拷贝。 boolean equals(Object obj) 比较两个对象是否相同。 Class getClass() 获取当前对象所属的类信息。 String toString() 用来返回当前对象本身的有关信息。,面向对象编程,9,public class BasicObjectDemo public static void main(String a

6、rgs) A a1 = new A();A a2 = new A();A a3 = a1;B b = new B();System.out.println(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 St

7、ring toString() return “book.ch6.PhoneNumber“ +“region=“ + region + “ +“, number=“ + number + “ +“; ,面向对象编程,11,System类,属性 public static InputStream in public static PrintStream out public static PrintStream err 获取系统信息、完成系统操作的方法 public static long currentTimeMillis(); 获取自1970年1月1日零时至当前系统时刻的微秒数9723706

8、87290 public static void exit(int status);强制Java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统。 System .exit(0); public static void gc();强制调用Java虚拟机的垃圾回收功能。,面向对象编程,12,语言基础类库:System类,System是一个功能强大的类,它提供了标准输入输出、运行时的系统信息等工具 系统功能类 获取系统标准输入/输出 System.in,System.out,System.err 获取系统信息 System.currentTimeMillis( ) 执行系统

9、操作 System.exit(0); System.gc( );,面向对象编程,13,语言基础类库:数据类型类,基本数据类型 vs. 数据类型类 boolean vs Boolean, char vs Character等 数据类型类 规定了数据类型的最大值、最小值 构造函数:如new Integer(10); 完成不同数据类型间转换,注意不同的数据类使用的方法会有不同。 Double.toString(0.08)、Integer.parseInt(“123”)、 Double.ValueOf(“0.08”).intValue ()等,见JDK Doc,面向对象编程,14,语言基础类库:Mat

10、h类,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); 均为static,使用时无需创建实例Math.method(variable);,面向对象编程,15,数学运算的Math类,属性 public final static double E; / 数学常量e public final static double PI; / 圆周率常量 方法(均为静态方法)public st

11、atic 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 double pow(double a, double b); public static double random(); / 产生01之间伪随机数,面向对象编程,16,数学运算的Math类,public static double exp(double a); public static

12、int round(float a); public static double sqrt(double a); 例: System.out.println(Math.E); 2.718281828 System.out.println(Math.PI); 3.14159265 System.out.println(Math.pow( 2,3); 8.0 System.out.println(Math.round(99.6); 100 System.out.println(Math.abs(- 8.09); 8.09,面向对象编程,17,public class StringDemo publ

13、ic 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 startTest = s.startsWith(“Str“);boolean endTest = s.endsWith(“est“);System.out.println(“startTest = “ + startTest);Sy

14、stem.out.println(“endTest = “ + endTest);int blankIndex = s.indexOf( );System.out.println(“blankIndex = “ + blankIndex);,字符串相关类String,面向对象编程,18,int subStringIndex = s.indexOf(“est“);System.out.println(“subStringIndex = “ + subStringIndex);int lastIndex = s.lastIndexOf(s);System.out.println(“lastInde

15、x = “ + 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 = “ + singleChar);,面向对象编程,19,String subString

16、= 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 = “ + l

17、owerCase);,面向对象编程,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

18、(“tring“);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 HashS

19、et();set.add(“1“);set.add(“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

20、(“3“);list.add(“4“);list.add(“5“);list.add(new Double(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.a

21、dd(new Double(7.0);Iterator iterator=set.iterator();while (iterator.hasNext()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“)

22、;list.add(“2“);list.add(“3“);list.add(“4“);list.add(“5“);ListIterator iterator=list.listIterator();while (iterator.hasNext() System.out.println(iterator.next();while (iterator.hasPrevious()System.out.println(iterator.previous(); ,面向对象编程,26,Map接口,Map接口:表示关键字-值的集合,面向对象编程,27,Map接口,public class MapDemo

23、public static void main(String args) Map map=new HashMap();map.put(“1“, “value1“);map.put(“2“, “value2“);map.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.prin

24、tln(iterator.next();Collection values = map.values();for (Iterator iterator = values.iterator(); iterator.hasNext();) System.out.println(iterator.next();Set entrySet = map.entrySet();for (Iterator iterator = entrySet.iterator(); iterator.hasNext();) System.out.println(iterator.next(); ,面向对象编程,29,运行结

25、果,面向对象编程,30,向量类-Vector,java.util.Vector Vector是一组对象的集合, Vector可以追加对象元素的数量,方便地修改和维护序列中的对象。 适合于如下的情况 需要处理的对象数目不定 序列中元素都是对象,而不是基本数据类型的量 需要做频繁的元素插入和删除 需要定位序列中的对象或其他查找操作 0 1 2 3,面向对象编程,31,创建向量类对象,创建向量类的对象 Vector myVector = new Vector(); 创建空的向量对象(初始容量为10) 优化存储管理 Vector myVector = new Vector(100); 创建空的向量对象

26、(初始容量为100) Vector myVector = new Vector(100,50); 创建空的向量对象(初始容量为100,增量为50),面向对象编程,32,向量元素操作,追加元素addElement(Object obj) 插入元素insertElement(Object obj, int index) 修改向量中的元素setElementAt(Object obj, int index) 删除向量中的指定元素removeElementAt (int index)Boolean removeElement(Object obj)removeAllElements(),面向对象编程,

27、33,向量元素操作,取出向量中的指定元素Object get(int index) 测试对象在向量中是否存在boolean contains(Object obj) 查找指定元素的位置int indexOf(Object obj)int indexOf(Object obj , int start_index),面向对象编程,34,向量元素操作,返回指定位置的元素Object elementAt(int index)由于返回的是Object类型的对象,在使用前要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。String str=(String)MyVector.e

28、lementAt(0); 返回一个包含向量中所有元素的对象数组Object toArray( ),面向对象编程,35,获取向量信息,清空向量(删除所有元素)clear() 测试向量是否为空boolean isEmpty() 当前向量元素数量int size() 向量当前容量int capacity(),面向对象编程,36,例:CatsAndDogs.java public class CatsAndDogs public static void main(String args) Vector cats = new Vector();for(int i = 0; i 7; i+)cats.ad

29、dElement(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 (cats.elementAt(i) instanceof Cat) /:,缺点:Object的类型不确定;对象的类型不匹配只能在运行期才能被检测出来,面向对象编程,37,工具类库:日期,Calendar(表示日期和时

30、间) getInstance( ): 得到表示当前时间的实例 get(int):获取相应信息,如get(Calendar.YEAR) set(int,int):如 set(Calendar.YEAR,1999) set(year,month,date):set用来设置信息 Calendar.getTime():得到当前时间的Date对象 GregorianCalendar 有不同的构造方法,用来创建实例。如:GregorianCalender(year,month,date,),面向对象编程,38,日期类Date,构造方法Date() 初始化时间对象 方法long getTime() 获取自1

31、970.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)int c.get(Calendar.DATE)int c.get(Calendar.HOUR)int c.get(Calendar.MINUTE)int c.get(C

32、alendar.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.util.Stack(常用的线性数据结构) 栈底:固定的一端 栈顶:数据元素进出的一端 遵循:“后进先出”原则 常用的堆栈操作 创建堆栈:Stack() 压栈操作:

33、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题,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报