最新四章类和对象常用类PPT课件.ppt

上传人:豆**** 文档编号:34219230 上传时间:2022-08-15 格式:PPT 页数:68 大小:1.41MB
返回 下载 相关 举报
最新四章类和对象常用类PPT课件.ppt_第1页
第1页 / 共68页
最新四章类和对象常用类PPT课件.ppt_第2页
第2页 / 共68页
点击查看更多>>
资源描述

《最新四章类和对象常用类PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新四章类和对象常用类PPT课件.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、四章类和对象常用类四章类和对象常用类Company Logo主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务介绍任务一 熟练使用Java.lang包中的类解决问题(Object、System、String、StringBuffer、Math、Class、基本数据类型包装类)任务二 了解java.util包中的类(Date,Calendar,集合容器类)任务三 使用常用类解决问题任务分析支撑知识讲解p java.lang包中常用类p java.util包中常用类p Java API文档使用任务实现任务解决任务解决任务小结9Java类库结构v类库的结构 java.lang 语言基础

2、类库(System、Math、 Thread、基本数据类型类) java.util Java的工具类库(向量、栈、日期) java.io Java的标准输入输出类库 java.applet 用于实现Java Applet小程序的类库 java.awt 用于构建图形用户界面的类库 java.awt.event 界面用户交互控制和事件响应类库 Java的用于实现网络功能的类库v使用JDK API查看类库10语言基础类库Object类v Object类 Java程序中所有类的直接或间接父类,也是类库中所有类的的父类v 构造方法 Object( )v 一般方法: Object clone( ) 生成当

3、前对象的一个拷贝。 boolean equals(Object obj) 比较两个对象是否相等。 Class getClass() 获取当前对象所属的类信息。 String toString() 用来返回当前对象本身的有关信息。 protected void finalize() 当垃圾收集器确定对象上没有其他的引用时,调用对象上的垃圾收集器。Object类上的此方法不执行任何特定行为,仅简单返回,其子类会覆盖此方法。11关于toString()方法 vpublic String toString()方法 其返回值是String类型,描述当前对象的有关信息 在进行String与其它类型数据的连

4、接操作时(如:System.out.println(“info”+Person),将自动调用该对象类的toString()方法 可以根据需要在用户自定义类型中重写toString()方法12equals()方法vpublic boolean equals(Object obj)方法 判断对象是否“相等” x.equals(y),当x和y是同一个对象的应用时返回true,否则返回false 有些类,如String、Date等,重写了equals()方法,当使用x.equals(y)时表示x和y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)返回true,否则返回false 可以根据需

5、要在用户自已定义的类中重写equals()方法13语言基础类库System类v System类 系统功能类,提供了标准输入输出、运行时的系统信息等工具 不能创建System类的对象 所有的属性和方法都是静态(static)的,引用时应以System为前缀 属性 获取系统标准输入/输出/错误输出 System.in(对应于键盘输入或用户指定输入源) System.out(对应于显示屏或用户指定的输出源) System.err(对应于显示屏或用户指定的输出源) 方法 获取系统信息、完成系统操作的方法 public static long currentTimeMillis(); /获取自1970年

6、1月1日零时至当前系统时刻的微秒数 public static void exit(int status); /强制Java虚拟机退出运行状态,System.exit(n); n非0描述非正常中断. public static void gc(); /强制调用Java虚拟机的垃圾回收功能。14示例: System类vSystem.in输入char c=System.in.read();System.out.println(c);Scanner in=new Scanner(System.in);15JAVA中的字符串v Java把字符串(常量或变量) 可以使用String类和StringBuf

7、fer类的对象来处理。v 由于使用频繁,有时也被视为基本类型 遇到双引号自动创建String类的对象 提供字符串运算符,字符串的连接:+v 定长字符串:String类(效率较高) 不能更改,可用于比较、搜索之类的操作v 可变字符串:StringBuffer类(使用灵活) 可追加、插入、修改,但内存管理复杂String类 在Java中,字符串被当作对象来处理。分为两大类:vString 字符串中每个字符是16位,2字节的unicode码 创建之后不会再做修改和变动 String类是final的,不可被继承 String类对象有个特殊的创建的方式,就是直接指定 ,比如String x = abc

8、String对象可以通过“+”串联。 vStringBuffer 对字符串做大量修改时使用 创建之后允许再做更改和变化17字符串类-Stringv String Java语言将字符串作为对象来处理,每一个字符串常量是字符串类的一个实例。v 构造方法 String()、String(String)、 String(char chars)v 创建字符串 ,三种方式使用new关键字创建字符串 比如String s1 = new String(abc); char a=X, M, J; String s=new String(a); char a=S, C, E, M, I, X, M, J; Str

