面向对象—概念先行

面向对象—概念先行
面向对象—概念先行

第一章:

(1)抽象。从许多事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程。Java中抽象包括过程抽象和数据抽象。

(2)封装。将对象的属性和行为分别用数据结构和方法描述,并将它们绑定在一起形成一个可供访问的基本逻辑单元。

(3)对象。用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。

自治性、封闭性、通信性、被动性、暂存性

(4)类。一组具有相同属性特征的对象的抽象描述。类是对象抽象的结果。对象是类的具体化,是类的实例。

依赖、聚合、泛化

(5)继承。是类之间的一种常见关系。一个类的定义可以基于另一个已存在的类,即子类基于父类,从而实现父类代码的重用。它为共享数据和操作提供了一种良好机制。(6)多态。不同类对象收到同一个消息可以产生完全不同的响应效果。在java程序中,指不同的对象调用同一个签名的成员方法,却执行不同的代码段的现象。

(7)结构化程序设计方法。自顶向下、逐步求精;模块化;语句结构化。

(8)面向对象程序设计语言。提供描述面向对象方法所涉及的类、对象、继承、多态等基本概念的程序设计语言。

(9)面向对象程序设计的四大特征:抽象性、封装性、继承性、多态性。

(10)UML。统一建模语言的缩写(unified modeling language)一种面向对象建模的图形表示法。利用它可以从各个侧面描述目标系统的特征,为开发出良好软件系统奠定基础。

第二章:

(11)Java语言所支持的数据类型。基本数据类型、引用数据类型。

(12)Java程序设计语言的特征。

简捷性、面向对象、分布式、健壮性、结构中立、安全性、可移植性、解释执行、高能性、多线程、动态性。

(13)Java的基本数据类型和C语言的相比不同之处。

Java语言中,8种基本数据类型的数值所占的二进制位数是固定的,与具体的软硬件环境无关;每种数据类型都有一个默认的初值,使声明的成员变量任何时刻都有一个确定的指。

第三章:

简答题:

(14)类包括两大类:a.Java类库中提供的大量标准类。

b.用户自定义的类。b.1全新的类b.2通过继承的类。

(15)类成员分两种:静态的(类成员)包括类变量、类方法;非静态的(实例成员)包括实例变量和实例方法。

(16)类变量。在加载类的时候创建一个副本,不管将来创建多少个类对象,都将共享一个副本。所以静态成员变量和类功存亡,而与具体对象无关。

(17)类方法。只能对该方法中的局部变量或者类变量进行操作,而不能引用实例变量或调用实例方法。因为类变量和类方法在加载类后就存在了。

(18)实例变量和实例方法。每个变量和方法唯一地与一个对象向关联,即在创建某个对象的时候,同时为每个对象创建所有实例变量的副本,关联所有的实例方法。(19)成员方法的重载。在一个类中,同一名称的的成员方法可以被定义多次的现象。(20)构造方法主要作用。初始化成员变量,而不需要返回任何值。

(21)浅拷贝。按照二进制位串进行对象拷贝,新创建的对象严格地复制原对象的值。(22)深拷贝。对对象的完全拷贝。使拷贝后的对象双方各自拥有不同的副本。P129(画图)

选择题:

(23)每个文件中最多只能有一个类被声明为public。

(24)如果内部类没有声明静态,则不能有静态成员。

(25)每个数据类型有默认的初始值:boolean的为false;引用类型的为null。

(26)为了支持成员方法重载,调用成员方法不单纯以方法名称为依据,而是利用方法名称和参数表共同唯一的标识每个成员方法。(签名:方法名称和参数表的统称)(27)构造方法不允许定义返回类型,名称与类的名称相同。

(28)对象可以作为数组的元素、类的成员,也可以出现在成员方法的参数表和方法体中。(29)Java语言提供了“自动回收垃圾”的机制。Finialize()方法是挥手对象前系统自动调用的最后一个方法。

(30)P125访问属性一定要好好掌握。

(31)类变量不能在构造方法中初始化,而专门有个类变量初始化器可以初始化类变量。第四章

简答题:

(32)子类中声明与父类具有相同的签名的成员方法,这些成员方法覆盖了父类相应的成员方法,称为成员方法的覆盖。

(33)子类中声明的某个成员方法只是与父类中某个成员方法名字相同,称为成员方法的重载。为了扩展父类某项操作的的接口形式。

