ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:37.53KB ,
资源ID:5490374      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5490374.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java复习资料.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java复习资料.docx

1、Java复习资料程序设计训练复习纲要( J AV A 语言程序设计)第1章 JAVA 语言基础知识1.1 JAVA 语言与面向对象的程序设计1 简述面向对象的编程语言与以往编程语言的根本不同点面向对象的编程语言与以往编程语言的根本不同在于抽象机制的不同。机器语言和汇编语言几乎没有抽象,对于机器而言是最合适的描述,它可以直接操作机器的硬件,并且任何操作都是面向机器的,这就要求人们在使用机器语言或汇编语言编写程序时,必须按照机器的方式去思考问题。因为没有抽象机制,所以程序员不得不陷入复杂的事物之中。面向过程的语言使程序员可以离开机器层次,在更抽象的层次上表达意图。但它所关注的只是处理过程,即执行预

2、期计算所需要的算法。面向对象的编程语言将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态(静态特征)和行为(动态特征),构成模型类。而程序需要解决的问题便反映为各种不同属性的对象以及对象之间的关系和消息传递。面向对象的方法在程序设计领域是一种相对较新的方法,它更接近于人类处理现实世界问题的自然思维方法。2 封装的好处封装带来的好处是:隐藏类的数据、控制用户对类的修改和控制数据访问权限3 面向对象技术给软件发展带来的益处􀁺 可重用性:一个设计好的类可以在今后的程序开发中被部分或全部地重复利用。􀁺 可靠性:每一个类作为一个独立单元可以单独进行测

3、试、维护,大量代码来源于可靠的类库,因而开发新程序时新增代码明显减少,这是程序可靠性提高的一个重要原因。4 面向对象语言的基本特征􀁺 抽象和封装:抽象的结果形成类,类中的数据和方法是受保护的,可以根据需要设置不同的访问控制属性。这便保证了数据的安全性,隐藏了方法的实现细节,也方便了使用。􀁺 继承性:可以对已有类增加属性和功能,或进行部分修改来建立新的类,实现代码的重用。􀁺 多态性:在面向对象的程序中,同一个消息被不同对象接收后可以导致不同的行为。5 Java 语言的特点􀁺 面向对象:Java 是完全面向对象的语言。Java

4、 语言提供类的机制,在对象中封装了成员变量和方法,实现了数据的封装和信息隐藏;类提供了一类对象的模型,通过继承和多态,实现了代码的复用。􀁺 安全性:Java 不支持指针,一切对内存的访问都必须经过对象的实例变量实现,防止了以不法手段访问对象的私有成员,同时避免了指针操作中容易产生的错误。Java 的内部安全措施保证了Java 程序在Java 虚拟机规则下操作,防止未授权的程序访问含有专用信息的系统资源或危及客户机的完整性。􀁺 操作平台无关性:Java 编译器生成与平台无关的字节码指令,只要安装了Java运行系统,其程序就可以在任意的处理器上运行。这些字节码对

5、应于Java 虚拟机中的表示,Java 解释器得到字节码后,对其进行解释,使之能够在不同的平台下运行。不同的操作系统有不同的虚拟机,与平台无关的特性使得Java 程序可以方便地移植到不同的机器上。􀁺 多线程:Java 是第一个在语言级提供内置多线程支持的高级语言,这大大简化了多线程程序的编写。而一些其他语言要通过调用操作系统的原语来支持多线程。􀁺 动态内存分配:Java 中所有的对象都是通过动态内存分配建立的,Java 对内存自动进行管理并进行垃圾回收,防止了因程序员失误而导致的内存分配错误,进而更好地利用了系统资源。1.2 JAVA 程序概述6 Java

6、程序编译执行的过程首先把源文件(.java 文件)编译成字节码文件,即类文件(.class);然后由解释器负责解释执行类文件。7 Java 平台Java 平台包括Java 应用程序接口(API)和Java 虚拟机(Java virtual machine,JVM)。Java 应用程序接口是指经过编译的,可在程序中直接使用的Java 代码标准库。Java虚拟机负责解释和执行Java 程序。Java 程序运行于Java 平台之上,Java 虚拟机将程序和硬件隔离开来。1.3 基本数据类型与表达式8 变量的作用域变量的作用域指可以访问该变量的程序代码范围。按照作用域的不同,变量可以分为类成员变量和局

7、部变量。类成员变量在类的声明体中声明,其作用域为整个类;局部变量在方法体或方法的代码块中声明,其作用域为它所在的代码块(即花括号的范围)。9 基本数据类型(基本数据类型有几种?分别是什么?)基本数据类型是指Java 固有的数据类型,可以分为数字型、布尔型和字符型数字型基本数据类型有六种,其说明如下表:类型 说明 长度 最小值 最大值byte 带符号位整数 8 位 128 127short 带符号短整数 16位 215 2151int 带符号整数 32 位 231 2311long 带符号长整数 64位 263 2631float 单精度浮点数 32 位 2149 (2223).2127doub

