2012-2013Java面向对象程序设计小题复习指导(整理版).doc_第1页
2012-2013Java面向对象程序设计小题复习指导(整理版).doc_第2页
2012-2013Java面向对象程序设计小题复习指导(整理版).doc_第3页
2012-2013Java面向对象程序设计小题复习指导(整理版).doc_第4页
2012-2013Java面向对象程序设计小题复习指导(整理版).doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象程序设计复习指导第一章1、相关文件的扩展名:XXX.java java源文件;XXX.class 字节码文件;2、编译方法:javac 文件名.java3、运行方法:java 主类类名4、联合编译:一个源文件可以只有一个类或几个类,编译这个源文件将得到这些类的字节码文件,因此,一个java源文件不必是一个java源程序,即不必含有主类。当使用解释器运行一个java应用程序时,java虚拟机将java应用程序需要的字节码文件动态地加载到内存,然后再由java的虚拟机解释执行,因此,可以事先单独编译一个java应用程序所需要的其他源文件,并将得到的字节码文件和应用程序存放在同一目录中。如果应用程序的源文件和其他的源文件在同一目录中,也可以只编译应用程序源文件,java系统对自动地先编译应用程序需要的其他源文件。第二章1、合法的标识符:1) 由字母、下划线、美元符号($)和数字组成,长度不受控制;2) 第一个字符不能是数字字符;3) 不能使关键字;4) 不能是true、false、null。附:java的50个关键字:abstract、assert(声明)、boolean、break、byte、case、catch、char、class、cons(常量)、continue、default、do、double、else、enum、extends(继承)、final、finally、float、for、goto、if、implements(实现接口)、import、instanceof(一种二位运算符)、int、interface、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized(同步的)、this、throw、throws、transient、try、void、volatile(不定的)、while。2、基本数据类型占用的内存空间:int4个字节;byte1个字节;short2个字节;long8个字节;char2个字节;float4个字节;double8个字节3、基本数据类型的精度:float保留8位有效数字;double保留16位有效数字4、基本数据类型间的转换:1)Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:byte、short、char、int、long、float、double 2) 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。 例如:float x=100; (100.0)3)当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值; 例如 int x=(int)34.89; long y = (long)56.98F; int z = (int)1999L;5、数组的创建和使用:1)为数组分配内存空间的格式如下: 数组名字 = new 数组元素的类型数组元素的个数; 例如: boy= new float4;2) 数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元 。3) 声明数组和创建数组可以一起完成,例如:float boy=new float4;4) 二维数组和一维数组一样,在声明之后必须用new运算符分配内存空间,例如:int mytwo; mytwo=new int 34; 或 int mytwo=new int34; 5)一维数组通过索引符访问自己的元素,如 : boy0,boy1等。注意:索引从0开始,数组若有7个元素,那么索引到6为止,如果程序使用了如下语句:boy7=384.98f;程序运行时将生.ArrayIndexOutOfBoundsException异常,因此在使用数组时必须谨慎,防止索引越界。6) 二维数组也通过索引符访问自己的元素,如a01,a12等;需要注意的是索引从0开始。 6、枚举类型的使用:Java使用关键字enum声明枚举类型,语法格式如下: enum 枚举名 常量列表 其中的常量列表是用逗号分割的字符序列,称为枚举类型的常量(枚举类型的常量要符合标识符之规定,即由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符)。enum Season spring, summer, autumn, winter可以以枚举类型声明枚举变量,如 : Season x;枚举变量的取值只能是枚举类型声明中定义的枚举类常量对象,如: x = Season.spring;被打印时返回包含在声明中的枚举类常量的名称。第三章1、各种运算符的使用:1)加减运算符: +,-2)乘、除和求余运算符: *,/,% 注:以上运算符是二目运算符,结合方向是从左到右。3)算术表达式4)自增、自减运算符:+,-(单目运算符)y=+x(-x)表示在使用x之前,先使x的值增(减)1。y=x+(x-)表示在使用x之后,使x的值增(减)1。5)关系运算符: 关系运算符是二目运算符,用来比较两个值的关系。关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。 6)逻辑运算符:&,|,! 其中&、|为二目运算符,实现逻辑与、逻辑或;!为单目运算符,实现逻辑非。逻辑运算符的操作元必须是boolean型数据。7)赋值运算符(=): 赋值运算符是二目运算符,左面的操作元必须是变量,不能是常量或表达式。结合方向右到左。8)位运算符: 对两个整型数据实施位运算,即对两个整型数据对应的位进行运算得到一个新的整型数据。1“按位与”运算符“&”是双目运算符。2“按位或”运算符“|”是二目运算符。3“按位非”运算符“”是单目运算符。4“按位异或”运算符“”是二目运算符:(a&b)|(a&b) (即判断两个数是否相异,相同为0,不同为1)9)instanceof 运算符 instanceof 运算符是二目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true ,否则是false。10)位移运算符: 带符号右移(高位正数补0,负数补1) 不带符号右移(高位正负数补0)2、 表达式的求值:通过分析各种运算符的优先级及使用规则来正确求解表达式3、数组类型与for语句: for语句可以更好地遍历数组。语法格式如下: for(声明循环变量:数组的名字) 其中,声明的循环变量的类型必须和数组的类型相同。声明循环变量必须是变量声明,不可以使用已经声明过的变量。4、枚举类型与for、switch语句 :如果有:enum WeekDay sun,mon,tue,wed,thu,fri,sat就可以用该枚举类型声明一个枚举变量,该枚举变量只能取值枚举类型中的常量。通过使用枚举名和“.”运算符获得枚举类型中的常量。枚举类型可以用如下形式返回一个数组:枚举类型的名字.values();如: WeekDay a = WeekDay.values();第四章1、 成员变量与局部变量: 类体中变量声明部分所声明的变量被称作类的成员变量。在方法体中声明的变量和方法的参数被称作局部变量。 1)变量的类型:成员变量和局部变量的类型可以是Java中的任何一种数据类型,包括基本类型:整型、浮点型、字符型;引用类型:数组、对象和接口(对象和接口见后续内容)。2)变量的有效范围:成员变量在整个类内都有效,局部变量只在声明它的方法内有效。方法参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效。3)实例变量与类变量:在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。4)成员变量的隐藏:如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。使用被隐藏的成员变量使用关键字this。2、方法重载:方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。方法的返回类型和参数的名字不参与比较。3、 类方法与实例方法: 方法声明时,方法类型前面不加关键字static修饰的是实例方法(非静态方法) 、加static修饰的是类方法(静态方法)。 4、 创建对象:1对象的声明People zhangPing;对象声明后,必须经过初始化(即赋予初值),使其代表(存放)某“引用”(内存地址),通过引用操作某块内存空间,该块空间称作对象的实体。2. 为对象分配实体A)初始化但不指向任何实体zhangPing = null;B)通过new 构造方法(参数)方式为对象分配内存zhangPing=new People();3.分配实体时的初始化new 方法为对象分配实体时,对象内的成员变量(基本数据类型或对象)都被分配内存空间并且赋予初值,对象的初值为null。基本数据类型和对象作为局部变量时,如果不经过初始化操作,无法进行使用。可以在声明时,同时初始化该对象(即分配内存空间) XiyoujiRenwu zhubajie = new XiyoujiRenwu(); 4.创建多个不同的对象 通过new 创建多个不同的对象,这些对象分配不同的内存空间。 XiyoujiRenwu zhubajie = new XiyoujiRenwu();XiyoujiRenwu sunwukong = new XiyoujiRenwu();5、构造方法: 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有返回类型。构造方法也可以重载。 构造方法的作用是使用new关键字创建对象实体时,为对象分配内存空间和初始化成员变量的值。 如果程序中不明确的给出构造方法,Java会自动为类赋予一个无参数无语句内容的构造方法。如果明确给出了构造方法(无论何种),则Java不自动赋予构造函数。6、调用new方法时发生的事情:当我们使用new时(也就是通过new动态生成一个对象),有两件事发生:1) 内存被分配;2) 针对此内存会有一个(声明单一对象)或更多(声明对象数组)构造函数被调用。7、对象的引用与实体: 1)一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。 2)引用值为null的对象无法调用其方法或成员变量,否则会抛出NullPointerException异常,编程时应尽量避免使用空对象,如 if(对象!= null) 对象.方法(); 3)Java的“垃圾回收”机制:java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收任何引用的对象占据的内存空间(不是对象本身)。8、参数传参:1)Java中调用方法时,方法的参数都是“传值”的,参数变量的值是调用者制定值的一个拷贝。2)基本数据类型参数的传值: 对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。3)引用类型参数的传值:当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。9、 static方法与类: 用static修饰的变量类变量; 没有用static修饰的变量实例变量 方法声明中用static修饰的方法类方法; 方法声明中不用static修饰的方法实例方法1)实例变量和类变量的区别: Java程序执行时,类的字节码文件被加载到内存,此时类变量被分配相应的内存空间;如果该类没有创建对象,类中的实例变量不会被分配内存。 如果类中有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。2)实例方法和类方法的区别: 当用类创建对象后(确切指分配内存空间),类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。当所有对象不存在时,实例方法的入口地址被取消。 对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。类方法不仅可以在任何对象上调用,也可以直接通过类名直接调用。直到程序退出时类方法的入口地址才能被取消。 如果一个方法不需要操作实例成员变量就可以实现某种功能,就可以考虑将这样的方法声明为静态方法。3)方法允许调用方法的时间类方法可以在对象未调用实体前调用,也可以在创建实体后调用构造方法创建对象实体时调用实例方法创建对象实体后调用 10、 this关键字:1) this是Java的一个关键字,表示使用构造方法所创建的当前对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。 2) 在构造方法中使用this:this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。 3) 在实例方法中使用this: 当this关键字出现实例方法中时,代表正在调用该方法的当前对象。 当实例成员变量在实例方法中出现时,默认的格式是:this.成员变量。 当static成员变量在实例方法中出现时,默认的格式是:类名.成员变量。 当调用实例方法时,默认的格式是:this.方法 (); 当调用类方法时,默认的格式是:类名.方法 (); 当非常明确所指的是实例变量/类变量,实例方法/类方法时,this和类名可以省略。11、 final关键字(见第五章)12、 package和import语句:1)通过关键字package声明包语句。 package语句作为Java源文件的第一条语句,为该源文件中声明的类指定包名。package语句的一般格式为:package 包名; 2) 一个类可能需要另一个类声明的对象作为自己的成员或方法中的局部变量,如果这两个类在同一个包中,可以直接使用。 如果一个类想要使用的那个类和它不在一个包中,要使用import语句完成使命。 如果用户需要类库中的类就必须使用import语句,java类库包括:java.lang 包含所有的基本语言类(第9章)javax.swing 包含抽象窗口工具集中的图形、文本和窗口GUI类(第10章)java.io 包含所有的输入输出类(第12章)java.util 包含数据结构类(第13章)java.sql 包含操作数据库的类(第14章)13、访问权限:1)访问限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。2)private:用关键字private修饰的成员变量和方法称为私有变量和私有方法。 在其他类中创建该类的对象后,不能使用对象名.变量或对象名.方法()进行调用。对于私有成员变量或方法,在本类中创建该类的对象时,允许操作自己的私有成员变量和调用类中的私有方法。3)public:用public修饰的成员变量和方法被称为共有变量和共有方法。我们在任何一个类中用类创建了一个对象后,可以访问该对象的public变量和调用类中的public方法(也可以通过类名来操作成员变量、方法)。4)protected:用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法。任何在同一个包中的类或者其子类,可以操作受保护的成员变量和调用受保护的方法。5)友好变量和友好方法:不用private、public、protected修饰符的成员变量和方法被称作友好变量和友好方法。任何在同一个包中的类,可以操作友好成员变量和调用友好方法。访问权限同类同包不同包Private可以不不友好的可以可以不Protected可以可以不Public可以可以可以 6)14、基本数据类型的类包装: 1)Java的基本数据类型包括:byte、int、short、long、float、double、char。 2)Java提供了基本数据类型相关的类,实现了对基本数据类型的封装。 3)这些类分别是:Byte、Integer、Short、Long、Float、Double和Character类。这些类在java.lang包中。除了Character外,其他均可使用XXXValue()返回该对象所含有的基本型数据。 4)构造方法:类包装名(基本数据类型 变量名);第五章1、 Java继承的概念与特点:1)利用继承,可以先编写一个共有属性的一般类,根据该一般类再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类(超类super)。2)声明一个类的子类的格式如下: class 子类名 extends 父类名 3) Java中子类只能有一个父类(单继承)。4) 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。即子类继承父类public、protected和友好的方法和成员变量。5)继承方式可以让子类继承一些重要的变量或者非abstract方法,以便于代码复制。2、子类对象的构造过程:1)当调用子类构造方法创建子类对象时,子类构造方法会先调用父类的某个构造方法,若不明指,默认调用父类不带参数的构造方法。2)子类创建对象时,不仅子类中声明的成员变量被分配了内存,而且父类的成员变量也都分配了内存空间,但只将其中一部分(子类继承的那部分)作为分配给子类对象的变量。 3、 成员变量的隐藏与方法的重写:1)成员变量的隐藏:对于子类可以从父类继承的成员变量,只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量,使用时指子类重新声明定义的这个成员变量。2)方法重写:子类通过重写可以隐藏已继承的实例方法。 重写的语法规则:如果子类可以继承父类的某个实例方法,那么子类就有权利重写这个方法。方法重写是指:子类中定义一个方法,这个方法的返回类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。 重写的目的:子类通过方法的重写可以隐藏继承的方法,把父类的状态和行为改变为自身的状态和行为。 重写方法时不能降低访问权限。4、 super关键字的使用:1) 子类可以隐藏从父类继承的成员变量和方法,如果在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super;2) 子类不继承父类的构造方法。3) 子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。4) 在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super。比如super.成员变量名、super.方法名()就是访问和调用被子类隐藏的成员变量和方法。5、 final关键字的使用:1) final关键字可以修饰类、成员变量和方法中的局部变量。2) final类不能被继承,即不能有子类。3) 出于安全性的考虑,将一些类声明为final类;出于某种考虑,对该类的设计永不需要做任何变动。4) 如果用final修饰父类中的一个方法,那么这个方法不允许子类重写。5) 如果成员变量或局部变量被修饰为final的,就是常量。final static 修饰的变量大写,且单词间以下划线连接。必须在final常量使用前初始化(声明处和构造函数)。6、 抽象类的概念与使用: 1)abstract类可以有abstract方法(抽象方法)也可以有非abstract方法。 2)对于abstract类,我们不能使用new运算符创建该类的对象。 3)如果一个非抽象类是某个抽象类的子类,那么必须重写父类的所有抽象方法。若子类也是抽象类,则可重写抽象方法,也可继承该方法。 4)抽象类只关心操作,即只关心方法名字、类型以及参数,但不关心这些操作具体实现的细节,即不关心方法体。7、 接口的概念与使用:为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。 接口的声明与使用:1) 接口声明接口通过使用关键字interface来声明,格式: interface 接口的名字 2) 接口体接口体中包含常量定义和方法定义两部分。接口中方法都是public,都是抽象方法,没有普通方法(允许省略public,abstract)。常量的访问权限一定都是public static final(允许省略public,final,static)3) 接口的使用:一个类通过使用关键字implements声明自己实现一个或多个接口。类实现接口时必须重写该接口的所有方法,重写时去掉abstract,显式加上public(否则降低访问权限)。4) 通过import语句引入包中的接口import java.io.*;5) public接口接口前加关键字public,可以被任何类实现;不加public,仅可以被同包类实现。6) 如果父类实现某接口,子类默认自然实现该接口,不需使用implements显式声明。7) 接口也可以使用extends关键字继承,子接口将继承父接口中的全部方法和常量。8) 如果一个类声明实现一个接口,但没有重写接口中的所有方法,那么这个类一定是一个abstract类。 理解接口1)接口可以增加很多类都需要具有的功能,不同的类可以实现相同的接口,同一个类也可以实现多个接口。 2)接口只关心操作,并不关心操作的具体实现 3)接口的思想在于它可以增加很多类都需要具有的功能,而且实现相同的接口类不一定有继承关系。 接口回调: 是指可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类重写的接口方法。实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。 class A implements X void f() X x = new A();x.f(); 接口与多态:1)通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。2)使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。 abstract类与接口的比较:1)abstract类和接口都可以有abstract方法。2)接口中只可以有常量,不能有变量;而abstract类中即可以有常量也可以有变量。3)abstract类中也可以有非abstract方法,接口不可以。第六章1、异常类的使用:异常类: 1)所有异常类的超类为Throwable,只有当异常对象是Throwable类(或其子类之一)的实例时,才能通过 throw 语句抛出。 使用new关键字创建异常对象,所有标准异常类都有两个构造函数: 默认构造函数和字符串作为参数的构造函数。 2)异常对象可以调用如下方法(继承自Throwable类)得到或输出有关异常的信息: public String getMessage(); /打印构造时添加的信息 public String toString(); /打印异常类型与信息 public void printStackTrace(); /打印异常的调用栈轨迹,显示了“把你带到异常抛出地点”的方法调用序列 3)Java使用trycatch语句来处理异常,将可能出现的异常操作放在trycatch语句的try部分,将发生异常后的处理放在catch部分。 4)只有Throwable类或其子类之一才可以被 catch 子句抓住,成为其中的参数类型。可以使用Exception来抓取所有类型的异常,因为Exception是所有异常类的超类。 5)try-catch语句与变量的声明问题,将try中使用到的变量在try块前进行声明。 6)finally语句:表示最后必须执行的代码,无论是否捕获到异常 try catch() finally /必须执行的语句 一些必须执行的操作包括:关闭文件,关闭网络连接等操作。 自定义异常类: 1)我们可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。 2)一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。 3)自定义异常类通过重写toString()函数实现自己的错误信息提示。 第九章1、String类的两种创建方式: String s= XXXXXX;(先在内存中搜索是否已经存在同样内容的字符串常量实体,若有,则不创建新的实体,将已有实体的引用赋值给变量,没有则进行创建。) String s = new String(“XXXXXX”);(不管内存中是否已经有”XXXXXX”实体,都先建立常量对象”XXXXXX”,再创建String对象.)2、 String类的常用方法:1)public int length():获取一个字符串的长度 2)public boolean equals(String s):比较当前字符串对象的实体是否与参数s指定的字符串的实体内容相同(= 是用来比较两个字符串对象表示的引用是否相同)3)public boolean startsWith/endsWith(String s):判断当前字符串对象的前缀(后缀)是否是参数s指定的字符串 4)public boolean regionMatches(int firstStart,String other,int otherStart, int length) :从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串,并将这个子串和参数other指定的一个子串从otherStart处取length长度的字串进行比较 。 该方法的重载方法: public boolean regionMatches(boolean b,int firstStart,String other,int ortherStart,int length)可以通过参数b决定是否忽略大小写。当b=true, 忽略大小写5)public int compareTo(String s):按字典序与参数s指定的字符串比较大小,当前字符串与s串内容相同,返回值为0,当前字符串大于(小于)串s,返回正值(负值)。 其相关方法: public int compareToIgnoreCase(String s) 6)public boolean contains(String s):判断当前字符串对象是否含有参数指定的字符串s 。7)public int indexOf (String s):从当前字符串的头开始检索字符串s,并返回首次出现s的位置 其相关方法: indexOf(String s ,int startpoint):从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。lastIndexOf (String s):从当前字符串的头开始检索字符串s,并返回最后出现s的位置。 以上方法若没有检索到字符串s,则返回的值是-1。8)public String substring(int startpoint):获得一个当前字符串的子串,从startpoint开始 其相关方法:substring(int start ,int end):从当前字符串的start处截取到end-1处所得到的字符串。9)public String trim() :得到一个s去掉前后空格后的字符串对象。3、 StringBuffer类1) String类创建的字符串对象是不可修改的。即String对象一旦创建,那么实体是不可以再发生变化的;StringBuffer类能创建可修改的字符串序列,即该类对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列。2) StringBuffer类有三个构造方法: StringBuffer():初始容量16个字符,可以自动增加,使用capacity()方法获得当前实体的实际容量。 StringBuffer(int size):size指定初始容量StringBuffer(String s):初始容量为在s长度上加上16个字符 3)StringBuffer类的常用方法: StringBuffer append(String s):将一个字符串对象追加到当前StringBuffer对象中。 StringBuffer append(int n):将一个int型数据转化为字符串对象后再追加到当前StringBuffer对象中。 StringBuffer append(Object o):将一个Object对象的字符串表示追加到当前StringBuffer对象中。 类似的方法还有: StringBuffer append(long n);StringBuffer append(boolean n), StringBuffer append(float n);StringBuffer append(double n), StringBuffer append(char n) public chat charAt(int n ):得到参数n指定的置上的单个字符。 public void setCharAt(int n ,char ch):将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。StringBuffer insert(int index, String str) :将参数str指定的字符串插入到参数index指定的位置。 public StringBuffer reverse() :将该对象实体中的字符翻转。StringBuffer delete(int startIndex, int endIndex) :从当前StringBuffer对象实体中的字符串中删除一个从startIndex到endIndex-1处的子字符串。 其相关方法:deleteCharAt(int index) 删除当前StringBuffer对象实体的字符串中index位置处的一个字符。StringBuffer replace( int startIndex ,int endIndex, String str) :将当前StringBuffer对象实体中的字符串的从startIndex到endIndex-1处的一个子字符串用参数str指定的字符串替换。第十二章1、流概述:1)输入、输出流提供一条通道程序,Java程序可以使用这条通道读取源(键盘、鼠标、窗口、文件、内存)中的数据或把数据传送到目的地(显示器、打印机、窗口、内存、文件)。2、字节流与字符流: java.io 包提供了大量的流类:1)字节流以字节作为流中元素的基本类型,每次读写的最小单元为一个字节。InputStream抽象类的子类创建的流对象称作字节输入流;OutputStream抽象类的子类创建的流对象称作字节输出流;2)字符流以字符作为流中元素的基本类型,每次读写的最小单元为一个字符,即2个字节的Unicode码。Reader抽象类的子类创建的流对象称作字符输入流;Writer抽象类的子类创建的流对象称作字符输出;File/RandomAccessFile 文件类/随机读取文件类。3、文件字节流:1)文件字节输入流:FileInputStream类创建的对象被称作文件字节输入流。 创建文件字节输入流构造方法: FileInputStream(String name);/使用给定的文件名name创建一个FileInputStream对象 FileInputStream(File file); /使用File对象创建FileInputStream对象 以字节为单位读文件 read方法的格式如下: int read();/顺序读取单个字节,返回0-255之间的一个值,文件末尾-1 int read(byte b); /顺序读取b.length个字节放到b数组中,返回读取的字节数 int read(byte b,int off,int len); /顺序读取leng个字节,放到b数组off索引启始处 2)文件字节输出流:FileOutputStream类创建的对象称作文件字节输出流。 创建文件字节输出流 构造方法: FileOutputStream(String name); /使用给定的文件名name作为目的地创建一个FileOutputStream对象 FileOutputStream(File file) ;/使用File对象作为目的地创建FileOutputStream对象 以字节为单位写文件 write方法的格式如下: public void write(byte b); /写b.length个字节到文件 public void write(byte b,int off,int len); /从给定字节数组中起始于偏移量off处写len个字节到文件 3) FileOutputStream流要写的文件不存在,则先创建该文件,再写入内容。如果文件已经存在,则以重新刷新式写入的方式进行(抹去已有内容)。 4)close()方法: Java程序结束时,会自动关闭所有打开的流,但显式的关闭仍是良好的习惯。如果没有关闭那些被打开的流,那么就可能不允许另一个程序操作这些流所用的资源。保证操作系统不要将写入的数据放在内存缓冲区中,close()方法把流缓冲区的内容写到(flush())它的目的地。4、 文件字符流:FileReader和FileWriter用来创建文件字符输入、输出流1)构造方法: FileReader(String filename); FileReader(File filename); FileWriter (String filename); FileWriter (File filename); 2)字符输入流和输出流的read和write方法以字符为基本单位处理数据。 int read() /字符输入流调用该方法从源中读取一个字符。该方法返回一个整数(065535)之间的一个整数,Unicode字符值,若未读出字符,就返回-1. int read(char b) 字符输入流调用该方法从源中试图读取b.length个字符到字符数组b中。若达到源的末尾,就返回-1. int read(char b, int off, int len) 字符输入流调用该方法从源中试图读取len个字符并存放到从off处开始的字符数组b中,返回实际读取的字符数目。若达到文件的末尾,则返回-1。 void write(int n) 字符输出流调用该方法向文件写入一个字符。 void write(char b) 字符输出流调用该方法向文件写入一个字符数组。 void write(char b,int off,int length) 字符输出流调用该方法把从字符数组中起始于偏移量off处取出的len个字符写到文件。 5、 缓冲流:1)BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流。是比FileReader/FileWriter更高层的流,提供诸如读取一行信息/写入字符串的高级方法,并且提高速度。高层流的源和目的地必须是字符输入流和字符输出流。这样更高层的流(装饰器),用以对底层流进行包装修饰,提供更高级的功能。 构造方法: BufferedReader(Reader in); BufferedWriter (Writer out); FileReader inOne = new FileReader(“student.txt”); BufferedReader inTwo = BufferedReader(inOne); 2)BufferedReader和BufferedWriter类读写文件的方法: String readLine() /BufferedReader流读取文本行,文件尾部返回null void write(String s,int off,int len) /BufferedWriter流把从off处开始的字符串s的len个字符写到文件中 void newLine(); /BufferedWriter流向文件写入一个回行符 3)BufferedReader和BufferedWriter类称作上层流,它们指向的字符流称作下(底)层流。 底层字符输入流先将数据读入缓存,BufferedReader再从缓存中读取数据; BufferedWriter先将数据写入缓存,底层字符输出流再将缓存中的数据写入目的地。 当BufferedWriter调用flush()刷新缓存或者调用close()关闭时,即使缓存没有溢出,底层流也会立刻将缓存的内容写入目的地。 流的关闭顺序:先打开(建立)的后关,后打开(建立)的先关6、 对象流的使用: 1)ObjectInputStream和ObjectOutputStream类创建的对象称为对象输入流和对象输出流。 2)构造方法是: ObjectInputStream(InputStream in) ObjectOutputStream(OutputStream out) 3)相关方法: writeObject(Object obj) 将一个对象obj写入到一个文件 readObject() 读取一个对象到程序中 4)当使用对象流写入和读取对象时,要保证对象是序列化的。所谓序列化:一个类如果实现了Serializable接口,那么这个类创建的对象就是所谓序列化的对象。 Serializable接口无方法,仅需要声明一下,称作标记接口。 当把序列化的对象通过对象输出流写入目的地时,JVM会将对象的序列化信息写入,在读取时依据这些序列化信息创建对象。序列化可以实现对象的持久化,方便对象在网络上传输。 第十三章1、 泛型1) 泛型(Generics)的目的是某些代码可以适用于更多的类型,可以建立具有类型安全的集合框架(容器),如链表、散列映射等数据结构。2) 可以使用“class 名称”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People。3) 泛型类声明和创建对象时,类名后多了一对“”,而且必须要用具体的类型替换“”中的泛型。4) 泛型类中泛型变量只能调用从Object类继承的或重写的方法。5) 可以使用“interface 名称”声明一个接口,这样声名的接口称作泛型接口。如;interface Computer 6) 如果使用了泛型,在编译时就可以对类型进行检查,并且在使用对象时可以直接使用,不需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论