面向对象程序设计复习提纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计(Java) 复习提纲(总12页)
本页仅作为文档封面,使用时可以删除
This document is for reference only-rar21 year.March
Unitl:
1.面向对象中类的概念:
类是创建对象的模版,定义了对象的属性和方法;类中的属性赋予确定的取值得到该类的一个对象,对象是类的实例。
2.阐述类属性和操作的概念和作用
属性:已被命名的类的特性,描述对象的特征
操作:是类的特征,用来定义如何激活该类对象的行为,类操作是对类属性的处理
3.面向对象中对象的概念
所要解决的现实世界的问题抽象为软件对象;需求描述问题域中拥有属性的实体或概念都可以看做对象。
4•阐述类与对象的联系
类是一组对象的描述
类是创建对象的模板,对象是类的实例
类是一种数据类型,可以使用类名称声明对象变量
5.阐述类与对象的区别
抽象和具体,模板与实例
6.类是否是数据类型与你学过的其他类型进行比较,有何不同
类是一种数据类型,称之为对象类型,所以可以使用类名称声明对象。
类可以包含多个数据类型。
7.变量UML类图中类及其类中属性和方法如何表示
Medicine
3
、-name:String >-costdouble
+getNameO :Stri ng *getCostO :double ♦toStringO :8tring
类名,类属性,类方法,各占一行
8.UML类图中类与类之间的继承关系如何表示?其代表的含义是什么?实心
线空心箭头;指一个类自动拥有另一个类的所有数据和操作。
9.UML类图中类与类之间的关联关系如何表示?其代表的含以是什么?
单向为实心箭头,双向为实心直线;指一个类拥有另一个类的一到多个对象
10.如果UML类图中类A与类B之间是1对多的关联关系,关联属性的数据类
型是什么
类B对象的容器类型
11.如果UML类图中类与类之间1对1的关联关系中,关联属性的数据类型是
什么
被关联类的对象类型
12.根据用户需求,建立面向对象设计方案-UML类图的方法和步骤是什么?
分析需求,找出类,类之间的关系,类的属性,定义类的方法,绘制类图
13.—般情况下,每个类都应该提供哪些常用的方法?
増删改查,add, remove, set, get
14•—般情况下,包含容器的类应该提供哪些常用的方法?
获取容器,返回容器迭代器或迭代器接口
Unit2:
1.撰写java类的具体语法
2.根据Java类,Java对象变量如何声明Java对象如何创建与使用
类名变量名(参数);new方法
3.什么是兀腹引用(变量),其内涵是什么?
地址,其值指向对象所在内存中的位置。
4.什么是实例变量实例变量的内存分配和访问有什么特征
实例变量是类内的属性,在堆中分配了一块内存,有自己独立的内存空间,不共享
5.什么是静态变量静态变量的内存分配和访问有什么特征
静态变量是加了static的属性,分配的内存在所有对象共享的内存空间
6・什么是实例方法实例方法有什么特征实例方法是如何访问的
实例方法是类内的方法,能访问实例对象和静态对象
7.什么是静态方法?静态方法有什么特征?静态方法是如何访问的?
静态方法是加了static的方法,不能直接访问实例变量,只能访问静态变量8・什么是方法的重载?
在一个类中定义多个同名的方法,但每个方法具有不同的参数类型或个数9.Java的访问权限限制包含哪三个方面,其内容分别是什么?
Java包:位于同一个包内的类可相互引用,ng包中的类可直接引用,
其他都要import语句或类的全名
Java类:缺省时(friendly)该类只能被同一个包里的访问和引用,public时
任意
Java类成员:private时该类自身;缺省时包内;protected时该类自身、包内、其他包中该类的子类;public时任意
10.Java包的概念与作用?
Java 包(package)
中存放的是一个或多个相关类的集合,用来组织、管理类,解决类命名冲突的问题;包对应于文件系统的目录层次结构,它通过来指明目录的层次,类位于包中,即类位于相应的文件夹中
11.Java类的访问权限及含义?
缺省时(friendly)该类只能被同一个包里的访问和引用,public时任
意;private没有任何类能访问使用;protected成员允许其子类访问,无论子类是否与基类位于同一个包。
12.Java类成员的访问权限及含义?
private时该类自身;缺省时包内;protected时该类自身、包内、其他包中该类的子类;public时任意
13.如何应用String类实现与字符串处理有关的功能?
连接号“+”或类String的静态方法valueOf()可以将数值转化为字符串
chart]
=可以比较基本数据类型的数值,建议用equals
14.如何应用StringTokennizer类完成与字符串解析有关的任务?
public StringTokenizer(String str, String delim)
public String nextTokenO
public boolean hasMoreTokens()
public int countTokens()
15.控制台读写如何编程?
〃输入输出流
private static BufferedReader stdin = new BufferedReader(
new InputStreamReader(System. in));
private static PrintWriter stdOut = new PrintWriter(System, out, true);
private static PrintWriter stdErr = new
PrintWriter(System, err, true);
String input = stdln. readLine();
〃返回从控制台读取的字符串类型的对象,读取一整行
16.哪几个关键构成了Java异常处理机制的基本框架?
throw try-catch throws
17.throw关键字的用法及含义
throw new Exception();
当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后抛出。
18.try-catch关键字的用法及含义?
try代码块中写执行代码,catch代码块写它能捕获的异常类型。
多个catch从上到下只执行一个。
finally块必须与try或try/catch块配合使用
无论是否发生异常,finally都一定执行(除非Java虚拟机中途终止运行)
19.Throws关键字的用法及含义?
本类无try-catch语句处理这种异常,在类名后使用throws加异常类声
明该异常交给上一级类处理
20•编译器检查的异常(即checked Exception)与不做检查的异常(即unchecked Exception) 有什么区别?
checked Exception: Error, RuntimeException,
NumberFormatException, NullPointerException, 11 legalArgumetException 必须进行异常处理;unchecked Exception 不需要
21.什么样的注释是Javadoc注释?
/*♦
* body text
*/
或者/** body text */
22.类的Javadoc注释有哪些常用标签?
©author ©version Sparam ©return ©exception(©throws) ©see
23.类成员的Javadoc注释有哪些常用标签?
24.如何生成Javadoc注释?javadoc命令
25.子类继承基类成员后,对继承成员的访问权限有什么规定?
基类中公有,子类中仍然公有,在子类中可以随意使用,基类中的私
有,子类中也私有,子类的对象不可以存取基类的私有成员
26.什么是向上转型?
子类对象当基类对象用,但不能调用子类里特有方法
27.什么是向下转型?
把基类引用显示地强制转化为子类型对象,并非总是合法的。
基类引用指向的是一个子类的对象则可以,其他情况不行(instanceof操作符判断)
28.如果一个对象向上转型,赋值给一个基类型的变量,那么通过该基类型的
变量是否可以访问子类所特有的属性或方法?
29•什么是方法的覆写?
在子类中定义一个与基类方法名、返回类型和参数类型均相同但方法体不同的方法称为方法的覆写
30•方法覆写后,通过基类型的变量去调用该方法,可能发生什么情况?自动调用覆写的方法
31.equals方法如何覆写?
public boolean equals(Object obj) {
• • •
}
32.toString方法如何覆写?
33.什么是变量的多态性?子类的对象都可以赋给基类类型的变量
34.什么是方法的多态性?通过基类类型的变量调用方法时候,根据基类类
型的变量指向的具体类型,绑定具体类型对象的方法体去执行
Java中数组声明的语法要求是什么?声明时候不允许指定数组大小35.遍历Java中数组的方法?
for (j=0 ; j<a. size() ; j卄)
Iterator<String> e=a. iterator();
While (e. hasNext ())
for(String str:a)
36.遍历ArrayList容器有哪三种方法
37.Java抽象方法如何定义?
public abstract void sleep(int hours) ;//无方法体
38.Java抽象类如何定义?
39.public abstract class className { }
/**只可作为基类,不能调用其构造函数,继承时实现所有方法才能实现非抽象类和/
40.Java抽象类与一般类的相同点是什么?
都是类,内部定义了成员
41.Java抽象类与一般类的不同点是什么?
—般类里只能有非抽象方法而抽象类里有抽象或非抽象方法,一般类可以实例化而抽象类不可以
42.Java接口如何定义?
public interface Device {} 〃无构造方法,无方法体;所有实现interface 的方
法都必须被声明为public.
43.Java接口与一般类、抽象类的相同点是什么?
都不能直接被实例化而要子类实现抽象方法后才能,都有抽象方法,都提升了程序的扩展性
44.Java接口与一般类、抽象类的不同点是什么?
抽象类可以定义成员变量而接口定义的均是静态常量,抽象类可以有自己的实现方法而接口的方法均是抽象的方法,抽象类可以定义构造函数而接口不包含,其他类只能继承一个抽象类而可以实现多个接口
45.Java接口中的多继承是什么含义?
Java类之间不允许多继承,只可以单继承和实现多接口。
但接口可以继承多接口
46.-般类、抽象类和接口的应用场合分别是什么?
Unit3:
1.什么情况下使用单一实例模式(Singleton Pattern)
—个类仅允许一个对象被创建和使用;一个类属性不能被修改;一个类只有方法没有属性
三要素:一个数据类型为类自身的静态私有属性,一个私有构造方法,—个公共静态方法返回唯一对象
2.单一实例设计模式的设计方案?
3.单一实例设计模式如何编程实现?
private static XMLSalesFormatter singletoninstance;
private XMLSalesFormatter() {}
public static synchronized XMLSalesFormatter getSingletonInstance()
if (singletoninstance == null) { singletoninstance = new
XMLSalesFormatter();
}
return singletoninstance;
}
4.什么情况下使用策略模式
多个类中方法实现同样功能,方法声明特征一样,方法体不同
5.策略模式的设计方案?
6.策略模式的编程实现?
7.策略模式的优势是什么?
用户需要变化时,修改量很少,而且修改快速。
&面向对象设计的原则是什么?
1.找出应用中可能需要变化之处,把它们独立出来,把变化的部分
“封装"起来
2.针对接口编程,针对超类型编程
9・教材中的其它设计模式包括哪些?他们的设计方案分别是什么?
工厂模式,将变化的代码封装在一个新类中,用新类来创建对象;观察者模式;适配器模式:适配器将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Unit4:
1.字节输入流是哪个类?常用功能包括哪些
InputStream ; read, close
子类为介质流:FileInputStream(String name) StringBufferlnputStream ,append。
toStringO BjleArraylnputStream, System.in
2.字节输出流是哪个类?常用功能包括哪些
OutputStream: write, flush,
子类为介质流:Byte Array OutputStream
FileOutputStream
3・字符输入流是哪个类?常用功能包括哪些Reader: read, close
子类:FileRcader, StingReader, CharArrayReader
4.字符输出流是哪个类?常用功能包括哪些
Writer: write, flush
子类:FileWriter, StingWriter, CharArrayWriter
5.字节输入介质流有哪些,它们的常用的功能包括哪些?
子类:FileInputStream(String name)
StringBufferlnputStream ,append(), toStringO
BjleArraylnputStream, System.in
6.字节输出介质流有哪些,它们的常用的功能包括哪些?
子类:ByteArrayOutputStream
FileOutputStream
7.字节输入过滤流有哪些,它们的常用的功能包括哪些?
FilterlnputStream〃继承和关联inputStream
BufferedInputStream, DatalnputStream〃读取基本类型(继承FilterlnputStream)
8.字节输出过滤流有哪些,它们的常用的功能包括哪些?
FilteiOutputStream//继承和关联outputStream
BufferedOutputStream 〃可以调用flush()来清出缓冲区内容。
DataOutputStream
PrintStream, System.out
9.Java IO的原理:介质流与过滤流之间的关系是什么?
10.Java介质流与过滤流之间的关系用到了什么设计模式?
Decorator设计模式
11.字符输入介质流有哪些,它们的常用的功能包括哪些?
FileReader, StingReader, CharArrayReader
12•字符输出介质流有哪些,它们的常用的功能包括哪些?
FileWriter, StingWriter, Char Array Writer
13•字符输入过滤流有哪些,它们的常用的功能包括哪些?
Bufferreader
14.字符输出过滤流有哪些,它们的常用的功能包括哪些?
BufferWriter,,PrintWriter
15.面向字节流的基本数据类型数据的读写如何编程?
DatalnputStream in =
new DataInputStream(
new BufferedInputStream(
new FileInputStream(M Data.txt M);
DataOutputStream out =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(H Data.txt H);
16.面向字符流的文件和控制台的读写如何编程
读控制台
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String input = stdin.readLine();
写控制台:
PrintWriter stdOut = new PrintWriter(System.out, true);
stdOut. printing”);
读文件:
BufferedReader filehi = new BufferedReader(new FileReadei'(u fileiiame n));
String line = fileIn.readLine();
写文件:
new PrintWriter(new FileWnterffilename'-));
fileOut.println(H A line of output/1);
参考:private void writeFile(String filename. String content) throws IOException { File file=new File(filename);
if(!file.exists()) {
file.createNewFile();
}
PrintWriter fileOut = new PrintWriter(file);
fileOut.println(content);
fileOut.close();。