8、le 双精度浮点数 64位 21074 (2252).21023布尔型数据表示一个逻辑量,只有两个值true 和false,它们不对应于任何整数值。字符类型数据用于存储单个字符,字符以代码形式存储。Java 字符数据类型是16位,最小值0,最大值65535,放置Unicode 符号。10 类型转换的分类类型转换可以分成扩展转换和窄化转换两类。byte, short, int, long, float, doublechar扩展double, float, long, int, short, byte,char窄化按照扩展方向转化,从一种整型转换到另一种整型,或者从float 转换到double

9、 时,不损失任何信息。从整型转换到float 或者double 将损失精度。窄化转换可能会丢失信息。11 发生类型转换的四种可能情况􀁺 赋值转换􀁺 方法调用转换􀁺 强制类型转换􀁺 字符串转换1.4 数组的概念12 数组的概念数组是由同类型的数据元素构成的一种数据结构。数据元素可以是基本数据类型也可以是引用类型。通过数组名和数组元素下标(或称为索引)可以引用数组中的元素。每个数组都有一个名为length 的成员变量,用来表示数组所包含的元素的个数,length 只能是正整数或零。数组创建之后length 就不能被改变。1.5

10、 数组的创建和引用13 图示下面创建并初始化一个三行的二维数组的过程int myArray;myArray = new int3 ;myArray0 = new int3;int x = 0, 2;int y = 0, 1, 2, 3, 4 ;myArray1 = x ;myArray2 = y ;第2章 类与对象的基本概念2.1 面向对象的程序设计方法概述1 抽象5 / 46抽象就是忽略问题中与当前目标无关的那些内容,以便更充分地注意与当前目标有关的方面。计算机软件开发中所使用的抽象有过程抽象及数据抽象两类。过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤,而隐藏其具体的实现

11、。基于过程抽象的两个标准程序设计技术是过程分解及递归技术。数据抽象是将系统中需要处理的数据和这些数据上的操作结合在一起,抽象成不同的抽象数据类型,每个抽象数据类型既包含了数据,也包含了针对这些数据的操作。相对于过程抽象,数据抽象是更为合理的抽象方法。面向对象的软件开发方法的主要特点之一就是采用了数据抽象的方法来构建程序的类及对象。2 封装封装是一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起。用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的。封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需使用设计者提供的消息来访问对象 。3 继承继

12、承是指新的类可以获得已有类(称为超类、基类或父类)的属性和行为,称新类为已有类的派生类(也称为子类)。在继承过程中派生类继承了基类的特性,包括方法和实例变量。派生类也可修改继承的方法或增加新的方法,使之更适合特殊的需要。继承有助于解决软件的可重用性问题,使程序结构清晰,降低了编码和维护的工作量。4 单继承任何一个派生类都只有单一的直接父类,类层次结构为树状结构。5 多继承一个类可以有一个以上的直接父类,类层次结构为网状结构,设计及实现比较复杂。6 多态多态是指一个程序中同名的不同方法共存,主要通过子类对父类方法的覆盖来实现。不同类的对象可以响应同名的消息(方法) ,具体的实现方法却不同。多态性

13、使语言具有灵活、抽象、行为共享、代码共享的优势,很好地解决了应用程序方法同名问题。2.2 类与对象6 / 467 类和对象一个类是对一类对象的描述。类是构造对象的模板,对象是类的具体实例8 类的声明语法格式public abstract | final class 类名称extends 父类名称implements 接口名称列表变量成员声明及初始化;方法声明及方法体;说明:􀁺 class:表明其后声明的是一个类􀁺 extends:如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends 之后􀁺 implements:如果所声

14、明的类要实现某些接口,那么,接口的名字应写在implements 之后􀁺 修饰符可以有多个,用来限定类的使用方式􀂄 public:表明此类为公有类􀂄 abstract:指明此类为抽象类􀂄 final:指明此类为终结类9 对象的创建生成实例的格式:new ()其作用是: 在内存中为此对象分配内存空间,返回对象的引用(reference ,相当于对象的存储地址)。10 数据成员数据成员表示Java 类的状态。声明数据成员必须给出变量名及其所属的类型,同时还可以指定其他特性。在一个类中成员变量名是唯一的。数据成员的类型可以是Ja

15、va中任意的数据类型(简单类型,类,接口,数组) 。分为实例变量和类变量。数据成员的声明格式: public | protected | privatestatic finaltransient volatile变量数据类型变量名1=变量初值, 变量名2=变量初值, ;格式说明􀁺 public、_protected、private 为访问控制符􀁺 static 指明这是一个静态成员变量􀁺 final 指明变量的值不能被修改􀁺 transient 指明变量是临时状态􀁺 volatile 指明变量是一个共享变

