版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的程序设计上海财经大学信息管理与工程学院考前复习2017考试题型判断题〔2分*10个,共计20分〕不定项选择题〔2分*15个,共计30分〕程序阅读题〔5分*5个,共计25分〕编程题〔3个答题,合计25分〕重点在于复习课上指出的有关例题2考核范围以课堂PPT为蓝本,以郎波老师的教材为根底。不考或少考:数据库不考内容:Applet、JSP、JS3主要考核知识点第一局部消息:定义、情况及构成Java可以跨平台的原因:JVMApplication程序创立过程:编译—javac.exe解释执行—java.exe聚合、关联,以及两者之间的关系。4主要考核知识点第三局部1标识符定义规那么数据类型之间的互相转换:自动转换强制转换数组类型、长度、内容和地址之间的关系数组的初始化5主要考核知识点第三局部2局部变量和类成员变量的初始化常见数据类型根本数据类型:复合数据类型:类类型、String、数组常量逻辑型整型、浮点型字符型:转义字符6数据类型的级别与类型转换运算Java中数据的根本类型〔不包括逻辑类型〕按精度从“低”到“高”排列:byteshortcharintlongfloatdouble★当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如:floatx=100;
★当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:〔类型名〕要转换的值;例如intx=(int)34.89;★当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否那么必须进行类型转换运算; 例如:bytea=(byte)128;//byte取值范围为:-128~+127〔即,-27~27-1〕
7整型变量可自动转化为浮点型这个转化可能会导致损失精度〔浮点型有特定的精度〕虽然long是8字节,float是4字节,但仍然可以将long自动转化为float。8boolean不能和其他类型转换9引用类型变量引用类型变量存储的是其对应对象的地址,而不是该对象的值。在Java中,除根本类型以外的变量均为引用类型变量用户自己定义的类的变量都是引用类型变量。10数组数组中的元素都是同一种类型。数组的长度在创立〔不是在声明时指定〕的时候确定,并且在创立后固定不变。数组的声明inta[];Date[]d;数组的创立使用new创立:a=newint[10];使用初始值创立:String[]a={"aa","bb"};数组变量是引用型:存储的是数组内容所在内存空间的地址。数组元素索引从0开始:String[]a={"aa","bb"}a[0]="aa",a[1]="bb"参考书本p.59~6011数组关于数组声明表示数组的"[]
"在数组变量之后 //C、C++和Java通用的标准格式inta[];Dated[];参考书本p.59~60表示数组的"[]"
在数组类型之后表示数组标志"[]"之后出现的所有变量都将是数组变量 //Java特有的格式int[]a;char[]s,m,n;//声明了3个字符型数组变量s、m和n。声明不创立数据空间,仅仅分配一个引用空间。12数组关于数组声明参考书本p.59~60声明二维数组有以下两种格式:数组的元素类型数组名[][];数组的元素类型[][]数组名;例如:floata[][];Char[][]b;13数组的初始化使用初始值直接初始化
int[]a={1,2,3,4,5};Date[]d={newDate(),newDate(),newDate()};先声明后初始化inta[];a=newint[10];
Dated[];d=newDate[3];在声明的同时初始化
inta[]=newint[10];
Dated[]=newDate[3];数组的长度在创立时就固定了。如果要在Java中建立长度可以动态变化的"数组",可以使用List类。14String类String类在java.lang包中Java把String类声明为final类,因此不能扩展String类。即String类不可以有子类。由于java.lang包中的类被默认引入,因此程序可直接使用String类。注意15构造字符串对象1.字符串常量对象:用西文字符双引号括起的字符序列。2.字符串对象声明:Strings;创立字符串对象:s=newString("wearestudents");例如:"你好"、"12.97"、"boy"等。String类较常用构造方法:String(s),String(chara[]),String(chara[],intstartIndex,intcount)
startIndex和count分别指定提取字符的起始位置以及从该位置开始截取的字符个数。
例如:chara[]={'J','a','v','a'};Strings=newString(a);
例如:chara[]={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};Strings=newString(a,2,4);
相当于:Strings=newString(''贰叁肆伍'');
16构造字符串对象3.引用字符串常量对象
Strings1,s2;
s1="howareyou";
s2="howareyou";s1,s2具有相同的引用,故具有相同的实体。17String类的常用方法1.publicintlength():获取一个字符串的长度
2.publicbooleanequals(Strings):比较当前字符串对象实体的值是否与参数s指定的字符串实体的值相同如果:那么:tom.equals(boy)的值为false,tom.equals(jerry)的值为ture。但是:tom==jerry的值为false。〔判断是否有相同的引用〕因为字符串对象tom、jerry具有相同的引用值,但引用的字符串对象不同。tom0x54C78天道酬勤boy0xBc66知心朋友jerry0xAb98天道酬勤18String类的常用方法例题8_1说明了equals的用法。19主要考核知识点第三局部3流程控制顺序:按语句书写的先后顺序执行分支:在假设干路径中有条件地择一执行循环:当某条件成立时,反复执行一段代码20分支〔选择〕语句if语句if〔条件表达式〕语句组;if〔条件表达式〕语句组1;
else语句组2;语句组:用大括号括起的语句集合else与最近的if配合,用来消除二义性if条件A{if条件B{
语句组1//A&B
}else{语句组2//A&(!B)
}}21分支〔选择〕语句〔续〕嵌套的if-else-if
if(expression) statement; elseif(expression) statement; elseif(expression) ………………. else statement;
if(expression) statement;
else{
if(expression) statement; elseif(expression) ………………. else statement;}22嵌套if-else-if例如例:绩点计算ji_dian=2.0运算结果:23for循环语句for循环语句的语法格式:for(表达式1;表达式2;表达式3){假设干语句}for语句的执行规那么是:〔1〕计算“表达式1”,完成必要的初始化工作。〔2〕判断“表达式2”的值,假设“表达式2”的值为true,那么进行〔3〕,否那么进行〔4〕。〔3〕执行循环体,然后计算“表达式3”,以便改变循环条件,进行〔2〕。〔4〕结束for语句的执行。
24Java的循环语句:for〔续〕求表达式1(j=0)求表达式2(j<10)求表达式3(j++)False循环体Truefor(j=0;j<10;j++〕 循环体语句组;25算术运算符二元算术〔双目〕运算符:+,-,×,/,%“+”可连接字符串“He”+“llo”为“Hello”整型、浮点进行混合运算时,不同类型的数据首先转换为同一类型,然后进行运算,低级数据类型自动转化为高级数据类型。注:全是byte或short型操作数,结果也是int型;26++/--运算符用法功能描述++op++op加1;先求op的值,再把op加1++++opop加1;先把op加1,再求op的值--op--op减1;先求op的值,再把op减1----opop减1;先把op减1,再求op的值27运算符扩展赋值运算符二元运算符:@=,a@=b即a=a@b〔@为+,-,*,/,%) a+=ba=a+b;运算符的优先级一般原那么:算术运算符>关系运算符>逻辑运算符括号最优先28主要考核知识点第三局部4面向对象编程根底29Java中的OOP回忆几个概念类:抽象的集合概念系统类库中已定义好的类用户自定义的类对象(实例,instance):实际个体创立某个类的具体对象(类似变量声明)类名欲创立的对象名=new类名(参数表);例如:Strings=newString(“Hello!”);Dated=newDate(2007,07,30);继承、子类、父类子类是父类的特例,继承了父类的变量和方法;30完整程序一个java文件最多只有一个public类,这个类称为主类,与java文件名相同。31Java中类的声明类修饰符〔Modifier〕public:允许其他类〔没有限制〕访问本类缺省:可被当前包中的其他类访问abstract:没有实例的抽象类,只能创立其子类的实例。目的:使类的结构清晰,实现多态。final:不能再被扩展,不包含子类的类;易于平安性的实现,或用于创立固定功能的类;父类继承声明:extends父类名实现接口(interface):implements接口32成员变量的声明声明成员变量〔member〕的语法成员变量:在类体中声明,但不属于任何一个方法。[修饰符]数据类型变量名;33修饰符:访问控制符成员变量的访问控制符public:可被所有其他类访问protected:该类自身、子类、同一包中的其他类缺省:可被本包中的类访问private:仅可被该类自身访问和修改,不能被其他任何类〔包括子类〕访问34修饰符〔续〕static:类成员变量(静态变量)对所有的实例一致引用时前缀可使用类名或对象名final:程序中不能修改其值即常量,定义的同时应对其进行初始化35成员变量的声明例如
classCircle{
privatefloatradius;
protectedfloatarea;
staticfloatmaxArea=100.0f;
finalfloatPI=3.1415926f;
……..}static属性可直接通过类名引用Circle.maxArea36方法的定义方法的作用定义对类的成员变量(数据)的操作方法的定义语法:[修饰符]返回类型方法名〔参数列表〕[throws异常名]{方法体;}声明内容方法的性质、接受哪些参数、返回什么信息方法声明部分方法体部分37方法的声明修饰符访问控制符public,protected,缺省,privatestatic:静态方法,又称类方法。使用类名或对象名作为前缀,建议使用类名作前缀在static型的方法体中,只能访问static变量和自身局部变量优点:不必对类实例化操作就能被其他类使用该方法。可开发通用工具,如数学计算:Math.sqrt()abstract:只有方法名,没有方法体。要在子类中通过重新定义〔override〕来实现final:不能被子类所重新定义〔override〕38方法的声明〔续〕返回类型:方法内return语句返回值的类型、void〔无返回值〕参数列表:参数类型可为根本类型或引用类型throws:通告本方法中会产生的例外〔异常〕类型提醒调用者要对相应的可能例外进行处理。当执行此方法并发生了例外时,程序会转入调用者编制的例外处理程序段。39例外触发例如40方法体在方法体中定义的变量称为局部变量。生命周期:程序流执行进入方法体时创立,程序流退出方法时撤消。局部变量使用之前必须初始化。局部变量名假设与类的成员变量名相同,那么成员变量被隐藏。可用this显示相应的成员变量。41方法体〔续〕在方法体中可访问本类所有的类变量,并可调用本类中定义的非静态方法。static方法只能直接调用本类的static方法和static变量。static方法无法引用非static的成员变量numstatic方法可以用类名直接调用42方法的参数方法的参数要“有名有型”参数的作用域在本方法中可像方法内的局部变量一样使用。方法调用中,根本类型参数是值传送;引用类型参数是地址传送。43值传送与地址传送引用类型地址传送基本类型值传送3.143.14AB0x2F0x2FCD方法定义:voidmethod1(intA)voidmethod2(StringC)方法调用:instance.method1(B)instance.method2(D)A,C是形参B,D是实参44构造方法构造方法与类同名,且不声明返回类型。在创立每个新对象时自动执行以保证新对象的各成员都有合法、确定的初值。Java试图在每个对象一诞生时,就给它一个指定的状态〔即成员变量的初值〕,但有时系统的缺省初值并不适宜;所以在创立一个新对象时,需用构造方法完成合法的初始化,使成员变量的初始化工作不依赖于外界〔系统〕完成。45构造方法的特点构造方法与成员方法不同,不能被直接调用。必须通过new调用;创立对象时,利用运算符new在内存中开辟专用空间,存放指定的类的实例〔即对象〕,这时会自动执行类的构造方法,初始化新对象的成员变量.例:Dated=newDate(22,5,2003);46构造方法的缺省每一个类至少有一个构造方法。〔可以有多个,重载〕当未定义任何构造方法时,系统在编译时,会提供一个缺省〔默认〕构造方法无参数,方法体中没有内容缺省构造方法的初始化数据初值:数值型:0;布尔型:false;引用型:null;
字符串型:null;一旦程序员定义了构造方法,缺省〔默认〕构造方法自动失效!47缺省构造方法例如48自定义构造方法例如1构造方法与类同名且不声明返回类型49自定义构造方法例如2构造方法与类同名且不声明返回类型50以“this”
调用构造方法this(参数列表)表示调用本类的构造方法在一个构造方法中,当使用this并给它一个参数列表时,this显式调用参数匹配的另一个构造方法。使用this调用本类的其他构造方法时,this应是第一个可执行语句51类的继承:Extends关键字Java中用extends关键字定义子类。publicclassEmployee{
protectedStringname;
protectedintgrade;
protectedintsalary; …}子类是从已有的类创立新类的一种方法。publicclassManager
extendsEmployee{
intbonus; }要使得子类直接可以访问父类属性,必须声明父类属性的访问符为protected(或public)52类的继承创立类时指明它为某类的子类extends父类名子类将继承protected和public的所有父类成员〔可直接访问〕private:不能被继承缺省:除非子类和父类在同一个包,否那么也不能继承Java是单继承,不支持多继承extends后的类名只能有一个可通过接口间接实现多继承53类的继承:扩展子类对父类可做扩展和特殊化。子类继承父类的属性、功能(方法)子类中只需声明特有的东西。创立新的成员:属性和方法重新定义父类中已有的属性:父类属性被隐藏重新定义父类中已有的方法:重写(override)子类中的方法应与父类中的被重写的方法有完全相同的参数列表、返回值。54类的继承例如重新定义属性新添加属性方法重写被重写方法的返回值、方法名、参数列表要与父类中的方法完全一样55方法重写规那么方法的访问权限不能缩小。高低访问权限56方法重写规那么可扩大访问权限57类的继承:上溯造型子类对象可自动转换成父类对象,即,父类变量可以指向子类对象,称为上溯造型〔upcast〕,系统自动完成。58父类变量执行子类方法父类变量指向子类对象,但如果要使用子类特有的方法,需要强制转换为子类。59父类变量执行子类重写方法如果父类变量指向子类对象,执行某个父类定义但被子类重写的方法,实际执行的代码是子类的相应方法。运行时多态:在运行时根据对象的具体情况来决定调用的方法是父类的还是子类的。60回忆方法重载〔与重写比照〕方法重载:同类中的同名方法参数必须不同形参的个数、类型、顺序的不同返回值、修饰符可以相同,可以不同要打印不同类型的数据,如int,float,String等(通过不同参数区分)voidprint(inti);voidprint(floatf);voidprint(Strings);编译时多态:由编译器在编译时根据参数的区别,来调用绑定方法体。61方法重写vs方法重载区别点重载方法重写方法参数列表必须修改不能修改返回类型可以修改不能修改异常可以修改不能抛出新的异常访问可以修改不能缩小访问权限多态编译时运行时
62注意1:属性无运行时多态!子类重新定义父类属性后,父类属性被隐藏,子类对象无法直接访问父类属性。如果把子类对象赋值给父类变量〔上溯造型〕,再访问该属性,那么将访问到父类属性。63注意2:static、final、private方法无运行时多态!静态联编〔早联编〕:StaticBinding(EarlyBinding)Java对static、final、private方法的调用,是在运行前将方法调用和方法体连接到一起不存在运行时多态动态联编〔晚联编〕:DynamicBinding(LateBinding)对非static、final、private方法的调用,是在运行时才将方法调用和方法体连接到一起实现运行时多态的机理64上溯造型总结上溯造型中:同名方法,假设子类重写,那么调用子类自己的,是运行时多态:利用动态联编实现。注意:static、final、private方法,利用静态联编实现,故不存在运行时多态。同名属性是调用父类的。一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量不能再访问子类中添加的子类独有的属性和方法。65课堂练习);5sub66课堂练习1判断以下哪些语句是合法的:b.f();a.j=5;a.g();b.i=3;67课堂练习2执行结果?68课堂练习4执行结果?69final关键字被定义成final的类不能有子类。final变量不在声明时初始化会报错final变量不能改变被定义成final的成员方法不能被重写。被定义成final的成员变量不能改变。该变量实际上是常量,一般大写,并必须在声明时初始化。finalintNUMBER=100;70static关键词在一些编程场景中,某些成员应该属于一个类,即被所有该类的对象共享。例:一个类希望通过一个成员属性记录程序中共生成多少个它的对象关键词static可用于定义类成员〔类属性、类方法〕,也叫做静态成员〔静态属性、静态方法〕不用static修饰的成员被称为实例成员〔实例属性、实例方法〕类属性和类方法可直接通过类名访问虽然也可以通过该类的对象访问,但属于不良的编程习惯,不推荐。实例属性和实例方法必须通过该类的对象才可访问71static方法使用注意点static方法中不能直接访问本类的实例属性,只能访问static属性、方法参数及局部变量static方法中不能直接访问本类的实例方法,只能访问本类的static方法如果要访问实例属性或实例方法,可在static方法中先创立本类的对象,再使用该对象的实例属性或实例方法static方法中不能访问this引用72抽象类抽象方法:只声明方法而没有方法的实现〔方法体〕在方法声明中,在紧接着类访问限定词之后增加关键字abstract。抽象类:在类声明中,在紧接着类访问限定词之后增加关键字abstract。在无方法体的方法〔抽象方法〕前也要加上abstract。publicabstractclassDrawing{//抽象类 publicabstract
voiddrawDot(intx,inty);//抽象方法 publicvoiddrawLine(intx1,inty1,intx2,inty2) {…//非抽象方法}}一个abstract类可以包含有非抽象方法和变量,但至少包含一个抽象方法。73抽象类抽象类不能直接用来生成实例。一般通过定义子类进行实例化可以声明抽象类的变量该变量可指向一个子类的实例。abstractclassEmployee{
abstractvoidraiseSalary(inti); }classManagerextendsEmployee{//抽象类的子类 voidraiseSalary(inti){….}//实现抽象方法 }Employeee=newManager();//指向子类实例74接口(Interface/Protocol)可看作“特殊的抽象类”一个接口定义了一组对外的公共接口〔一系列操作的组合〕只包含操作签名Signature〔即操作名、参数类型、返回值类型〕不包含操作的具体实现75接口(Interface/Protocol)接口的方法需要类进行实现〔implements〕76Java中的接口〔Interface〕1)Java允许定义publicstaticfinal的常量〔修饰符只能写public,static,或final,但无论怎么写,都不会影响该变量是publicstaticfinal〕2)interface的方法,默认为publicabstract〔类在实现接口时,必须将实现的接口方法声明为public〕A,B,C,D都是TInterface的publicstaticfinal变量思考:怎样写程序验证A,B,C,D都是publicstaticfinal?其他类实现接口的method方法时必须声明public,否则报错77一个类可实现多个接口类可以实现〔implements〕多个接口如果多个接口中定义了同样的抽象方法,在实现的类中实现一次即可。78接口之间的继承接口可以继承〔extends〕接口假设接口B继承接口A类C实现接口B,那么需实现接口A和B中定义的所有抽象方法。79子接口可继承多个父接口注意:一个子接口可以继承〔extends〕多个父接口接口C继承接口A和B类D实现接口C,那么需要实现A,B和C中所有的抽象方法80
interface要注意的问题尽量不向interface定义中随意增加方法。直接在接口中增加方法,会带来所有实现该接口的类的维护问题。推荐:定义新接口,继承原接口来增加方法publicinterfaceshape{voiddraw();voiderase();
doublearea();//直接在接口中增加方法,会带来所有该接口的子类的维护问题}publicinterfaceShapeWithAreaextends
Shape{//通过子接口来新增方法
doublearea();}81interface:多态性可声明interface的变量,指向具体实现该interface的类的实例,并实现多态性。82接口实现配合类继承:多继承这是示意图,考试不必画,这里用来帮助大家理解的。83Java中接口与抽象类的比较接口中的所有方法都是抽象的,而抽象类可以定义有方法体的不同方法。一个类可以实现多个接口,但是只能继承一个父类。继承父类和实现接口相组合,可实现多继承。84上机练习创立一个接口,接口名Function,具有一个方法evaluate,参数为一个int型变量,返回值为int。创立一个类,类名Half,实现Function接口的evaluate方法:将传入的参数除以2返回。创立一个类,类名TwoTimes,实现Function接口的evaluate方法:将传入的参数乘以2返回。再新建一个类,在类中实现一个方法,该方法的参数列表为一个int型数组和一个Function类型对象,功能为利用Function对象的evaluate操作对数组的每个元素进行改变,最后返回改变后的int型数组。利用上述方法,以及Half和TwoTimes类,对一个数组的所有元素进行除以2或者乘以2的操作。85主要考核知识点第四局部Java类库-异常86异常分类Error很难恢复的严重错误。一般属于系统内部错误,不由程序处理。发生时,由用户按照系统提示关闭程序。Exception由程序本身或环境产生的错误,可通过异常处理来进行有效控制。RuntimeException:程序设计或实现上的问题,如数组越界等。其他Exception:通常是由环境因素引起的,并且可以被处理的。如文件不存在,无效URL等。87常用方法:StringgetMessage():返回详细信息StringtoString():返回包括异常类名以及getMessage()信息的描述voidprintStackTrace():打印出异常发生的路径〔精确到第几行〕 即,引起异常的方法调用的序列。这些均继承自Throwable类Exception类的常用方法88异常处理良好的程序应预见并处理可能发生的各种异常Java中的异常处理方法:捕获并处理异常〔由发生异常的方法自行处理〕将方法中产生的异常抛出〔在其他程序调用该方法时进行处理〕89异常处理:捕获与处理异常try
语句块catch语句块finally语句块try语句后必须跟随至少一个catch或者finally语句块90try/catch/finally一般形式try语句块:包含可能产生异常的java语句catch语句块:提供发生异常时的处理方法finally语句块:无论是否发生异常,均会执行try{
javastatements;}catch(SomeThrowableClassvariableName){
javastatements;}一条或多条可能产生异常的java语句能够被处理的异常类名,必须是Throwable的子类被捕获异常的变量名称,可作为局部变量使用当捕获到异常时执行的java语句finally{
javastatements;}91catch处理多个异常可写多个catch语句块捕获不同种类的异常当抛出一个异常时,依次匹配各个catch语句内捕获的异常类型,执行第一个类型匹配的catch语句,其他catch语句不再执行。匹配规那么:抛出对象与catch参数的类型相同或是参数类的子类处理算术异常(如除0)处理数组越界异常92catch处理多个异常例如除0数组访问越界93finally语句块无论是否发生异常都要执行finally语句块执行完后,继续执行程序的后续代码。94异常处理:抛出异常在方法声明中说明可能产生的异常,但该方法本身将不处理该异常,而将它抛到调用该方法的程序中去。classA{publicstaticvoidtroublesome()throwsSomeException{ …..}}抛出异常ClassB{
…try{A.troublesome();…}catch(SomeExceptione){…}调用抛出异常的方法时,用try/catch捕获95方法声明中throws后的Exception类可配合方法体内throw语句抛出异常类对象。throw语句抛出异常类对象声明方法可能抛出的异常使用throw语句抛出异常对象:一旦抛出异常对象,该方法内后续代码不再执行!96throw语句抛出异常类对象声明方法可能抛出的异常使用throw语句抛出异常:一旦抛出异常,该方法内后续代码不再执行97自定义异常继承Throwable或者它的子类〔如Exception〕自定义异常98自定义异常完整的异常类类名99课堂练习1程序输出?100课堂练习2101课堂练习3102主要考核知识点第四局部Java类库-线程103进程VS线程当程序进入到内存运行时,即变成了一个进程。处于运行过程中的程序。具有一定的独立功能系统进行资源分配和调度的一个独立单位。具有独立性、动态性和并发性。线程可使得同一个进程可以同时并发处理多个任务。也被称为轻量级进程是进程的执行单元,是进程的组成局部。一个进程可以拥有多个线程, 一个线程必须拥有一个父进程。104进程VS线程一个程序运行后至少有一个进程,一个进程可以包含多个线程,但至少有一个线程。操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。105线程的创立两种方式,均需要编写run()方法实现Runnable接口继承Thread类推荐使用Runnable接口的方式,便于继承其他类。实现Runnable接口继承Thread类start方法启动线程106主要考核知识点第四局部4.4Java类库-输入输出107缓存流BufferedInputStream/BufferedOutputStream;BufferedReader/BufferedWriter数据从原始流成块读入或将数据积累到一个大数据块后再成批输出减少读写次数,提高程序执行效率过滤流,需在构造方法时给出前端流〔输入〕或后端流〔输出〕publicBufferedInputStream(InputStreamin)publicBufferedOutputStream(OutputStreamout)108缓存流例如:按行读取文件BufferedReader增加readLine()方法,读一行字符返回〔文件尾返回null〕BufferedReader常和FileReader构成输入流套接用于读取文本文件。109缓存流例如:按行读取文件110标准文件类:FileFile类对象对应于文件系统中的一个目录或者文件可获取文件的信息:路径、名字、长度、可否读写等可管理文件:创立、删除、更名等不可对文件数据读写〔由文件流实现〕File对象的创立publicFile(Stringpathname):可使用绝对路径或相对路径Filef1=newFile(“c:/work/myfile.txt”);Filef2=newFile(“mydir/dir1”);publicFile(Stringparent,Stringchild):parent-父目录,child-文件名或目录名Filemydir=newFile(“d:/fatherDir”,“sonDir”)//指向d:/fatherDir/SonDirpublicFile(Fileparent,Stringchild):用File类对象来表示父目录111File类创立文件或目录第一次运行第二次运行文件和目录已经存在,故创立失败112上机练习1.修改掷骰子程序,将用户玩游戏的结果存入文件内,并提供一个方法让用户查看自己的历史游戏胜率。FileWriter的构造使用FileWriter(Stringfilename,booleanappend),设定append为true,从而向原文件的尾部继续添加内容。113主要考核知识点第四局部4.5Java类库-GUI114BorderLayout边界布局管理器将容器分成五个区域BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.CENTERBorderLayout.EASTBorderLayout.WEST每个区域只能放置一个组件当用户改变容器窗口的大小时,各个组件的相对位置不变,而组件的大小改变BorderLayout是JFrame的默认布局管理器115GUI的事件处理GUI中事件处理的一般过程:当用户在界面上利用鼠标或键盘进行操作时监测GUI的操作系统将发生的事件传递给GUI应用程序应用程序根据事件的类型做出相应的反响。事件处理模型中的3类对象事件(event):操作产生事件〔按下键盘、拖动或单击鼠标等〕事件源(eventsource):产生事件的组件〔如按钮JButton〕事件处理器(eventhandler):接受事件对象,进行解释,并做出相应处理。116委托方式的事件处理当界面操作事件产生并发送到产生事件的组件时,该组件将把事件发送给能接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年变压器租赁协议
- 2024年转让国有土地使用权协议书
- 2024年水泥供货合同协议书范本(2220字)
- 2024年合资代理协议
- 2024年收养协议书1
- 机械设备国内配送合同范本
- 公寓楼装修工程合同
- 医疗中心扩建贷款合同样本
- 地铁站茶馆装修合同范本
- 化工产品运输保障协议
- 二十届三中全会知识点试题及答案【200题】
- 《养成学习习惯》ppt课件完整版
- 2023《中华人民共和国合同法》
- 三年级上册数学课件-总复习 周长总复习|北师大版
- 小学一年级上册 综合实践教学课件
- 物业保洁合同
- 2021年普通口译服务合同范本word版.doc
- (完整word版)直接无捻粗纱拉丝机卷绕比的计算与选择.doc
- 学校科学教育评价机制方案范文
- 新编日语第一册(修订版)单词 word版
- 部编版四年级语文下册文言文二则课件PPT模版
评论
0/150
提交评论