非精简的java.docx
- 文档编号:11970361
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:19
- 大小:91.72KB
非精简的java.docx
《非精简的java.docx》由会员分享,可在线阅读,更多相关《非精简的java.docx(19页珍藏版)》请在冰豆网上搜索。
非精简的java
非精简版的java
————————————————————————————————作者:
————————————————————————————————日期:
Java程序设计复习提纲
一、题型与分值
计算机科学与技术
信息管理与信息系统
单项选择题
每小题2分,共15小题,共30分
单项选择题
每小题2分,共15小题,共30分
填空题
每小题1分,共10小题,共10分
填空题
每小题1分,共10小题,共10分
简答题
每小题5分,共4小题,共20分
简答题
每小题5分,共4小题,共20分
程序填空题
每小题2分,共5小题,共10分
程序填空题
每小题3分,共5小题,共15分
程序阅读题
每小题3分,共4小题,共12分
程序阅读题
每小题3分,共4小题,共12分
程序设计题
第1小题8分,第2小题10分,共18分
程序设计题
每小题13分,共1小题,共13分
二、各章复习要点
第一章
1、理解Java程序的工作原理(编写Java应用程序的步骤)(P10)
Java的特点:
(简单、面向对象、分布式、高效解释执行、健壮、安全、结构中立、可移植、高效率、多线程、动态、工作流程)
编写Java应用程序步骤:
1、创建Java源程序
2、编译源程序
3、运行class(字节码)文件
2、理解Java字节码文件的含义及作用。
JAVA字节码文件的含义及作用是:
字节码文件以class作为扩展名。
Java解释器,即“java”,读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程。
第二章
1、程序的三种基本结构:
顺序结构、分支(选择)结构、循环结构。
2、标识符的命名规则(P36)。
标识符
用来标识类名、方法名、类型名、文件名的有效字符序列成为标识符。
简单的说,标识符就是一个名字。
Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,也不能是Java中的保留关键字。
命名标识符的规则。
标识符严格区分大小写。
标识符是由字母、数字、下划线(_)和美元符号($)组成的字符序列。
标识符必须以字母、下划线(_)或美元符($)开头而不能以数字开头。
标识符不能是关键字或保留字。
3、运算符的优先级(P40)。
运算符优先级
4、基本数据类型(P41),及数据类型的转换规则(P44)。
Java的基本数据类型是Java语言的重要内容,分别是:
整型、字节型、浮点数型、字符型以及布尔型
数据类型的转换规则有两种转换类型:
自动类型转(隐式转换)换和强制类型转换(显示转换)
:
1、自动类型转换:
数值型字符型转换为整型:
char->int之间的转换:
byte->short->int->float->long->double2、强制类型转换
5、程序控制语句:
分支语句(if、ifelse、switch)、循环语句(for、while、dowhile)、跳转语句(break跳出当层循环、continue跳出当次循环、return跳出方法,并为方法返回相应值)。
(P45~P58)
6、访问数组中的元素。
(P61)
访问数组的元素是通过下标进行访问的。
第三章
1、面向对象程序设计(OOP)(P83)的特征:
抽象性、封装性、多态性和继承性。
面向对象是一种新的程序设计范型(paradigm)。
其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。
面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
【主要任务】
把分析阶段得到的问题域需求转变成符合要求的、抽象的系统实现方案。
面向对象设计分为两个阶段:
系统设计:
确定实现系统的策略和目标系统的高层结构
对象设计:
确定解空间中的类、关联、接口形式及实现服务的算法
2、如何定义类、方法(P84)。
类是对象的原型
类是概念模型,定义对象的所有特性和操作.
对象是实际的实体,真实的模型.
类是有共同特性(属性)和操作(行为)定义的实体,类是用于组合各个对象所共有操作和属性的一种机制。
类是具有共同属性和行为的对象的抽象。
类可以定义为数据和方法的集合。
对象具有特殊属性和行为方式的实体。
类定义:
定义一个类时,就声明了该类确切的形式和属性。
通过指定类中包含的数据和对这些数据进行操作的代码来定义一个类。
类的定义格式为:
[类修饰符]classname{
typevariable1;
…
typevariableN;
typemethodname1(parameter-list){
//方法体
}
…
typemethodnameN(parameter-list){
//方法体
}
}
类的名称要符合标识符的命名规则,
不能为Java中的关键字。
不能包含空格或点号“.”,可以以下划线“_”、字母或“$”符号开头。
类的名称的第一个单词的第一个字母通常是大写,第二单词的第一个字母大写,以此类推。
在类体中,包含的是成员变量和成员方法,成员变量通常表示一个类所具有的属性。
通过声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。
类的各种功能操作都是方法来实现,属性只不过提供了相应的数据。
一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回类型。
其结构如图3-1所示:
定义方法的一般格式:
[access]typemethodname1([parameter-list]){
//方法体
}
this关键字的用法(P93~94)。
this关键字是Java中常用的关键字,可用于任何实例方法内,指向当前对象。
也可指向对其调用当前方法的对象或在需要当前类类型的对象引用时使用。
3、理解静态变量和静态方法(P96~97)。
在Java语言中,没有实际意义上的全局变量,变量最大作用域范围就是类。
如果两个类或多个类之间需要共享数据,单纯依靠参数进行传递,就会花费大量的代码去完成。
实际上,我们完全可以利用Java语言的静态变量实现数据的共享。
在Java语言中,被static关键字修饰的块、方法和变量被称为静态块、静态方法和静态变量。
类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。
我们知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态成员就是在类被加载时就被分配相应的内存,故在程序运行期间就会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。
也就是说,无论我们为该类创建了多少个实例化对象,为静态成员分配的内存就一直存在,任一个实例化对象都可以访问和改变它。
静态变量
静态变量由静态修饰符static来修饰,是类的变量,但不属于任何一个类的具体对象,也就是说,对于该类的任何一个具体对象来说,静态变量是一个公共的存储单元,任何一个类的对象在访问这个存储单元时,都会获得同一个数值,同样,任何一个类在修改这个存储单元时,也都会完成相同的操作。
这样我们就可以理解成,所有对象共享了静态变量。
静态变量的名称相对应实例变量而说,实例变量就是我们在前面创建的普通变量,这些变量的数据属于一个实例化变量。
静态变量的副本只有一个。
静态方法
静态方法也是由static修饰符来修饰的,静态方法是属于整个类的方法,而不用static修饰的方法,也就是实例方法,是属于某个具体类对象或者实例的方法。
非静态方法是属于某个对象的方法,是在这个对象被创建时,系统为对象的方法在内存中分配单独的专用空间;而静态方法则是属于整个类的方法,它随着类的定义而在内存中进行分配,不属于任何一个对象。
静态方法是属于整个类的,因此它不能对某个对象的成员变量进行操作和处理,而只能对某个类的成员变量进行操作和处理。
也就是说,静态方法只能处理静态数据。
调用静态方法时,最好使用类名做前缀进行调用,而不是用具体的某一个具体的对象名,因为静态方法是属于整个类的方法。
在使用静态方法时,应注意下面三个原则:
类的静态方法只能访问其他的静态成员
静态方法不能使用this和super
静态方法不能被覆盖为非静态方法
4、如何实现类的继承(P99)。
继承是面向对象语言的主要特征之一。
继承(Inheritance)可以使程序的整个架构具有相当的弹性,更具有层次,并提高了代码的可重用性,并减少了设计程序的难度。
在本节中,将会详细介绍继承的概念和使用。
继承的语法格式为:
classsubClass-nameextendssuperClass-name
{
//bodyofclass
}
5、super关键字的用法(P103)。
讲到继承,我们不得不要熟悉一个关键字super,super关键和this作用类似,能够使被屏蔽的成员变量或者成员方法变为可见,或者说用来引用被屏蔽的成员变量和成员方法。
不过super是用在子类中,目的是访问直接父类中被屏蔽的成员,注意是直接父类(就是类之上最近的超类。
super有两个用途,一个是访问父类的构造函数,一个是访问被子类的成员覆盖的父类的成员,如被重写的方法和隐藏的变量。
在子类中使用super访问父类的构造函数的时候,该语句必须是要子类的构造函数的第一个语句
6、方法重写(P101)和方法重载(P94)。
在Java中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。
在这种情况下,该方法就被称为重载(overloaded),这个过程称为方法重载(methodoverloading)。
方法重载是Java实现多态性的一种方式。
调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。
如果以前从来没有使用过一种允许方法重载的语言,这个概念有点不好理解,但方法重载是Java最激动人心和最有用的特性之一。
方法重载是让类以统一的方式处理不同类型数据的一种手段。
当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版本。
因此,每个重载方法的参数的类型或数量必须是不同的。
虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。
当Java调用一个重载方法时,参数与调用参数匹配的方法被执行。
方法重写:
在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。
但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
方法重写又称方法覆盖。
若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。
方法重载:
方法重载是让类以统一的方式处理不同类型数据的一种手段。
Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。
在使用重载要注意以下的几点:
在使用重载时只能通过不同的参数样式。
不能通过访问权限、返回类型、抛出的异常进行重载。
方法的异常类型和数目不会对重载造成影响。
对于继承来说,如果某一方法在父类中的访问权限是priavte,那么就不能在子类对其进行重载,如果定义,也只是定义了一个新方法,而不会达到重载的效果
第四章
1、包的声明(P122)和引用(P123)。
包的声明
包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件有助于避免命名冲突。
在使用许多类时,类和方法的名称很难决定。
有时需要使用与其他类相同的名称。
包基本上隐藏了类,并避免了名称上的冲突。
包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类。
包将类名空间划分为更加容易管理的块,包既是命名机制也是可见度控制机制。
在一个包里通常包含类、接口和子包。
明白了包的概念之后,就可以为我们的Java程序指定所在的包了。
例如,将本章的所有实例放入到一个指定包中。
创建一个包,应使用关键字package,包名通常是小写。
现在创建一个案例,演示包的创建和使用包中的类。
Java提供包来管理类,包被设计与文件系统结构相对应,如果包名设置为onlyfun.cate,则该类可以在onlyfun目录下cate找到。
包的引用
如果使用package来创建和管理包,则编译过后package所设置的名称就称为类名称的一部分。
如果要在其他程序中,调用包中的Java类。
需要使用import关键字,告知编译器所要使用的类是位于哪一个包中。
Java语言中提供类许多包,如java.lang包、java.awt包、java.util包、java.io包、java.sql包、javax.swing包、包等。
这些包每个存储的是某一个方面常用的类,如lang包存储的是Java的基本语法的类,awt包中存储的是图形用户界面方面的包,util包存储的基本工具类,io包存储的文件方面的类,sql包存储的是操作数据库方面的类。
2、几种访问控制修饰符(P125)以及他们的访问权限。
(P126)
信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因。
在我们编写程序时,有些核心数据往往不希望用户能够调用,需要控制这些数据的访问。
对类成员访问的限制是面向对象程序设计的一个基础,因为这有利于防止对象的误用。
只允许通过一系列定义完善的方法来访问私有数据,就可以(通过执行范围检查)防止数据赋予不正当的值。
例如,类以外的代码不可能直接向一个私有成员赋值。
同时,还可以精确的控制如何以及何时使用对象中的数据。
因此,当正确实现对类成员的方法控制后,类就可以创建一个可用的“黑箱”,其内部动作不会被打开而任意篡改。
通过使用访问控制修饰符来限制对对象私有属性的访问,可以获得三个重要的好处:
防止对封装数据的未授权访问。
有助于保证数据完整性。
当类的私有实现细节必须改变时,可以限制发生在整个应用程序中的“连锁反应”。
访问控制符是一组限定类、属性或方法是否可以被程序里的其他部分访问和调用的修饰符。
类的访问控制符只有一个public或默认,方法和属性的访问控制符有四个,分别是public、private和protected,另外还有一种没有定义专门的访问控制符的默认情况。
3、接口的声明(P130)和实现(P131),以及接口的回调(P132)。
接口声明:
在Java中,使用interface关键字定义接口。
接口中的方法只能是声明,不能是具体的实现。
定义一个接口的语法格式如下所示:
//有方法的接口
publicinterfacemyinterface{
publicvoidadd(intx,inty);
publicvoidvolume(intx,inty,intz);
}
//定义程序使用的常量的接口
publicinterfacemyconstants{
publicstaticfinaldoubleprice=1450.00;
publicstaticfinalintcounter=5;
}
接口实现
接口定义好之后,就可以使用了。
在使用前需要编译接口,其编译方法和类的编译一样,其格式如下所示:
javacmyinterface.java
接口编译完成之后,会形成class文件,即字节码文件。
下面就可以直接使用该接口了。
如果某个类需要继承接口,则需要使用关键字implements,其格式如下所示:
classdemoimplementsmyinterface
如果有一个以上接口被实现,则用逗号隔开接口名称,如下所示:
classdemoimplementsMycalc,Mycount
接口回调是把使用实现某一接口类创建对象的引用,赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。
实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
第五章
1、字符串类的常用方法(charAt、compareTo、equals、length、indexOf、replace、subString、valueOf)(P148)
无论在任何语言中,字符串都是程序要操作的主要对象,基本上可以作为程序数据的代码。
在Java中,String类提供了大量的方法,可以实现字符串多种操作,如比较、检索和替换等。
常用方法根据其作用可以分为:
字符串比较、字符串检索、字符串替换、字符串截取和类型转换等五类。
字符串比较
对文本进行操作时,字符串比较是使用较频繁的一组操作。
字符串对象调用String类中的equals方法,比较当前字符串对象的实体是否与参数指定的字符串的实体相同。
字符串对象调用String类中的equalslgnoreCase方法,比较当前字符串对象与参数指定的字符串是否相同,比较时忽略大小写。
字符串对象调用String类中的startsWith方法和endsWith方法判断字符串的前缀和后缀是否是指定内容。
字符串对象使用String类中的compareTo方法,按字典顺序和参数字符串比较大小。
字符串对象可以使用String类的compareToIgnoreCase方法进行忽略大小写比较大小。
该方法的使用和compareTo方法相同。
字符串检索
String类中一组indexOf方法,用来检索由参数指定的字符或字符串在字符串中的索引。
字符串检索操作是处理字符串很常用的功能,因此须要牢固掌握。
字符串替换
String类中的一组replace方法返回一个新的字符串,它是通过用新的字符串(或字符),替换此字符串中出现的所有指定子字符串(或字符)而得到的。
字符串截取
字符串对象调用String类的substring方法可以对字符串进行取子字符串的操作:
Stringsubstring(intbeginIndex)方法把指定索引后面的子字符串作为返回值返回;Stringsubstring(intbeginIndex,intendIndex)方法把指定的起始索引值与结束索引值之间的子字符串作为返回值返回。
类型转换
String类中的一组valueOf方法返回一个字符串对象,该字符串是参数的字符串表示形式。
2、时间日期类的常用字段(YEAR、MONTH、DAY_OF_MONTH、DAY_OF_WEEK)和方法(after、before、compareTo、equals、toString)(P158)
在Java中获取当前时间,可以通过多个类来完成,如使用java.util.Date、java.sql.Date和java.util.Calendar类。
java.util.Date类来对日期和时间的系统信息进行封装,java.sql.Date是sql包对时间的封装,java.util.Calendar类将根据默认的日历系统来解释Date对象。
java.util.Date
Date类有两个不过时的构造函数,如下所示:
Date()
Date(longdate)
第二个构造方法中的参数表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:
00:
00GMT)以来的指定毫秒数。
使用Date类的无参数构造方法创建的对象可以获取本地当前时间。
Date对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。
java.util.Calendar类
Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:
00:
00.000,格里高利历)的偏移量。
Calendar类还为实现包范围外的具体日历系统提供了其他字段和方法。
这些字段和方法被定义为protected。
与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。
Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化:
CalendarrightNow=Calendar.getInstance();
Calendar对象可以调用set()方法将日历翻到任何一个时间,当参数year取负数时表示公元前。
Calendar对象调用get()方法可以获取有关年、月、日等时间信息,参数field的有效值由Calendar静态常量指定。
第六章
1、异常产生的原因。
(P175)
程序的三种错误:
语法错误:
编写代码的过程可能输入的字符错误,不符合相应的命令格式等。
运行时错误:
程序在运行中出现意料不到情况,如除数为零,数组越界等。
逻辑错误:
程序的运行结果和我们预想的结果不一致,这是一种难以调试的错误。
产生异常的原因:
Java内部错误发生时,Java虚拟机产生的异常。
编写的程序代码中的错误所产生的异常。
通过throw语句手动生成的异常。
Java处理异常的方法:
Java通过面向对象的方法来处理异常。
Java中的异常是类。
Java程序中产生的异常是对象。
在一个方法的运行过程中,如果发生了异常,则这个方法产生代表该异常的一个对象,并把它交给运行时系统,运行时系统寻找相应的代码来处理这一异常。
ava中处理异常,有两种方式。
try-catch语句
throw和throws
2、try-catch语句在程序中捕获和处理异常。
(P176)
在Java中,通常是采用try-catch语句捕获异常并处理。
捕获异常是一种积极的处理异常的方式。
语法如下:
try{
statement_block1
}
catch(ThrowablethrowableObj){
statement_block2
}
classErrorCatch{
publicstaticvoidmain(Stringargs[]){
try{
inta=0;
intb=42/a;
}catch(ArithmeticExceptione){
System.out.println("算术异常捕获.");
}
}
}
一个catch语句也可以捕捉多个异常类型,这时它的异常类型参数应该是这多个异常类型的父类,程序设计中要根据具体的情况来选择catch语句的异常处理类型。
当用多catch语句时,catch语句块在次序上有先后之分。
这是因为从最前面的catch语句块依次先后进行异常类型匹配。
3、finally语句(P181)
finally关键字是对Java异常处理模型的最佳补充。
finally结构使代码总会执行,而不管有无异常发生。
使用finally可以维护对象的内部状态,并可以清理非内存资源。
finally语句和try语句一起使用,基本语法如下:
try{
statement_block1
}
catch(ThrowablethrowableObj){
stateme
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精简 java