9、ing s=new String(a,5,3); 直接指定。由于字符串经常使用,可以直接使用字符串常量生成一个String类的对象 比如String s2 = abc; 使用串联生成新的字符串 比如String s3 = ab + c;v Object 的方法 toString() 实现其他对象向字符串的转换18字符串类-Stringv 方法方法 int length() / 返回字符串长度 例:“Java与面向对象程序设计”.length() 的值为13 char charAt(int index) /返回指定位置的字符 例: Java与面向对象程序设计.charAt(2) int comp

10、areTo(String s2) /按字母序进行字符串比较 boolean equals(Object obj)/判断字符串相等(区分大小写) boolean equalsIgnoreCase(String s2) /(不区分大小写) String toLowerCase()/将字符串所有大写字母转换为小写 String toUpperCase()/将字符串所有小写字母转换为大写 valueOf(Object obj) /将某个对象的实例转换成字符串19字符串类-String String substring(int beginIndex) /取子串 String substring(int

11、beginIndex, int endIndex) int indexOf(String str) /返回str在当前串中开始位置 int indexOf(String str,int fromIndex) int lastIndexOf(String str,int fromIndex) /. boolean startsWith(String prefix) /判断该字符串是 否以prefix为前缀。 boolean endsWith(String suffix) /判断该字符串是 否以suffix为后缀。 char toCharArray() /将字符串转为字符数组 String con

12、cat(String str); /连接字符串 replace(char oldChar,char newChar) /字符替换 20字符串类StringBufferv String类 是不可变的字符串,如果需要修改String对象所表示的内容,必须重新创建一个对象: String str=Peter; str=str+&Bob+&Tom;v 当修改操作频繁,或字符串的值很大时,会额外分配大量内存v 可变字符串 -StringBuffer类 用来表示内容可以扩充和修改字符串对象StringBuffer类v StringBuffer类 可变的字符串,有改变字符串内容和长度的若干方法, Strin

13、gBuffer在多线程中使用是安全的v StringBuffer对象的构造StringBuffer sb1=new StringBuffer();构造一个空的对象StringBuffer sb2=new StringBuffer(10);构造一个没有字符,容量为length的对象StringBuffer sb3=new StringBuffer(“string”);构造一个内容与参数相同的对象v 注意,下面语句不能创建StringBuffer对象: StringBuffer ms=my Stringbuffer;22字符串类StringBuffer方法 String toString() 将可

14、变串变为不可变字符串 int length() 得到当前StringBuffer的长度(字符数) int capacity() 得到当前StringBuffer的容量 int indexOf(String str) 获取str在字串中的位置 StringBuffer append(String str) 将str添加到StringBuffer中 StringBuffer delete(int start,int end) 删除start和end间的字符 StringBuffer insert(String str,int index) 向StringBuffer插入字串 StringBuffe

15、r replace(int start,int end,String str) 用str代替start和end之间的字符 void setCharAt(int index,char ch) 设置位置index的字符为ch /这些方法一般都有重载,参数可以是单个字符(char)23字符串的赋值和加法v Java的字符串连接运算符 +,例如: String str=Hello,; str=str+Tom!; 编译器自动将该语句解释为: String str=new StringBuffer().append(Hello,).toString(); str= str=new StringBuffer

16、().append(Tom!).toString();24语言基础类库-Class类v Class类封装了对一个对象的描述。Class类的实例代表一个正在运行的Java应用程序的类或接口Class类没有公共的构造器,用户无法自己生成Class类的对象,由JVM自动构造Object是“万类之源”,Class是类的运行时表示,可以把每个Class类的对象当做众多类的代理 25语言基础类库-Class类v Java运行时系统会对所有的对象进行类型识别v public final Class extends Objectv 一般方法: String getName() 返回类名。 Field getF

17、ields() 返回类的域名。 Method getMethods() 返回类的public方法对象。 Package getPackage() 返回该类的包。26语言基础类库:Math类vMath类用来完成常用的数学运算 数学常量:E,PI 数学运算:(一般运算都以double进行) 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);27数学运算的Math