(34)多态性实现的条件。

a.多态性是作用于子类,他是依赖于层次结构中一项新功能。

b.相应的成员方法必须同时包含在父类和子类中,且对应的成员方法签名完全一样。(35)接口。一种特殊的抽象类,其内部只允许包含常量和抽象方法。使用接口的主要目的就是为了统一常量的管理、规范公共的操作接口。

(36)包。类和接口的集合。

选择题:

(37)Super()可以调用父类的构造方法,但一定要把它作为子类构造方法中的第一条语句。(38)抽象方法是不完整的成员方法,因此只能在不能被实例化的抽象类中出现。抽象类不能被实例化,即不能创建抽象类的对象,但可以声明抽象类的引用。

(39)任何包含抽象方法的类都必须被定义为抽象类。

(40)抽象类主要用来派生子类,且在子类中必须覆盖抽象类中所有的抽象方法。

(41)Static、final、private不能应用于抽象方法。

(42)接口常量默认为public static final 成员方法默认为public abstract。

(43)一个包中不允许有相同名称的类文件,但对于不同包中的类文件没有这个限制。(44).*表示加载当前报中所有的类,而不表示加载其中的子包。

第五章:

简答题:

(45)任何系统故障或程序代码中隐藏的错误,都会影响正常程序的运行,通常这些现象

称为异常。在java语言中,异常是指影响程序正常运行的错误,而不包含导致程序运行结果不正确的逻辑错误。

(46)异常处理过程。a.通知用户发生异常

b.保存当前已经完成的所有结果

c.允许用户安全的退出应用程序

(47)处理异常经历三个主要阶段。a.抛出异常b.捕获异常c.处理异常

(48)抛出异常。在程序运行过程中,一旦发生了一个可识别的错误,就立即创建一个与该错误相对应的异常类对象,并将其作为参数抛给处理该异常的代码块的过程。(49)捕获异常。负责处理异常的代码块捕获或截获被抛出的异常对象的过程。

Try-catch-finally语句实现。

(50)处理异常有两种方式。a.在产生异常的方法中处理异常

b.将异常抛给调用该方法的代码

选择题:

(51)Throwable是所有异常类的父类。

(52)Error类主要标识了Java运行系统的内部错误和资源耗尽等异常。这些异常不需要应用程序直接处理,而是交给操作系统。

(53)当正在执行的线程意外地终止时,抛出ThreadDeath异常。为了有效控制现成的撤销,应用程序一定不要捕获这个异常。

(54)Exception类主要包含由应用程序错误产生的异常。包括编写程序代码错误:RuntimeException和由输入输出错误:IOException

(55)未检查异常包括:Error类和RuntimeException类。其余的异常称为“已检查异常”(56)Java编译器要求应用程序必须对所有“已检查异常”提供异常处理。

(57)一个高质量的应用程序应该能够捕获程序运行时抛出的所有异常。

(58)不管是否发生异常,进入try语句块后,都将会执行finally子语句。

(59)Catch子句的排列顺序十分重要。通常为了避免遗漏异常类型的捕获,应该设置一个涵盖范围大的异常类型的catch子句放在其他catch子句之后。(Exception)

(60)自己声明异常类时,必须定义为Throwable类的子类,最好把异常类定义为Exception 类的子类。异常类还要包含一个默认的构造方法和一个参数为String对象的构造方法。

第七章

简答题:

(61)输出流。把程序中的数据输出到输出设备。需要把数据以字节序列的形式写入流中,此时数据源是程序,数据目标是输出设备。

(62)输入流。把外部数据输入到程序中。数据源是输入设备,数据目标是程序。

(63)字节流。以二进制字节序列的形式写数据,写到流中的数据与内存中的形式完全一样。

(64)字符流。以字符的形式写数据时,由于Java中的字符采用Unicode编码,占据16个二进制位,因此每个字符有两个字节,先写高字节,再写低字节。

(65)串行化。在外部永久性文件中存放或检索对象的过程。它使对象信息的永久性保存更加规范、更加方便。Serializable

选择题:

(66)流机制的好处是可以使程序中有关输入输出的代码与设备无关。流的基本处理单位是字节。

(67)通常用字节流读取数据文件;用字符流来读写文件文本。

第八章:

简答题:

(68)泛型。一种抽象级别更高的程序设计机制,它可以将不同类型对象的同一种操作加以抽象、封装,使其享有更广泛的代码重用性。

