《第12讲包和接口二课件培训课件》由会员分享,可在线阅读,更多相关《第12讲包和接口二课件培训课件(10页珍藏版)》请在金锄头文库上搜索。
1、第12讲包和接口二课件培训课件 /第12讲包和接口(二)?抽象类?File类?String类?StringBuffer类?System类?Math类?Random类教学目标?理解抽象类的概念;?了解File类、String类、StringBuffer类的用途?掌握File类、String类、StringBuffer类的常用方法?掌握System类的常用方法?会使用Math类的常用方法?会使用Random类的常用方法抽象类?抽象类的定义与一般类一样都有数据和方法,定义格式与一般类也非常类似只是在定义类的class前增加一个关键字abstract就表示定义一个抽象类,也就说用abstract说明的
2、类称为抽象类。 ?抽象类不能用来实例化一个对象,它只能被继承。 抽象类示例public abstractclass Person/定义一个抽象类PersonString name;int age;public voidbirth()public abstractvoid go();注意()Person类是抽象类不能用new创建它的实例,可以被继承,抽象方法go()只有方法头标志而没有实现,它的实现由子类操作。 ()注意抽象类与接口的关系?public booleanrenameTo(File dest)/文件重命名?public booleandelete()/删除空目录?public boo
3、leancanRead()/判断文件是否可读的?public booleancanWrite()/判断文件是否可被写入 (2)目录操作?public booleanmkdir()/创建指定目录,正常true?public Stringlist()/返回目录中的所有文件名?public FilelistFiles()/返回目录中的所有文件对象File类提供的方法(续)import java.io.*;public classEx7_6public staticvoid main(String args)throws IOExceptionString filePath;InputStreamRe
4、ader is=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(is);System.out.print(请输入信息:);filePath=br.readLine();File fileName=new File(filePath);?判断所输入的信息是代表一个目录,还是一个文件。 如果是目录,则输出该目录下的所有文件;如果是一个文件的话,则输出此文件的绝对路径。 File类示例if(fileName.isDirectory()System.out.println(fileName.getName()+
5、是一个目录);System.out.println(*);File list=fileName.listFiles();for(int i=0;i (1) (1)public int length()求出一个字符串的长度,即求出字符串对象中字符的个数如str.length();/值为? (2)public booleanequals(String s)字符串对象调用String类中的equals方法,比较当前字符串对象的内容是否与参数指定的字符串s的内容相同。 如str.equals(“yangzi river”);/值为? (3)public booleanstartsWith(String
6、 s)和public booleanendsWith(String s)startsWith方法判断当前字符串常量是不是以字符串常量s开头结尾的,若是,则返回true,否则返回false。 如str.startsWith(“Yan”);/值为? (4)public intpareTo(String s)该方法按字典序比较字符串常量的大小,参数s为第二个字符串常量。 若两个字符串常量相同,则返回0。 若当前字符串常量大,则返回值大于0。 若另一个字符串常量大,则返回值小于0。 (5)public int indexOf(String s)和public intlastIndexOf(String
7、 s)方法返回s在当前字符串常量中从左到右第一次出现的位置,若当前字符串常量中不包含字符串常量s,则返回-1。 (6)public char charAt(int index)该方法用来获取字符串常量中的一个字符。 参数index指定从字符串中返回第几个字符,这个方法返回一个字符型变量。 String类的常用方法 (2)String类的常用方法 (3) (7)public Stringconcat(String str)该方法将把字符串常量str连接在当前字符串常量的后面,生成一个新的字符串常量,并返回生成的字符串。 (8)public chartoCharArray()该方法将当前字符串常量
8、转换为字符数组,并返回该字符数组。 (9)public StringtoString()该方法重载了超类Object中的方法toString(),一个对象调用该方法可以获得该对象的字符串表示。 (10)toUpperCase()和toLowerCase()方法可以把一个字符串所有字符分别转换为大写和小写字符 (11)字符串与基本数据的相互转换?public staticString valueOf(boolean b)?public staticString valueOf(数据类型变量名)?valueOf方法可将boolean、char、int、long、float和double6种类型的变
9、量转换为String类的对象。 ?public staticint parseInt(String s);?public staticbyte parseByte(String s);?public staticshort parseShort(String s);?public staticlong parseLong(String s);?public staticfloat parseFloat(String s);?public staticdouble parseDouble(String s);?以上6个方法可将数字型的字符串s转换为相应的数据类型。 String类的常用方法 (4
10、)?下面的例子说明了String类中常用方法的使用。 public classEx7_7public staticvoid main(String args)String s1,s2;s1=new String(Java Program);s2=new String(Java Program);System.out.println(s1=s2);System.out.println(s1.equals(s2);System.out.println(s1.length();String类的常用方法示例判断两个引用是否是同一个对象判断两个引用的内容是否相同运行结果falsetrue12与与Obje
11、ct类中的equals()是否相同?“=”呢?StringBuffer类?StringBuffer的构造方法public StringBuffer()public StringBuffer(intlength)public StringBuffer(String str)?说明使用第一个构造方法创建一个空的StringBuffer类的对象,该对象的初始容量为16个字节。 使用第二个构造方法创建一个长度为参数length的StringBuffer类的对象。 注意如果参数length小于0,将产生NegativeArraySizeException异常。 第三个构造方法用一个已存在的字符串常量来创
12、建StringBuffer类的对象,其初始容量为参数字符串str的长度再加上16个字节。 StringBuffer strb=newStringBuffer(“hello!”); (1)append(int n)方法将其他Java类型的数据转化为字符串后,在追加到StringBuffer对象中。 (2)public charcharAt(int n)返回参数n指定位置上的字符。 注意,字符串中的第一个字符的位置为0,第二个字符的位置为1,以此类推,且n是一个小于字符串长度的非负数。 (3)public voidsetCharAt(int n,charch)将StringBuffer对象的第n个
13、位置上的字符替换为字符ch。 StringBuffer类的常用方法strb.append(“world!”);strb.append(5.4);StringBuffer类示例?下面的例子说明了StringBuffer类中常用方法的使用。 public classEx7_8public staticvoid main(String args)StringBuffer s=new StringBuffer(Java are);s.setCharAt(5,i);s.setCharAt(6,s);s.delete(7,8);s.append(programming);System.out.printl
14、n(s);System类?System是一个功能强大的特殊的系统类,它提供了标准的输入与输出,以及运行时的系统信息。 ?System类的构造方法的访问权限为private,所以这个类不能被实例化,即不存在System类的对象。 ?System类中的所有方法和属性都是static的,即所有方法和属性都可以以System为前缀直接调用。 同时System类是final类,所以不能被继承。 系统属性系统属性名含义os.name操作系统名称java.classpath Java类库的路径java.home Java的安装目录user.dir用户当前的工作目录user.name用户名file.separ
15、ator文件分隔符line.separator行结束符path.separator路径分隔符user.home用户的根目录使用System类中的方法获取当前的系统属性类表列表。 public classEx7_9public staticvoid main(String args)String p=System.getProperty(os.name,windows xp);System.out.println(Operating System:+p);System类举例?其中方法getProperty()是一个类方法,获取当前操作系统的名称,有两种格式,分别为public staticString getProperty(String key);public staticString getProperty(String key,String default);Math类?java.lang包中的Math类提供了许多用来进行科学计算的方法,这些方法都是(static)类的方法,所以在使用时不需