18、类v 属性属性public final static double E; / 数学常量epublic final static double PI; / 圆周率常量v 方法(均为静态方法方法(均为静态方法 public static )abs(x)x的绝对值sin(a)a的正弦cos(a)a的余弦tan(a)a的正切asin(v)v的反正弦,v的范围-1.0,1.0acos(v)v的反余弦,v的范围-1.0,1.0atan(v)v的反正切,返回的范围-/2, /2atan2(x,y)x/y的反正切,返回的范围-, 28数学运算的Math类exp(x)expow(y,x)yxlog(x)x的自然

19、对数sqrt(x)x的平方根ceil(x)大于或等于x的最小整数floor(x)小于或等于x的最小整数rint(x)x取整,不舍入round(x)对x四舍五入,即(int)floor(x+0.5)max(x,y)返回x,y的大者min(x,y)返回x,y的小者IEEEERemander(x,y)案IEEE-754标准计算余数(取模)random()返回范围在0.0r0 true nextToken() 逐个获取单词43练习v使用String类的方法 将两个字符串连接为一个新串,并得到新串的第一个和最后一个字符。v定义Person类,包括姓名、身高、体重属性,重写其equals()方法,用来判断

20、两个人是否为同一个人,重写toString()方法,输出每个人的相关信息Company Logo任务学习v 总结总结v 数据包装器类了解xxxValue(),parseXxx(),valueOf()和toString()的方法要注意哪些是静态方法,哪些会跑出数据格式异常v Mah类,要了解方法名v 字符串中长度和数组长度区别v String和StringBuffer区别v 字符串比较v对象和内容v 字符串”+”运算符v 字符串和基本数据类型转换Company Logo任务学习v任务描述任务描述 任务二:会使用java.util中常用的类Company Logo任务学习v 支撑知识介绍支撑知识介

21、绍 Java.util包 (Date)类、日历(Calendar)类 (Random)类 数组辅助类Arrays Java中的数据结构 (以后学) 线性表、堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)47实用工具类库java.utilvjava.util 包提供了一些实用的方法和数据结构包提供了一些实用的方法和数据结构 提供日期(Date)类、日历(Calendar)类来产生和获取日期及时间 提供随机数(Random)类产生各种类型的随机数 提供了数组辅助类Arrays 提供了处理数据结构的类和接口 堆栈(Stack)、向量(Vector)、

22、位集合(Bitset)以及哈希表(Hashtable)等类48java.util包Random类v Random类 能产生int、long、float或double类型的随机数v 构造方法Random() 和Random(seed)v 常用方法: nextInt() 返回一个int类型的随机数 nextInt(int limit) 返回一个大于等于0小于limit的int型的伪随机数 nextFloat() 返回一个float类型伪随机数 nextBytes(byte bytes) 使用伪随机值填充数组bytes setSeed(long seed) 重置随机数发生器49java.util包D

23、ate类v 日期类Date 封装了有关日期和时间的信息,用户还可以通过调用相应的方法来获取系统时间或设置日期和时间 Date类定义一个精确到毫秒的瞬间时刻,是从1970年1月1日的00:00:00GMT开始计时的时刻值v 构造方法 public Date() public Date(long date) /date以毫秒为单位,从1970.1.1 0:0开始v 参数说明 year值:需设定的年份-1900 month(0-11) date(1-31) hrs(0-23) min,sec(0-59)50java.util包-Date类vDate类的常用方法 boolean after(Date

24、when) 测试此日期是否在指定日期之前 boolean before(Date when) 测试此日期是否在指定日期之后 boolean equals(Object obj) 比较两个日期是否是同一个日期 int compareTo(Date another) 比较两个日期的大小,当前对象大于、等于或小于实参返回正整数、零或负整数 public long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:0

25、0:00 GMT 以后 time 毫秒的时间点。 string toString() 将日期值转换为String: dow mon dd hh:mm:ss zzz yyyy 形式vSimpleDateFormat类,指定日期的格式 SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 北京时间”);51示例: Date类import java.util.Date;public class DateTestpublic static void main(String args)Date curDate=new Date();System.o

