版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.pr
2、intln(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 + name + init); vo
3、id test() System.out.println(makeInner() invoked); ,面向对象编程,3,基础类和工具类,面向对象编程,5,主要内容,Java类库 语言基础类 向量类 工具类,面向对象编程,6,Java类库,Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。 这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。 Java的类库大部分是由它的发明者SUN公司 提供的,这些类库称为基础类库(JFC)。
4、 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查看类库,面向对象编程,8,语言基础类库
5、-Object类,Java程序中所有类的直接或间接父类,也是类库中所有类的的父类,所有的其他类都是从Object类派生。 构造方法:Object( ) 一般方法: Object clone( ) 生成当前对象的一个拷贝。 boolean equals(Object obj) 比较两个对象是否 相同。 Class getClass() 获取当前对象所属的类信息。 String toString() 用来返回当前对象本身的有关 信息。,面向对象编程,9,public class BasicObjectDemo public static void main(String args) A a1 =
6、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 Strin
7、g 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日零时至当前系统时刻的微秒数 972370687290 publ
8、ic 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( ) 执行系统操作 Syste
9、m.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,语言基础类库:Math类,Math类用
10、来完成常用的数学运算 数学常量: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 static in
11、t 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 int ro
12、und(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 public st
13、atic 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); System.out.pr
14、intln(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(lastIndex = + lastIndex);
15、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 = s.substring(3); System
16、.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 = + lowerCase); ,面向对象编程,20,字符串相关类St
17、ringBuffer,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); System.out.printl
18、n(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.add(2);
19、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.
20、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.add(new Double(7.0); Iterator iterator=set.it
21、erator(); 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); list.add(2); list.add(3); list.add(4); li
22、st.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 public static void main(String args) Map ma
23、p=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.println(iterator.next(); Collection values = map.values();
24、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,运行结果,面向对象编程,30,向量类-Vector,java.util.Vector Vector是一组对象
25、的集合, Vector可以追加对象元 素的数量,方便地修改和维护序列中的对象。 适合于如下的情况 需要处理的对象数目不定 序列中元素都是对象,而不是基本数据类型的量 需要做频繁的元素插入和删除 需要定位序列中的对象或其他查找操作 0 1 2 3,面向对象编程,31,创建向量类对象,创建向量类的对象 Vector myVector = new Vector(); 创建空的向量对象(初始容量为10) 优化存储管理 Vector myVector = new Vector(100); 创建空的向量对象(初始容量为100) Vector myVector = new Vector(100,50); 创
26、建空的向量对象(初始容量为100,增量 为50),面向对象编程,32,向量元素操作,追加元素 addElement(Object obj) 插入元素 insertElement(Object obj, int index) 修改向量中的元素 setElementAt(Object obj, int index) 删除向量中的指定元素 removeElementAt (int index) Boolean removeElement(Object obj) removeAllElements(),面向对象编程,33,向量元素操作,取出向量中的指定元素 Object get(int index)
27、测试对象在向量中是否存在 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.elementAt(0); 返回一个包含向量中所有元素的对象数组 Ob
28、ject 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.addElement(new Cat(i); / Not
29、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(表示日期和时间) 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()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沙滩鞋项目可行性研究报告
- 年产300吨卫星用混肼燃料(肼-偏二甲肼混合)生产项目可行性研究报告
- 微生态制剂项目可行性研究报告
- 畜禽产品气调包装生产线可行性研究报告
- 行政处罚的执行程序和方法
- 2026年及未来5年市场数据中国医疗大数据行业发展潜力预测及投资战略规划报告
- 四川省2026届高三下学期3月联考(26-157C)化学+答案
- 2025 高中信息技术数据与计算之数据在智能医疗影像诊断效率提升中的应用课件
- 2025 高中信息技术数据与计算之数据可视化的弦乐图设计课件
- 2026年单机器人海底管线检查维护维修一体化操作手册
- 以综合材料赋能小学美术课堂:创新教学与实践探索
- 社区管理常识题库及答案
- 2025智能接地箱技术规范
- 软件验证的一般原则
- 胶片调色摄影课件
- 抗癫痫发作药物联合使用中国专家共识2025
- 春天的秘密幼儿园教育
- 《医学影像检查技术学》课件-足X线摄影
- 黄金冶炼项目可行性研究报告
- 第15课《十月革命与苏联社会主义建设》中职高一下学期高教版(2023)世界历史全一册
- GB/T 11981-2024建筑用轻钢龙骨
评论
0/150
提交评论