16、量11 实例变量没有static 修饰的变量称为实例变量(Instance Variables)。用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。可通过下面的表达式访问实例属性的值.12 类变量类变量也称为静态变量,声明时需加static 修饰符。不管类的对象有多少,类变量只存在一份,在整个类中只有一个值。类初始化的同时就被赋值。适用情况:􀁺 类中所有对象都相同的属性􀁺 经常需要共享的数据􀁺 系统中用到的一些常量值引用格式:.13 方法成员方法成员定义类的行为:􀁺 一个对象能够做的事情􀁺 我

17、们能够从一个对象取得的信息可以没有,也可以有多个;一旦在类中声明了方法,它就成为了类声明的一部分。分为实例方法和类方法声明格式:public | protected | private static finalabstract native synchronized返回类型 方法名(参数列表) throws exceptionList方法体格式说明:􀂄 方法修饰􀂋 public、protected、private 为存取控制符􀂋 static 指明方法是一个类方法􀂋 final 指明方法是一个终结方法􀂋

18、abstract 指明方法是一个抽象方法􀂋 native 用来集成java 代码和其它语言的代码􀂋 synchronized 用来控制多个并发线程对共享数据的访问􀂄 返回类型􀂋 方法返回值的类型,可以是任意的Java 数据类型􀂋 当不需要返回值时,返回类型为void􀂄 参数类型􀂋 简单数据类型,􀂋 引用类型(数组、类或接口)􀂋 可以有多个参数,也可以没有参数,方法声明时的参数称为形式参数􀂄 throws except

19、ionList􀂋 用来处理异常14 包的作用􀁺 将相关的源代码文件组织在一起;􀁺 不同包中的类名可疑相同,从而可以避免名字冲突;􀁺 提供包一级的封装及存取权限。15 编译单元的组成􀁺 所属包的声明(省略,则属于默认包);􀁺 Import (引入)包的声明,用于导入外部的类;􀁺 类和接口的声明。16 类的访问控制类的访问控制只有public(公共类)及无修饰符(缺省类)两种访问权限符与访问能力之间的关系如表类型 无修饰 public同一包中的类 yes yes不同包中的类

20、 no yes17 类成员的访问控制类型 private 无修饰 protected public同一类 yes yes yes yes同一包中的子类 no yes yes yes同一包中的非子类 no yes yes yes不同包中的子类 no no yes yes不同包中的非子类 no no no yes18 关键字this 的使用如果形式参数名与实例变量名相同,则需要在实例变量名之前加this 关键字,否则系统会将实例变量当成形式参数。2.3 对象的初始化和回收19 构造方法构造方法(Constructor)是一种特殊的方法。Java 中的每个类都有构造方法,用来初始化该类的一个新的对象

21、。构造方法具有和类名相同的名称,而且不返回任何数据类型。系统在产生对象时会自动执行。20 构造方法的特点(简述构造方法的特点)1) 构造方法的方法名与类名相同;2) 构造方法没有返回类型(修饰符void 也不能有);3) 构造方法通常被声明为公有的(public);4) 构造方法可以有任意多个参数;5) 构造方法的主要作用是完成对象的初始化工作;6) 构造方法不能在程序中显式的调用;7) 在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。2.4 应用举例2.5 UML 简介第3章 类的方法3.1 方法的控制流程10 / 461 Java 中的流程控制Java 中的流程控制主要

22、有顺序结构、选择结构和循环结构三种。顺序结构即是按照从上到下的顺序执行语句,没有转移和重复。选择结构是根据给定的条件成立与否,执行不同的语句或语句组。Java 的选择结构主要有二路选择结构(if 选择结构)及多路选择结构(switch 选择结构)两种。循环控制结构是在一定的条件下,反复执行某段程序的流程结构,被反复执行的程序称为循环体。2 循环包括几个部分1) 初始化部分:用来设置循环的一些初始条件,如计数器清零等。2) 循环体部分:这是反复执行的一段代码,可以是单一的一条语句,也可以是复合语句。3) 迭代部分:这是当前循环结束,下次循环开始执行的语句,常常用来使计数器进行增减操作。4) 终止

