版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计教程第8章 Java常用类p8.1 Object 类类p8.2 System类类p8.3 基本类型的包装类基本类型的包装类p8.4 日期类日期类p8.5 集合框架集合框架 8.1 Object 类1. Object类是类是Java类层次的根类层次的根p所有其他类都是从Object类直接或间接地派生出来的pObject类有一个默认的构造方法,在创建子类的实例时,都会先调用这个默认的构造方法。 public Object( ) / 方法体为空2. Object类类有以下主要方法有以下主要方法pequals() :比较两个对象(引用)是否相同。ptoString():用来返回当前
2、对象的字符串表示。pfinalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。pclone():创建并返回此对象的一个副本pgetClass():返回对象运行时所对应的类的表示,从而可得到相应的信息。 3. equals(Object obj)pequals(Object obj)方法的格式是: public boolean equals(Object obj)p功能:当参数obj引用的对象与当前对象为同一个对象时,返回true,否则返回false。pobj1.equals(obj2)的效果相当于obj1=obj2。例如,平面点类Point是空间点类Poi
3、nt3D的超类。Point point1 = new Point();Point point2 = new Point3D();Point point3 = point1;System.out.println(point1 = point2); / 打印falseSystem.out.println(point1.equals(point2); / 打印falseSystem.out.println(point1 = point3); / 打印trueSystem.out.println(point1.equals(point3); / 打印true 4. toString()p toStri
4、ng()方法的格式是: public String toString()p功能:返回当前对象的字符串表示,格式为“类名对象的十六进制哈希码”。p许多类,如String、StringBuffer和包装类都覆盖了toString()方法,返回具有实际意义的内容。例如,System.out.println(new Object().toString(); / 打印java.lang.Object273d3cSystem.out.println(new Integer(10).toString(); / 打印10System.out.println(new String(“Java”).toStrin
5、g(); / 打印Java以上代码等价于:System.out.println(new Object();System.out.println(new Integer(10);System.out.println(new String(“Java”); 5. clone()p clone()方法的格式是:protected Object clone()throws CloneNotSupportedExceptionp功能:创建并返回此对象的一个副本。pclone方法的返回类型为Object。pclone方法是protcted的,其他包的非子类无法调用它,所以通常需要对其进行覆盖,将该方法定义
6、成public的: 6. getClass()p getClass()方法的格式是: public final Class getClass()p功能:返回表示该对象的运行时类的java.lang.Class对象。1. System类不能有子类,不能实例化。类不能有子类,不能实例化。2. System类类的定义的定义:public final class System public static final InputStream in; / 标准输入流 public static final PrintStream out; / 标准输出流 public static final Print
7、Stream err; / 标准错误输出流 public static void setIn(InputStream in); / 重新设置标准输入流 public static void setOut(PrintStream out); / 重新设置标准输出流 public static void setErr(PrintStream err); / 重新设置标准错误输出流 8.2 System类 public static long currentTimeMillis(); / 返回当前时间(毫秒数) public static void arraycopy(Object src, int
8、 src_position, Object dst, int dst_position, int length); / 数组复制 / 获取由key指定的系统属性值 public static String getProperty(String key); / 设置由key指定的系统属性值 public static String setProperty(String key, String value); public static void gc(); / 请求Java虚拟机运行垃圾收集程序 public static void exit(int status); / 退出当前运行的Java
9、虚拟机 8.2 System类import java.io.*;public class Ex8_1 public static void main(String args) throws IOException char ch; System.out.println(请输入一个字符:); ch = (char)System.in.read(); System.out.println(你输入了: + ch); System.out.println(user.dir= + System.getProperty(user.dir); System.out.println(= +
10、System.getProperty(); 【例8.1】System类方法的举例 System.out.println(= + System.getProperty(); System.out.println(os.arch= + System.getProperty(os.arch); System.out.println(os.version= + System.getProperty(os.version); System.out.println(file.separator= + System.getProperty(file.separa
11、tor); System.out.println(path.separator= + System.getProperty(path.separator); 【例8.1】System类方法的举例(续)8.3 基本类型的包装类1.包装类的概念包装类的概念p基本类型数据转换为对象。p8种基本数据类型对应8种包装类。2.包装类的作用:包装类的作用: p被处理的数据的类型只能是引用类型。p包装类都包含一组实用方法,其中很多是静态的。8.3.1 包装类包装类对象的创建方式对象的创建方式1.构造方法的参数构造方法的参数是是基本型值基本型值例如:Integer i = new Integer(10); Fl
12、oat f= new Float(1.0f); 8.3.1 包装类对象的创建方式2.构造方法的参数是构造方法的参数是基本型值的字符串基本型值的字符串例如:Integer i = new Integer(“123”); Float f= new Float( “12.34F” ); Double d= new Double( “1.234D”);3. Boolean类的构造方法接受任意字符串类的构造方法接受任意字符串例如:Boolean b= new Boolean( “TruE” ); Boolean b= new Boolean( “123a” );8.3.2 包装类的常用方法1.实例方法实
13、例方法xxxValue() Integer i = new Integer(10); int j=Value( ); Float f= new Float( “12.34F” ); float fVar=f.floatValue( ); 2.静态方法静态方法valueOf(String s) Integer i = Integer.valueOf(“123”); Float f= Float.valueOf( “12.34F” ); 3.静态方法静态方法parseXXX(String str)int i = Integer.parseInt(“123”); double d = Do
14、uble.parseDouble(“qwe”);4.实例方法实例方法toString()8.3.3 自动装箱和自动拆箱1.自动装箱和自动拆箱自动装箱和自动拆箱概念概念p装箱:把基本类型的值转换为相应的包装类型对象。p拆箱:把包装类型对象转换为相应的基本类型的值。 2. JDK5.0提供了自动装箱和自动拆箱的提供了自动装箱和自动拆箱的功能功能 Integer iObj = 100; Float fObj = 3.14f; Boolean bObj= true; Character cObj= c; int i = iObj; float f = fObj;class Score float ge
15、tScore(Float score) return score; public class WrapPrim public static void main(String args) float x, y; Score o1, o2; o1 = new Score(); o2 = new Score(); x = o1.getScore(96.5f); y = o2.getScore(73.2f); System.out.println(x=+x+, y=+y); 【例8.2】自动装箱和自动拆箱在方法参数和返回类型的应用举例。8.4 日期类8.4.1 Date类和类和DateFormat类类
16、1. Date:创建日期对象并获得创建日期对象并获得日期日期p表示从GMT(格林尼治标准时间)1970年1月1日00:00:00这一刻开始的毫秒数,是以毫秒数来表示特定的日期。Date date = new Date( ); System.out.println(date.getTime();2. DateFormat:对日期进行格式化对日期进行格式化ppublic final String format(Date date):将一个Date格式化为日期/时间字符串。p public Date parse(String source):从给定字符串的开始分析文本,以生成一个日期。ppublic
17、 static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle):获得日期/时间格式化器,该格式化器具有给定日期和时间格式化风格。import java.util.*;import java.text.*;public class Ex8_5 public static void main(String args) Date date = new Date(); DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHOR
18、T,DateFormat.SHORT); DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.F
19、ULL); System.out.println(shortDateFormat.format(date); System.out.println(mediumDateFormat.format(date); System.out.println(longDateFormat.format(date); System.out.println(fullDateFormat.format(date); 【例8.5】DateFormat的方法举例。8.4.2 Calender类1. Calendar类静态类静态方法方法getInstance,用来,用来获得一个获得一个Calendar对象对象Cale
20、ndar now =Calendar.getInstance( );int year=now.get(Calendar.YEAR) ; int month=now.get(Calendar.DAY_OF_MONTH); int minute=now.get(Calendar.MINUTE); Date date= now.getTime(); 2. 更改更改日历日历字段的方法字段的方法pset(int field, int value):设置指定日历字段为给定值。 padd(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。proll(int
21、 field,int amount):向指定日历字段添加指定(有符号的)时间量import java.util.*;public class Ex8_6 public static void main(String args) System.out.println(日 一 二 三 四 五 六); Calendar myCal = Calendar.getInstance(); myCal.set(2015,6,1); int weekNo = myCal.get(Calendar.DAY_OF_WEEK)-1; String myWeek = new StringweekNo+31; for(
22、int i=0; iweekNo; i+) myWeeki = ; 【例8.6】打印2015年7月的日历表 for(int i=weekNo,n=1; iweekNo+31; i+) if(n=9) myWeeki= +String.valueOf(n); else myWeeki=String.valueOf(n); n+; for(int i=0;imyWeek.length; i+) if(i%7=0) System.out.println(); System.out.print(myWeeki+ ); 【例8.6】打印2015年7月的日历表8.5 集合框架1.集合框架集合框架pJava
23、集合框架只提供用于管理存放对象的接口和类,由两种类型构成,一个是Collection;另一个是Map。 pCollection是所有集合的根接口,Map是所有键/值对映射的根接口。2.集合集合和数组的区别和数组的区别p长度p数组存放数据的类型8.5.1 Collection接口接口1.集合类型的根接口集合类型的根接口p三个子接口:List接口、Set接口和Queue接口。pCollection接口声明了集合中常用的一些通用方法。主要包括三类:基本方法、批量方法和数组方法。8.5.1 Collection接口2.基本基本方法方法boolean add(Object o) /向集合中添加指定元素o
24、boolean remove(Object o) /若集合中有指定元素o,则从集合中删除int size() /返回集合中的元素个数boolean isEmpty() /判断集合是否为空,若为空则返回trueboolean contains(Object o) /判断元素是否在集合中,若在则返回trueIterator iterator() /返回该集合迭代器,可遍历集合中的元素3.批量方法批量方法 boolean containsAll(Collection c) /判断c中所有元素是否在集合中, boolean add All(Collection c) /向集合中添加c中所有元素 boo
25、lean remove All(Collection c) /若集合中的元素在c中,从集合中删除 void clear() /删除集合中的所有元素8.5.1 Collection接口4.数组数组方法方法Object toArrary() /将集合中的元素以数组形式返回Object toArrary(Object a) /将集合中的元素转换成指定类型的数组8.5.2 List接口及实现接口及实现类类1. List接口接口的概念的概念p实现一种线性表的数据结构。 pList中可以包含重复元素。pList接口有两个通用的实现类,ArraryList和LinkedList。2. List接口接口的方法
26、的方法p定位访问。 p查找。p迭代和返回子线性表。8.5.2 List接口及实现类3. ArraryList类类是通过是通过数组实现的集合数组实现的集合对象对象p随即访问的性能很好,插入、删除,则性能较差。 p可添加null值的变长对象数组。pArraryList类的构造方法如下:ArraryList() /构造一个初始容量为 10 的空线性表ArraryList(Collection c) /用集合c中的元素构造一个线性表/构造一个具有指定初始容量的空线性表ArraryList(int initialCapacity)4. LinkedList类类p插入、删除,则性能较好,随即访问时间是线性
27、的。 pLinkedList类的构造方法如下:LinkedList() /构造一个空链表LinkedList(Collection c)/用集合c中的元素构造一个链表import java.util.*;class ArrayListDemo public static void main(String args) ArrayList myWeekday = new ArrayList();myWeekday.add(Sunday);myWeekday.add(Monday);myWeekday.add(Wednesday);myWeekday.add(Friday);System.out.p
28、rintln(myWeekday); myWeekday.add(2,Tuesday);myWeekday.set(4,Thursday);myWeekday.remove(0);Iterator iterator = myWeekday.iterator();while(iterator.hasNext() /迭代器遍历线性表 String day = iterator.next();System.out.println(day);【例8.7】在ArraryList线性表中进行定位、查找和迭代8.5.2 List接口及实现类4. LinkedList类类p插入、删除,则性能较好,随即访问时间
29、是线性的。 p构造LinkedList链表不需要指定初始容量。pLinkedList类的构造方法如下: LinkedList() /构造一个空链表 LinkedList(Collection c)/用集合c中的元素构造一个链表import java.util.*;public class LinkedListDemo public static void main(String args) LinkedList link = new LinkedList();for(int i=0;i10;i+)link.add(String.valueOf(i);Iterator iterator = li
30、nk.iterator();while(iterator.hasNext()System.out.print(iterator.next()+ );System.out.println();link.addLast(String.valueOf(10);link.set(5, String.valueOf(555);link.remove(0);System.out.println(link);【例8.8】在LinkedList链表中进行定位、查找和迭代8.5.3 Set接口及实现类1. Set接口的接口的概念概念pSet接口对象类似于数学的集合概念。 pSet接口与List接口对象最大的区别
31、:重复元素。顺序 。pSet接口是Collection的子接口,且没有定义新方法。pSet接口的常用实现类有TreeSet类、HashSet类和LinkedHashSet类。2. TreeSet类类pSortedSet接口是一个Sorted类型的Set,即实现该接口的类将按对象的天然顺序自动排序。 pTreeSet类是实现了SortedSet接口的类。它有四个构造方法: TreeSet() /构造一个空的树集合 TreeSet(Collection c) /用集合c中的元素构造一个树集合 TreeSet(Comparator c) /空的树集合,按比较器c的规则排序 TreeSet(Sorte
32、dSet s) /用集合s中的元素构造一个树集合import java.util.*;public class TreeSetDemo public static void main(String args) TreeSet ts = new TreeSet();ts.add(String.valueOf(5);ts.add(String.valueOf(6);ts.add(String.valueOf(3);ts.add(String.valueOf(2);ts.add(String.valueOf(4);ts.remove(String.valueOf(5);ts.add(String.v
33、alueOf(1);System.out.println(ts);【例8.9】在TreeSet树集合中进行添加和删除8.5.3 Set接口及实现类3. HashSet类类的的概念概念pHashSet类是按照哈希算法来存储对象引用的。 p特点:最好的存取性能,存储的对象引用没有顺序,可向HashSet中添加一次null值。pHashSet类的构造方法有:HashSet() /构造一个空的散列集合,加载因子(load factor)是0.75HashSet(Collection c) /用集合c中的元素构造一个散列集合/构造一个指定初始容量的散列集合HashSet(int initialCapac
34、ity)/构造一个散列集合,并指定初始容量和加载因子HashSet(int initialCapacity,float loadFactor)import java.util.*;public class HashSetDemo public static void main(String args) HashSet hs = new HashSet();hs.add(String.valueOf(5);hs.add(String.valueOf(1);hs.add(String.valueOf(3);hs.add(String.valueOf(2);hs.add(String.valueOf
35、(4);hs.remove(String.valueOf(5);hs.add(String.valueOf(1);hs.add(null); /将null添加到HashSet中System.out.println(hs);【例8.10】在HashSet散列集合中进行添加和删除8.5.4 Queue接口及实现类1. Queue接口接口的概念的概念pQueue接口是Collection的子接口,是以先进先出的方式排列其对象,称为队列。 pQueue接口定义的方法:boolean add(E e) /将指定的对象e插入到队列中E remove() /返回队列头对象,并将其删除E element()
36、/返回队列头对象,但不将其删除boolean offer(E e) /将指定的对象e插入到队列中E poll() /返回队列头对象,并将其删除E peek() /返回队列头对象,但不将其删除2. Queue接口接口的的实现类实现类 pQueue接口有两个实现类:LinkedList类和PriorityQueue类。pPriorityQueue是优先队列,优先队列中的对象的顺序是根据对象的值排列的。p队头总是在调用remove()和poll()时被最先删除。import java.util.*;public class QueueDemo public static void main(Stri
37、ng args) int time = Integer.parseInt(args0);Queue queue = new LinkedList();for(int i=time; i=0; i-)queue.add(Integer.valueOf(i);while(!queue.isEmpty()System.out.print(queue.remove()+ );tryThread.sleep(1000);catch(InterruptedException e)e.printStackTrace(); 【例8.11】使用队列实现一个计数器。从命令行指定一个正整数,从指定的数到0事先存放在队列中,然后每隔一秒输出一个数8.5.4 Map接口及实现类1. Map接口接口的概念的概念pMap对象是用来存储关键字/值对的集合对象。 p在Map对象存储的关键字和值都必须是对象,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省芜湖市无为中学等校2026届高三下学期3月考试(三)语文试卷(含答案)
- 第3课 电梯超载可控制教学设计小学信息科技清华版新疆2024六年级下册-清华版(新疆)2024
- 城市供排水设施运行与维护指南
- 企业访客证件办理管理手册
- Unit5 第三课时听说课教学设计2023-2024学年沪教牛津版英语七年级下册
- Unit5 Here and Now SectionA Pronunciation教学设计 人教版(2024)七年级英语下册
- 2025年企业质量管理规范与实施
- 人教版(2024)八年级下册(2024)第3节 重力教学设计
- 2025年物业管理与维护规范
- 人教2011课标版地理七年级下:6.1 地理和范围 教学设计
- 5.1 人要自强(课件) 2025-2026学年统编版道德与法治七年级下册
- 2026年智能科学与技术专业发展规划
- 2026年湖北国土资源职业学院单招职业技能考试题库及答案详细解析
- 广东粤财投资控股有限公司招聘笔试题库2026
- 婚姻协议书完整版
- 2023河南中医药大学学士学位英语题
- 浙江弘利新材料有限公司年产2万吨造纸化学品中性施胶剂技改项目环境影响报告
- 新能源汽车电池介绍课件
- 车库拆除工程施工方案
- EXCEL培训-EXCEL函数教程
- 呼吸系统解剖生理学课件
评论
0/150
提交评论