Public class pair{

Private T first;

Private T second;

}

(69)包装器。每一种基本数据类型都有的一个对应的类。int—Integer;char—Character (70)自打包。在应该提供包装器对象的地方给出了基本数据类型,Java虚拟机将其打包成包装器对象。int value=200;—Integer value=new Integer (200);

(71)自拆包。int value=new Integer(30);—int value=30;

选择题:

(72)实例化泛型类时不允许带入基本数据类型。Pair是错误的。

Pair是正确的。

(73)包装器都是final类,即不能再定义子类,并且一旦创建这个类的对象,其包含的值是不允许更改的。

(74)Public class Interval虽然Comparable是接口,但这里用的是extends而不是implements。

(75)Set接口用来描述无重复元素的集合。TreeSet描述了一个按升序排列的集合;HashSet 以映射方式表示集合。

(76)List接口是按顺序存储元素的集合。Arraylist采用一块连续的存储空间存储元素;

linkedlist不是。他们都是list的子类。

(77)Map接口将每个元素与一个键值对应,由键值决定每个元素存放的位置。所有用映射方式表示数据结构的标准操作都声明在map接口中。

第九章:

简答题:

(78)设计用户界面的四步骤。

a.创建和设置组件。

b.将组件放到容器中

c.布局组件

d.处理有组件产生的事件

(79)布局管理器。能够布局容器中每个组件所放置的位置和大小的部件。

(80)Swing中的所有组件都是JComponent的子类,JComponent为它的所有子类提供以下功能。

a.工具提示。用setToolTipText()方法。

b.绘画和设置边框。用setBorder()方法。

c.控制显示外观。

d.定制属性。

e.支持双缓冲。

(81)Swing组件比A WT增加几个新功能。

a.按钮和标签组件不仅可以显示文本串还可以显示图片。

b.可以为大多数组件添加或者更改边框。

c.改变Swing组件的外观和行为。

d.Swing组件不仅可以为矩形,还可以为其他类型。

(82)监听器。专门负责处理事件的类对象。

(83)适配器。API提供的一种实现了监听器接口的类。

选择题:

(84)Java语言中,两个包囊括了实现图形用户界面的所有基本元素。这两个包是java.awt 和javax.swing。

(85)A WT中,有一部分代码是用C编写的,而Swing是纯Java。

(86)所有Swing组件都是容器。分为a顶层容器b通用容器c专用容器

(87)JPanel的默认布局管理器是FlowLayout

(88)BorderLayout是JFrame和JDialog两种容器的默认布局管理器。

(89)按钮是种类最多、使用最频繁的组件。

(90)Java与法规定,监听器类需要实现接口中的所有方法。

(91)Extends WindowAdapter

第十章:

简答题:

(92)进程。用来描述处于动态运行状态的应用程序的概念。即一个进程就是一个执行中的程序。

(93)线程。进程中的一个执行流。

(94)多线程。在一个进程中,同时运行多个不同线程,每个线程分别执行不同的任务。

多线程机制可以用来提高程序运行效率。

(95)线程的创建。a.定义一个thread的子类:public class Mythread extends Thread{}

b.利用Runnable接口:先定义一个Runnable接口的类,在这个接口中

只含有一个run()的抽象方法。再实现接口。最后再调用Thread类

对象的staret()方法启动。

(96)线程的状态。新建、可运行、阻塞、死亡。

(97)线程的控制方法。启动start()、终止stop()、恢复resume()和挂起sleep()、阻塞wait()、唤醒notify(),interrupt()、线程让步yield()、等待其他线程结束join()、判断线程是否出于活动状态isAlive()。

(98)临界区。一个时刻只能被一个线程访问的资源称为临界资源,而访问临界资源的那段代码被称为临界区。

(99)互斥锁。Synchronized,表面这个对象在任何时刻只能由一个线程访问。

选择题:

(100)Runnable接口中只含有一个名为run()的抽象方法。

常见类、包。

Swing类都放在javax.swing包中。

Thread、String、SringBuffer类定义在https://www.360docs.net/doc/6614507249.html,ng包中。

Math类定义在https://www.360docs.net/doc/6614507249.html,ng包中。

Finialize()是https://www.360docs.net/doc/6614507249.html,ng.Object类中的一个成员方法

Random类位于java.util包中。

支持输入输出流的所有类被放在java.io包中。

相关主题
相关文档
最新文档