26、ut.println(Current Date=+curDate);Date newDate=new Date(10000);System.out.println(New date=+newDate);System.out.println(curDate.after(newDate);System.out.println(curDate.before(newDate);System.out.println(MS since 1970-1-1:+curDate.getTime();52java.util包Calendar类v Calendar描述一个特定日期内的某一特定的时刻,Calendar是

27、抽象类,不能创建对象v Calendar的常用方法 getInstance( )得到表示当前时间的实例 Calendar cal=Calendar.getInstance(); get(int)获取相应信息,如get(Calendar.YEAR) set(int,int)如 set(Calendar.YEAR,1999) set(year,month,date)set用来设置信息 Calendar.getTime()得到当前时间的Date对象53java.util包-GregorianCalendarv GregorianCalendar是Calendar的子类它实现了世界上普遍使用的公历系统

28、(阳历),它就像是一本台历,只显示一个日期,可以翻过几天、几个月或几年显示另一个日期v GregorianCalendar对象封装了时区信息及日期和时间数据v 构造方法(共七个) GregorianCalendar() GregorianCalendar(int year,int month,int date) GregorianCalendar(int year,int month,int date,int hour,int minute) GregorianCalendar(int year,int month,int date,int hour,int minute,int second

29、)用给定的日期和时间创建一个GregorianCalendar对象v 常用方法,见API文档 public boolean isLeapYear(int year) 确定给定的年份是否为闰年。 54java.util包-GregorianCalendarv 设置日期和时间可以用Date对象设置 GregorianCalendar calendar=new GregorianCalendar(); calendar.setTime(Date);用显式的值为设置日期或时间Calendar.set(2008,9,30);Calendar.set(int field,int value); /对字段进

30、行设置v 获取日期和时间信息使用get()方法并指定所需信息为实参,可获取日、月和年的信息,返回值是整数。int day=calendar.get(calendar.DAY_OF_WEEK);v 修改日期和时间使用add()方法可以修改日历中的当前实例calendar.add(calendar.YEAR,14); /在当前的年份上加14使用roll()方法可以对一个日历的某个字段增一或减一Calendar.roll(calendar.MONTH,false); /月份减1 55示例: Calendar, GregorianCalendarimport java.util.*;public cl

31、ass CalendarTestpublic static void main(String args)String arrW=日,一,二,三,四,五,六;System.out.println(当前时间:+Calendar.getInstance().getTime();Date d1=new GregorianCalendar(2005,8,1,1,1,00).getTime();Date d2=new Date();long diff=d2.getTime()-d1.getTime();System.out.println(d1+与+d2+差距天数=+diff/(1000L*60*60*2

32、4);Calendar c=Calendar.getInstance();System.out.println(-当前时间- );System.out.println(年:月:日+c.get(Calendar.YEAR)+:+(c.get(Calendar.MONTH)+1)+:+c.get(Calendar.DATE);System.out.println(时:分:秒+c.get(Calendar.HOUR)+:+c.get(Calendar.MINUTE)+:+c.get(Calendar.SECOND)+ +(c.get(Calendar.AM_PM)=1?PM:AM);System.o

33、ut.println(星期 +arrWc.get(Calendar.DAY_OF_WEEK)-1);DateFormat类类 v提供了将日期/时间信息进行格式化处理的功能 主要方法: public static final DateFormat getDateInstance() 获得日期 formatter,该 formatter 具有默认语言环境的默认格式化风格。 public static final DateFormat getDateTimeInstance() 获得日期/时间 formatter,该 formatter 具有默认语言环境的默认格式化风格。 public final

34、String format(Date date) 将一个 Date 格式化为日期/时间字符串。SimpleDateFormat类类 vvoid applyPattern(String pattern) 将给定模式字符串应用于此日期格式。 v指定日期的格式 SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 北京时间”);58练习v以下图格式输出2008年10月的日历页数组实用类:Arraysv 操纵数组的实用类Arrays。它提供一系列静态方法 equals():比较两个数组是否相同。只有当两个数组元素数目相同,并且对应位置的元素也都相

35、同时,才表明数组相同。 fill():向数组填充数据。 sort():把数组的元素按升序排列。 binarySearch():按照二叉查找算法,查找数组中值与给定数据相同的元素。 toString():返回包含数组中所有元素信息的字符串。Company Logo集合容器v后面学后面学Company Logo任务学习v 总结总结v日期n Date类 大多数方法都不赞成使用 存储为long,从1970年1月1日起的毫秒数 Date对象是Calendar类和Locale类之间的媒介n Calendar类 提供一组用于操作日期的强大方法,可以执行获取如星期几或者添加月数或者年数等到日期之类的任务。 使

36、用静态方法getInstance()方法创建Calendar实例 理解Calendar方法:add,添加或减去多个日期成分 使用DateFormat的静态方法getInstance()和geiDateInstance()方法创建对象 DateFormat.format(日期对象)创建指定格式的日期字符串n 随机数Random类 区分Math.random()方法区别n 数组辅助类Arrays 提供很多静态方法,操作数组Company Logo任务学习v 支撑知识介绍支撑知识介绍v APICompany LogoAPIv查看查看v包包 类 接口 异常v具体内容具体内容 概述 继承关系 修饰符 构造方法 属性 方法Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 一是如何通过类定义描述一个具体的点 一个类Point表示抽象的点,定义两个成员变量x, y表示点对应的具体位置 二是如何计算点到原点的距离 Math中已经实现了求平方根的方法sqrt() 三是如何计算点与点之间的距离 同上 编写主类,测试调用Company Logo课堂实训v课堂实践课堂实践4-4 -见文档见文档 常用类 解决简单问题要求v类和对象类和对象 多练习 作业4-3-见文档68 结束语结束语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