23、部分:通常是布尔表达式,每一次循环要对该表达式求值,以验证是否满足循环终止条件。3 break 语句的用法break 语句可用于三种情况:1) 在switch 结构中,break 语句用来终止switch 语句的执行。2) 在for 循环及while 循环结构中,用于终止break 语句所在的最内层循环。3) break 语句也可用在代码块中,用于跳出它所指定的块。4 break 与label 一同使用举例public class Examp3_7public static void main(String args)outer:for (int i=1; i=9;i+) for (int j

24、=1; j i) break;if (i=6) break outer;System.out.print( +i+*+j+=+i*j);System.out.println();11 / 465 continue 语句的用法continue 语句必须用于循环结构中,continue 语句有两种使用格式:1) 不带标号的continue 语句。它的作用是终止当前这一轮循环,跳出本轮循环剩余的语句,直接进入当前循环的下一轮。在while 或dowhile 循环中,不带标号的continue 语句会使流程直接跳转至条件表达式;在for 循环中,不带标号的continue 语句会跳转至表达式updat

25、eexpression,计算并修改循环变量后再判断循环条件。2) 带标号的continue 语句。带标号的continue 语句使程序的流程直接转入标号标明的循环层次。6 带标号的continue 语句举例public class Examp3_10public static void main (String args) outer:for (int i=1; i10; i+)inner:for (int j=1; j10; j+)if (ij)System.out.println();continue outer;System.out.print( +i+*+j+=+i*j);12 / 4

26、63.2 异常处理简介7 异常的基本概念又称为例外,是特殊的运行错误对象,是面向对象规范的一部分,是异常类的对象。Java 中声明了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法。每当Java 程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。8 错误的分类通常程序中的错误可以分成三类,即编译错误、运行错误和逻辑错误。Java 系统中根据错误的严重程度不同,将错误分为两类:1) 错误:是致命性的,即程序遇到了非常严重的不正常状态,不能简单地恢复执行。2) 异常:是非致命的,通

27、过某种修正后程序还能继续执行。9 异常的抛出和捕获当程序中发生异常时,称程序产生了一个异常事件,相应地生成异常对象。生成的异常对象传递给Java 运行时系统。异常的产生和提交的这一过程称为抛出。异常发生时,Java 运行时系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理,这一过程称为捕获。10 异常的处理对于检查型异常,Java 强迫程序必须进行处理,处理方法有以下两种:1) 声明抛出异常:不在当前方法内处理异常,而是把异常抛出到调用方法中。2) 捕获异常:使用trycatch()块,捕获到所发生的异常,并进行相应的处理。11 用户自定义异常用户

28、自定义的异常类都必须是Exception 的子类。一般的声明方法如下:public class MyExceptionName extends SuperclassOfMyException public MyExceptionName() super(Some string explaining the exception);13 / 463.3 方法的重载12 方法的重载方法的重载(overloading)是指在一个类中可以有名字相同的多个方法,但这些方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。返回值可以相同,也可以不同。第4章 类的重用4.1 类的继承1 继承继承是一种由

29、已有的类创建新类的机制,是面向对象程序设计的基石之一。一个新类可以从现有的类中派生,这个过程称为类继承。派生出的新类称为已有类的子类,已有类称为超类(父类)。2 属性的隐藏子类对从父类继承来的属性变量重新加以定义,则从父类继承的属性将被隐藏。访问被隐藏的父类域有两种方法:1) 调用从父类继承的方法,则操作的是从父类继承的域;2) 使用super.域名3 属性隐藏的例子class A1int x = 2;public void setx(int i)x = i;void printa()System.out.println(x);class B1 extends A1int x=100;void

30、 printb()super.x = super.x +10 ;System.out.println(super.x= + super.x + x= + x);public class Exam4_4Testpublic static void main(String args)A1 a1 = new A1();a1.setx(4);a1.printa();B1 b1 = new B1();b1.printb();b1.printa();b1.setx(6); / 将继承来的x 值设置为6b1.printb();b1.printa();a1.printa();运行结果:4super.x= 12

31、 x= 10012super.x= 16 x= 1001644 方法的覆盖如果子类不需要使用从父类继承来的方法的功能,则可以声明自己的方法。在声明的时候,使用相同的方法名及参数表,但执行不同的功能。这种情况称为方法覆盖。5 需要使用方法覆盖的情况1) 子类中实现与父类相同的功能,但采用不同的算法或公式。2) 在名字相同的方法中,要做比父类更多的事情。6 有继承时的构造方法应遵循的原则􀁺 子类不能从父类继承构造方法。􀁺 好的程序设计方法是在子类的构造方法中调用某一个父类构造方法。􀁺 super 关键字也可以用于构造方法中,其功能为调用父类的构造方法。􀁺 如果在子类的构造方法的声明中没有明确调用父类的构造方法,则系统在执行子类的构造方法时会自动调用父类的默认构造方法。􀁺 如果在子类的构造方法的声明中调用父类的构造方法,则调用语句必须是子类的构造方法的第一条语句。7 子类将继承父类所有的属性和方法吗?为什么?8 方法的覆盖与方法的重载有何不同?9 完成下面父类及子类的声明:1) 声明Student 类属性包括学号、姓名、英语成绩、数学成绩、计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1