《孙卫琴《Java面向对象编程》配套PPT--java_base6_api.ppt》由会员分享,可在线阅读,更多相关《孙卫琴《Java面向对象编程》配套PPT--java_base6_api.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8课 java.lang 包包 njava.lang包包含了主要的Java语言支持类,它是Java语言编程设计的基础。n作为Java语言中所有类的祖先Object类,就定义在Java.lang包中.n另外还包含了包装类、String类、多线程支持类、Math类、System类等。参考Java面向对象编程的第19章Object 类nObject 类是所有Java类的最终祖先,如果一个类在声明时没有包含extends关键词,那么这个类直接继承Object类。n(1)equals(Object obj)n(2)notify()n(3)nofityAll()n(4)wait()n(5)toStrin
2、g():返回当前对象的字符串表示,格式为“类名对象的16进制哈希码”。许多类,如String、StringBuffer和包装类都覆盖了toString()方法,返回具有实际意义的内容。Object 类的toString()方法n当System.out.println()方法的参数为Object类型,println()方法会自动先调用Object对象的toString()方法,然后打印toString()方法返回的字符串。System.out.println(new Object().toString();/打印java.lang.Object273d3cSystem.out.println(n
3、ew Integer(100).toString();/打印100System.out.println(new String(123).toString();/打印123System.out.println(new StringBuffer(123456).toString();/打印123456以上代码等价于:System.out.println(new Object();System.out.println(new Integer(100);System.out.println(new String(123);System.out.println(new StringBuffer(1234
4、56);String类nindexOf()和lastIndexOf():在字符串中检索特定字符或子字符串,indexOf()方法从字符串的首位开始查找,而lastIndexOf()方法从字符串的末尾开始查找。如果找到,则返回匹配成功的位置,如果没有找到,则返回-1。String str=HelloHelloHello;/查找字符e第一次在str中出现的位置System.out.println(str.indexOf(e);/打印1/查找字符e从位置2开始第一次在str中出现的位置System.out.println(str.indexOf(e,2);/打印6/查找字符e在str中最后一次出现的
5、位置System.out.println(str.lastIndexOf(e);/打印11/查找字符串ello从位置2开始第一次在str中出现的位置System.out.println(str.indexOf(ello,2);/打印6/查找字符串Ello第一次在str中出现的位置System.out.println(str.indexOf(Ello);/打印-1String类nconcat(String str):把字符串str附加在当前字符串的末尾。例如:String str=Hello;String newStr=str.concat(World);System.out.println(s
6、tr);/打印HelloSystem.out.println(newStr);/打印HelloWorld以上concat()方法并不会改变字符串str本身的内容。String类nsubstring():返回字符串的一个子字符串,有以下两种重载形式:public String substring(int beginIndex)public String substring(int beginIndex,int endIndex)n子串在源串中的起始位置为beginIndex,结束位置为endIndex-1。如果没有提供endIndex参数,那么结束位置为:字符串长度-1。例如:String st
7、r=0123456;String sub1=str.substring(2);String sub2=str.substring(2,5);System.out.println(str);/打印0123456System.out.println(sub1);/打印23456 System.out.println(sub2);/打印234StringBuffer类nlength():返回字符串的字符个数,与String类的length()用法相同。nappend():向缓冲区内添加新的字符串,例如:StringBuffer sb=new StringBuffer();sb.append(Hell
8、o);sb.append(World);System.out.println(sb);/打印HelloWorldnsubstring():用法与String类的substring()方法相同。ninsert(int offset,String str):在字符串中的offset位置插入字符串str,例如:StringBuffer sb=new StringBuffer(0456);sb.insert(1,123);System.out.println(sb);/打印0123456比较String类和StringBuffer类nString类不可编辑nStringBuffer类可编辑String
9、 s1=new String(“abc”);s1.concat(“def”);StringBuffer sb1=new StringBuffer(“abc”);sb1.append(“def”);System.out.println(s1);System.out.println(sb1);String对象(abc)String对象(abcdef)s1.concat(“def”)s1引用变量StringBuffer对象(abcdef)sb1.append(“def”)sb1引用变量包装类基本类型的数据分别对应的包装类为:基本类型的数据分别对应的包装类为:boolean Boolean byte
10、Byte char Charactor short Short int Integer long Long float Float double Double包装类的层次结构Number类的主要方法如下:byteValue():返回Number对象所表示的数字的byte类型值。intValue():返回Number对象所表示的数字的int类型值。longValue():返回Number对象所表示的数字的long类型值。shortValue():返回Number对象所表示的数字的short类型值。doubleValue():返回Number对象所表示的数字的double类型值。floatValu
11、e():返回Number对象所表示的数字的float类型值。包装类的构造方法Integer i=new Integer(1);Float f=new Float(1.0f);Double d=new Double(1.0);Integer i=new Integer(123);Double d=new Double(123.45D);Float f=new Float(123.45F);包装类的常用方法n除Character类和Boolean类以外,包装类都有valueOf(String s)静态工厂方法,可以根据String类型的参数来创建包装类对象。参数字符串s不能为null,而且该字符串
12、必须可以解析为相应的基本类型的数据,否则虽然编译会通过,运行时会抛出NumberFormatException。例如:Double dDouble.valueOf(123);/合法Integer i=Integer.valuesOf(12);/合法Integer i=Integer.valuesOf(abc);/运行时抛出NumberFormatException包装类的常用方法n除 Character类 和 Boolean类 以 外,包 装 类 都 有parseXXX(String str)静态方法,把字符串转变为相应的基本类型的数据(XXX表示基本类型的名称)。参数str不能为null,而
13、且该字符串必须可以解析为相应的基本类型的数据,否则虽然编译会通过,运行时会抛出NumberFormatException。例如:int i=Integer.parseInt(123);/合法,i=123double d=Double.parseDouble(abc);/抛 出NumberFormatException包装类的用法举例n将字符串转换为某种基本类型。int a=Integer.parseInt(“123”);int a1=new Integer(“123”).intValue();double d=Double.parseDouble(“234.567”);double d1=ne
14、w Double(“234.567”).doubleValue();Math类 n Math类是final的。nMath的构造方法是private的。nMath提供的方法都是静态的。Math类的主要方法nabs():返回绝对值。nceil():返回大于等于参数的最小整数。nfloor():返回小于等于参数的最大整数。nmax():返回两个参数的较大值。nmin():返回两个参数的较小值。nrandom():返回0.0和1.0 之间的double类型的随机数,包括0.0,但不包括1.0。nround():返回四舍五入的整数值。nsin():正弦函数。ncos():余弦函数。ntan():正切函数
15、。nexp():返回自然对数的幂。nsqrt():平方根函数。npow():幂运算。Math类的常用方法的参数类型和返回类型Math类的常用方法System.out.println(Math.round(3.3);/打印3System.out.println(Math.round(-3.3);/打印-3 System.out.println(Math.ceil(3.3);/打印4.0System.out.println(Math.ceil(-3.3);/打印-3.0System.out.println(Math.floor(3.3);/打印3.0System.out.println(Math.
16、floor(-3.3);/打印-4.0 int a=Math.floor(3.3);/编译出错第9课 Java集合(位于java.util包中)nJava集合主要分为三种类型:nSet(集):集合中的对象不按特定方式排序,并且没有重复对象。它的有些实现类能对集合中对象按特定方式排序。nList(列表):集合中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象。List与数组有些相似。nMap(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序。参考Java面向对象编程的第15章Java集
17、合与数组的区别n在创建Java数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能被改变。为了使程序能方便的存储和操纵数目不固定的一组数据,JDK类库提供了Java集合,所有Java集合类都位于java.util包中。n与Java数组不同,Java集合中不能存放基本类型数据,而只能存放对象的引用。主要集合类的类框图 Set(集集)nSet是最简单的一种集合,集合中的对象不按特定方式排序,并且没有重复对象。nSet接口主要有两个实现类HashSet和TreeSet。nHashSet类按照哈希算法来存取集合中的对象,存取速度比较快。HashSet类还有一个子类LinkedHashSet类,它
18、不仅实现了哈希算法,而且实现了链表数据结构,链表数据结构能提高插入和删除元素的性能。nTreeSet类实现了SortedSet接口,具有排序功能。Set的一般用法的一般用法Set set=new HashSet();String s1=new String(hello);String s2=s1;String s3=new String(world);set.add(s1);set.add(s2);set.add(s3);System.out.println(set.size();/打印集合中对象的数目2 List(列表列表)nList的主要特征是其元素以线性方式存储,集合中允许存放重复对象。
19、List接口主要的实现类包括:nArrayList:ArrayList代表长度可变的数组。允许对元素进行快速的随机访问,但是向ArrayList中插入与删除元素的速度较慢。nLinkedList:在实现中采用链表数据结构。对顺序访问进行了优化,向List中插入和删除元素的速度较快,随机访问则相对较慢。随机访问是指检索位于特定索引位置的元素。LinkedList单独具有addFirst()、addLast()、getFirst()、getLast()、removeFirst()和removeLast()方法,这些方法使得LinkedList可以作为堆栈、队列和双向队列使用。List的用法n向列表
20、中加入元素List list=new ArrayList();list.add(new Integer(3);list.add(new Integer(4);list.add(new Integer(3);list.add(new Integer(2);nList的get(int index)方法返回集合中由参数index指定的索引位置的对象,第一个加入到集合中的对象的索引位置为0。以下程序依次检索出集合中的所有对象:for(int i=0;ilist.size();i+)System.out.print(list.get(i)+);对List中的元素进行自然排序 List list=new
21、ArrayList();list.add(new Integer(3);list.add(new Integer(4);list.add(new Integer(3);list.add(new Integer(2);Collections.sort(list);Collections.sort(list);for(int i=0;ilist.size();i+)System.out.print(list.get(i)+);Map(映射映射)nMap(映射)是一种把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象。n向Map集合中加入元素时,必须提供一对键对象和值对象,从Ma
22、p集合中检索元素时,只要给出键对象,就会返回对应的值对象。n接口Map提供了根据关键字找对应的值的方法get(),定义如下:Object get(Object key)n接口Map还提供了设置关键字和对应值的方法put(),定义如下:Object put(Object key,Object value)Map的用法n以下程序通过Map的put(Object key,Object value)方法向集合中加入元素,通过Map的get(Object key)方法来检索与键对象对应的值对象:Map map=new HashMap();map.put(1,Monday);map.put(2,Tuesday);map.put(3,Wendsday);map.put(4,Thursday);String day=map.get(2);/day的值为“Tuesday”