java面象对象程序设计课程复习整理版.doc.pdf

上传人:tbuqq 文档编号:5616083 上传时间:2020-07-02 格式:PDF 页数:28 大小:1.06MB
返回 下载 相关 举报
java面象对象程序设计课程复习整理版.doc.pdf_第1页
第1页 / 共28页
java面象对象程序设计课程复习整理版.doc.pdf_第2页
第2页 / 共28页
java面象对象程序设计课程复习整理版.doc.pdf_第3页
第3页 / 共28页
java面象对象程序设计课程复习整理版.doc.pdf_第4页
第4页 / 共28页
java面象对象程序设计课程复习整理版.doc.pdf_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《java面象对象程序设计课程复习整理版.doc.pdf》由会员分享,可在线阅读,更多相关《java面象对象程序设计课程复习整理版.doc.pdf(28页珍藏版)》请在三一文库上搜索。

1、面向对象程序设计课程知识点 第1章Java概述 1. Java 程序的运行机制是什么? 中间码:字节码(Bytecode )文件, 字节码指令与硬件平台无关,但又 不能由 Cpu 直接执 行。 Java 解释器:要安装Java 运行 时 系统(Java 虚拟机) 调入包含、继承所用到的所有类,内存分 配确定,变成真正可执彳亍的机器码 系统执行平台 创建,编辑和执行Java 程序 ?创建和编辑源代码 可以使用任何文本编译器创建和编辑源代码。 文件名必须与公共的类名一致,文件后缀为.java ?编译 在控制台中执行: javac 源文件名 生成.class 字节码文件 ?执行 - 在控制台中执行:

2、 java 类名 皿源程序 Cjuva 文件) Bytecode载入器 编译器 字节码校验器 Bytecode解释器 Java Bytecode .(.cl 朋 s 文件) 不存在伪造的指针 不违反访问权限不 非法访问对象不导 致操作栈溢出 编译、没有绝对地址 决定了 Jam 语言的所具有的特点: ( 理解各个特点的真正含义) (1)简单的(2)面向对象的 (3)分布式的(4)解释型的 (5)健壮的(6) 安全的(7)体系结构中立的(8) 可移植的 (9)高性能的 (10)多线程的 (11) 动态的 2. JDK 、JRE 与 JVM 的作用与关系? JDK JRE jVM 、 “类库 、 丿

3、 JDK: Java Development Kit Java 开发工具包, 其中包含 Java 编译器 (javac.exe) Java运行时环境 JRE: Java Runtime Environment Java 运行时环境 (Java 虚拟机 )+支持类库 JVM: Java Virtual Machine负责将 Java 字节码翻译为本地机器可以执行二进制机器码 其中,使用 javac 命令可以从命令行编译Java 源程序,生成字节文件 (.class 文 件) 使用 java 命令可以从命令行解释执行字节文件。 3. 在控制台和消息框中如何输出信息? (1)在控制台输出字符串 “H

4、ello world“ 的语句: System, out.printin (“Hello world“); (2)在消息框输出字符串 “Helloworld“的语句: JOptionPane ? showMessageDialog (null, “Hello world“); 注意: showMessagDialog 方法是 java.swing 0ptionPane 类中的方法。(P13) lJava编译器将源代码翻译成的独立于平台的格式是:B A.opcodes C. virtual machines(虚拟机) 2.运行 Java编译器的命令是什么? 3.下面哪条命令用来运行Java ap

5、plication? 4.下面哪条命令用来运行Java applet? 5?可以用来创建Java程序的免费工具包被称作什么?B 第2章基本程序设计 1. 标识符的取名规则 标识符是以字母或下划线(_) 或美元符 ($) 开头,后面跟字母、数字、下划线和美元符所组 成。一般标识符习惯用小写字母。保留字不能用作标识符。 选择题:选择正确的标识符。例如:$2,程序,area, showMessageDialog是合法的 标识符; 2A,d+4是非法的标识符 Java 中使用标识符 (identifier) 来命名变量、常量、方法、类、包等实体。 字或关键字 (keyword) 是对编译器有具特殊意义

6、, 不能在程 序中用于其它目 的的单词。例如: public class static void int double等等 3. Java 的数据类型 B. bytecode(字节码 ) D. applets( 小应用程序 ) A. java B. appletviewer C.jdb D. javac A. java B. appletviewer C.jdb D. javac A. java B? appletviewer C.jdb D. javac AJRE B. JDK CJVM D. JNI |=| 2. Java 保留字:保 4. 数值类型之间的转换。 扩宽类型可自动完成 ( 不

7、需显示完成 ) ,缩窄类型需明确指明 ( 需显示完成 ) 取值范围 - ? Byte, short, int, long, float, double 强制转换: (datatype) variableName 例如: 1) ? double x=9.987; int nx=(int) x; /nx=9 2) ? double x =9.987 int nx=(int)Math.round(x) /10 5.字符类型(char) 和字符串类型 (String)o 2) Char 型数据可以与任意一种数据值数据进行互换,反之亦然 3) String 实际上是 Java 定义的一个类,它不是基本类

8、型,是引用类型。 6. 程序设计错误分为三类:语法错误、运行错误和逻辑错误。语法错误:在编译期间产生的错 误。 1)char 型数据可做自增、自减运算。 运行错误:导致程序非正常终止的错误。 逻辑错误:程序不能按预期的方式执行。 7. 从控制台和消息框中如何获取输入信息? 注意:从控制台中读取数据时要用到java.util.Scanner类中的 next() 、nextlnt() 等方法从消息 框中读取数据时要用到。java.swing.JOptionPane类中的 showInputDialog 方法。 (P44) 例如: (1)在控制台获取一个整数的语句: Scanner sc=new S

9、canner(System.in); Int a=sc.nextlnt(); String intString=JOptionPane . showInputDialog (Please input a integer: ff ); int a=lnteger.parselnt(intString); 从消息框中读出的一定是字符串。需要将字符串转换成相应的数据类型。 double doubleValue = Double.parseDouble(doubleString); String s = String.valueOf( value); /其中 Value 为任意一种数字类型。 第3章选

10、择 1.关系运算符和布尔运算符及其运行的优先级。 2?if else 语句 3. switch语句。 switch表达式的类型只能是char 、byte 、short 和 int 类型。 4?布尔表达式?表达式1 :表达式 2 当布尔表达式为真时,表达式的结果为表达式1 的值,否则结果为表达 式 2 的值。 Java 中唯一一个三目运算符 第4章循环 1. while 语句 在消息框获取一个整数的语句 2. do-while 语句 3. for 语句 4. break 与 continue 第5章方法 1.方法有方法签名 ( 方法头 +参数列表 ) 和方法体两部分构成 2.声明一个方法的语法是

11、什么?特别注意main 方法的方法签名。 修饰符 返回值 方法名 (参数列表 ) 方法体 main 方法的方法签名:public static void main(String args) 3.调用方法的语法是什么? 方法名 ( 参数列表 ) 实例方法:对象 ?方法名 静态方法:类 ?方法名 4.如何传递方法参数? 基本类型参数:当调用方法时,实参值的副本被传递给方法的形参。方法内部对形参的修改不 影响实参值。 引用类型值传递:方法内部对形参的修改会影响实参值,因为实际上传递的是一个地址,改变 的内容是这个地址下的内容。 5.何谓方法重载? ?方法重载(overloading)是指方法名称相同

12、,但方法的参数不同的方法。一个类中可以包 含多个重载的方法。 ?当调用方法时,Java 编译器会根据实参的个数和类型寻找最精确匹配的方法进行调用。 6.局部变量的作用域是什么? 方法内部声明的变量称为局部变量(local variable)。 ?变量的作用域(scope) 指程序中可以引用该变量的范围 ?局部变量的作用域从它的声明开始,直到包含该变量的块结束为止。局 部变量在使用前必须先声明和赋值。形参就是局部变量 ?在方法中,可以在不同的非嵌套程序块中以相同的名称多次声明局部变量。但不能在嵌 套的程序块中以相同的名称多次声明局部变量。 ?在for 语句的初始动作部分声明的变量,作用域是整个循

13、环。在for 语句 循环体中声明的 变量,作用域从变量声明开始到循环体结束。 7. 了解 Math 类(书 P136) 声明和创建同时进行elemType arrayRefVar= new elemType arraySize 下面的语句是错 误的: Doubled myList; 1) IEJ 找定位类。 myList=1.9, 2.9, 3.4, 3.5 2.数组元素的访问形式?arrayRcfVar index OWindex toUpperCase () t oLowerCase将字符串转换成小写形式 toUpperCase将字符串转换成大写形式 (7)字符数组、基本数据类型与字符串之

14、间转换方法:用String的 构造方法或toCharArray () String. valueOf ()方法。 ?toCharArray将字符串转换成字符数组 String s = “Java ” ; chart charArray = s. toCharArray(); ?将字符数组转换成字符串 - 使用String的构造方法 new String(new char 丁,a? , vf , a ); - 使用valueOf方法 String. valueOf(new char “J , a , “v , “a ); ? 注:valueOf的参数类型可以是 char, char , doub

15、le, long, int, float ?valueOf方法将基本数据类型转换为字符串。例如 String si = String. valueOf (1. 0); / “ 1.0” String s2 = String.valueOf(true); / / “true” ?字符串转换为基本类型 -Double? parseDouble (str) 一Integer. parselnt(str) -Boolean? parseBoolean(str) (8)字符串的分割方法:split (String) (9)查找字符串中的某个字符或某个子串方法:indexOf和 lastlndexOf 方

16、法 还有判断一个字符是字母还是数字的方法等等一作业P270/9. 5 3.Character类是处理单个字符的包装类(9. 3) Character类的作用 a)将char类型的数据封装成对象 b)包含处理字符的方法和常量 4.StringBuilder/StringBuffer 类可用于处理可变字符串。(9. 4) StringBuffer 与StringBu 订der 的区别 StringBuffer是线程安全的可变字符序列,可以不需要额外的同步用于多线程中; StringBuilder是非同步,用在字符串缓冲区被单个线程使用的时候,大多数实现中它 速度比StringBuffer快;二者之

17、间的共同 点都可以通过append、insert进行字符串的操 作。 5.命令行参数:可以从命令行向main方法传递字符串。传递的字符串存储在哪里?又如 何求传入的字符串参数的个数?(9. 5)作业P271/9. 13 ?参数以空格分隔,如果参数本身包含空格,用双引号括起来。格式: java类名参数1参数2 例如 java TestMain “First num” alpha 53 ?命令行参数将传递给main方法的args参数。args是一个字符 串数组,可以 通过数组下标访问每个参数。 public static void main(String args) ?求传入的字符串参数的个数:a

18、rgs, length 6.F订e类用来获取文件的属性和对文件进行操作。它封装了文件或路径的属性。它不包 括创建一个文件和对文件进行读写操作的方法。(9.6) 7.使用PrintWriter类向文件写数据(9.7) PrintWriter用于创建一个文件并向文本文件写入数据。 PrintWriter pw = new PrintWriter(fileName); 方法print () print In () printf () 提供了对以下数据类型的输出 char int float Object Boolean char long double String 8.使用Scanner类从文件读

19、数据(9. 7) java. io. File file = new java. io. File( “scores?txt ” ); Scanner input = new Scanner (file); input, next () ; input, nextlnt () 第10章关于对象的思考 1.变量的作用域 全局变量:静态变量和实例变量 局部变量:方法内部声明和使用的变量下面程序的输出结果是什么: public class Foo private static int i二0; private static int j二0; public static void main(Strin

20、g args) int i=2; int k=3; int j=3; System .out. println(i+j is “+i+“+j); k=i+j; System .out. printin (k is “+k ); System. out. printIn(j is +j); 结果: i+j is 2+3 k is 2 j is 0 2.this的作用 This常见的两种用法: (1)引用类的隐藏的实例变量 (2)让构造方法调用同一个类中另一个构造方法。 3.何谓不可变类?不可变类应具备的条件是什么? 一旦创建其内容就不能再改变的不可变对象。一个不可变对象的类称为不可变类 条件:

21、?所有数据域必须都是私有 ?没有修改器方法 ?没有一个访问器方法,它会返回一个指向可变数据域的引用 第章继承与多态 1.什么叫类的继承?父类(根类、超类)和子类(次类、派生类)的关系?从现有的类派生出 新类,就称为继承。新类称为子类、次类或派生类。现有的类称为超类、父类或基类。 - 子类继承了父类中可访问的数据和方法,子类也可添加新的数据和方 - 子类不继承父类的构造函数。 - 一个类只能有一个直接父类。 - 子类是父类的扩充 2.子类申明的语法是什么?(extends关键字 ) class ClassName extends Superclass class body 3.子类中如何调用父类

22、中的构造函数或父类中的成员?( 用super) ?调用父类的构造函数 - 子类不继承父类的构造函数 - super (parameters)调用父类的的构造函数。 - 必须是子类构造函数的第一条语句。 - 如果子类中没有显式地调用父类的构造函数,编译器会把super () 作为构造方法的第 一条语句。它调用是父类中不带参数的构造函数 - 父类的构造函数在子类构造函数之前执行。 ?调用父类的成员 一super? data 一super, method(parameters) 写出下列程序的运行结果: public class test public static void main(String

23、 args) new Faculty(); class Person public Person() Sy stem. out. print In (“调用 Person 不带参数的构造函数”) ; class Employee extends Person public Employee() this( M调用 Employee 重载的构造函数“) ; Sy stem. out. print In (“调川 Employee 不带参数的构造函数”) ; public Employee(String s) class Faculty extends Employee public Facult

24、y() System.out.printlnC调用 Facult y不带参数的构造函数”); public Faculty(String s) super(s); 运行结果: 调 JUPerson 不带参数的构造函数 调 MJ Employee重载的构造函数 调用 Employee 不带参数的构造函数 调用 Faculty不带参数的构造函数 4.什么是方法覆盖?方法覆盖与方法重载的区别? 重载(overload):对于类的方法 ( 包括从父类川继承的方法) ,方法名相同,参数列表不同 的方法Z间就构成了重载关系。 覆盖(override):也叫重写,就是在当父类中的某些方法不能满足要求时,子类

25、中改写父类 的方法。 方法的覆盖和重载具有以下不同点: (1)方法覆盖要求参数列表 ( 参数签名 ) 必须一致,而方法重载要求参数列表必须不一 致。 (2)方法覆盖要求返回类型必须一致,方法重载对此没有要求。 (3)方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法 5.面向对象程序设计的三个特点是什么?(P310)多态,继承,封装多态通过方法的重载和覆 盖实现。 6.理解多态性、动态绑定的含义。( 书P312/程序11-6和P323/11. 11.课件 中的最后一道强化训练题)。 强化训练题: ( 一) 类的描述如下 : class A public String show

26、(D obj) return ( A and D“); public String show(A obj) :return ( A and A“); class B extends A public String show(B obj) return (“B and B“); public String show(A obj) return (“B and A“); class C extends B class D extends B 二、问题:以下输出结果是什么? A al 二new A(); A a2 = new B (); B b = new B(); C c = new C ();

27、D d = new D(); System, out. printin (aL show(b); System, out. printin (al show(c); System, out. println(al? show(d); System, out. println(a2? show(b); System, out. println(a2. show(c); System, out. printin (a2 RuntimeException, Error 以及它们的子类都称为免检异常unchecked exceptionso免 检异常反映程序中不可恢复的逻辑错误。它可能在程序的任何一个

28、地方出现。Java 不允 许编写代码对其进行捕获或声明。 所有的其他异常都称为必检异常checked exceptions,意思是指编译器会强制程序员检查 并处理它们。 2.如何创建、抛出、捕获和处理异常?( 注意关键字throws、throw和catch) 声明异常: public void myMethod() throws IOException 抛出异常: throw new TheException(); TheException ex = new TheException(); throw ex; 捕获异常: catch (TheException ex) 下面语句的执行流程是什么

29、?( 书 P366-367/13.11-13.13,13.18) try statements 1; statements?; statements3; catch (Exception 1 exVari) Statements4; catch (Exception2 exVar2) Statements5; . catch (ExceptionN exVar3) statements6; finally finalstatements; Statements?; 首先执行try块语句statements 1,2,3;若其中一,条语句出现异常则之后的语句停止运行, 并抛出异常。在catch块捕

30、获, 并执行catch块屮语句。最后执行finally语句以及Statements?o 如果有异常,但异常未被捕获到,则执行finally 块中语句,将错误抛给上层方法。不执行 Statements?语句。 finally子句是一个无论异常是否出现或被捕获,都必须执行的程序段,所以常把一些必须 被执行的代码 ( 如资源回收:I/O时的关闭操作 ) 放在finally 子句里。 程序执行 finally子句的三种情况: 1、 不抛出异常: try一finally 2、 抛出并捕获到异常: tryatchfinally 3、 抛出但没捕获到异常: tryfinally 第14章抽象与接口 1.什么

31、叫抽象类?什么叫接口?接口与抽象类的区别是什么?( 见课件 ) Java中可以定义不含方法体的方法,方法的方法体由该类的子类根据自己的情况去实现,这样 的方法称为抽象方法 (abstract method), 包含抽象方法的类必须是抽象类(abstract class) 抽象类和 抽象方法的声明要加上abstract.关键字 ? 接口是常量和抽象方法的集合,它与类具有相似的结构。接口是能力、规范、协议的反 映,它的目的是指明多个对象的共同行为。 接口抽象类 多重继承 一个接口可以扩展多个接口 一个类只能扩展一个抽象类 方法接口不能提供任何代码抽象类可以提供完整代码 数据字段只包含public

32、static final常 量,常量必须在声明时初始 化。 可以包含实例变量和静态变量。 含义 接口通常用于描述一个类的 外围能力,而不是核心特征, 例如 Automobile类可以实现 Recyclable 接口,而 Recyclable可以应用于其他 不相关的对彖。 类 与接口之间 的is-able或 者can do的关系。 抽象类定义了它的后代的核心特征。例 如Person类包含了Student类的核心特 征。派生类 与抽象类之间是is?a的关 系。 简洁性 接口中的常量都被假定为 public static final, 可以在抽象类中放置共享代码。可以使 用方法来计算实例和静 可以省

33、略。不能调用任何方 法计算这些常量的初始值。 接口屮的方法被假定为 public abstract o 态变量(常量)的初始值。必须用 abstract显式声明方法为抽象方法。 添加功能 如果为接口添加一个新的方 法,则必须查找所有实现该 接口的类,并为他们逐一提 供该方法的实现。 如果为抽象类提供一个新方法,可以选 择提供一个缺省的实现,那么所有已存 在的代码不需要 修改就可以继续工作o 一个类可以实现多个接口 . 2.如何声明一个抽象类?(书P396/14. 1注意关键字:abstract) abstract class 类名 protected 类名() 抽象类的构造方法定义为prote

34、cted,因为它只被子类使用。abstract返回值类型方法 名 3.抽象类除了不能使用new操作符创建抽象类的实例之外,可以像非抽象类一样使用。 4.如何声明一个接口?(书P396/14.4,注意关键字:interface) 修饰符interface接口名 常量声明 方法签名 5.如何实现一个接口?(注意关键字:implements)参看实验指导书中对应实验的设计 性内容) 修饰符 class 类名extends 父类名 implements 接口列表 member_declaration* 6.了解接口java. lang. Comparable ( 只含抽象方法compareTo),实现

35、了Comparable接口的 类的对象是可比对象。基本数据类型的类都实现了该接口 O 7.了解接口java. lang. Cloneable ( 标记接口 ) ,实现了Cloneable 接口同时 改写了从Object 类继承的clone方法的类的对象是可克隆对象。( 书P397/14. 11 14. 12) 8.类是单继承关系 (即一个类仅能继承一个父类) ,但一个类可以实现一个或多个接口中。 9.一个接口可继承一个或多个接口。 10.基本数据类型的包装类。 作用 a)为基本数据类型提供方法和常量值 b)用于只能处理对象引用的地方 第19章二进制I/O 1. Java是如何处理 I/O 的?

36、 (3 个步骤:创建输入 / 输出流;进行读写操作;关闭输入/ 输 出流) 2. 文本 I/O 与二进制 I/O 的区别是什么? - 任意文件都是以二进制形式存储。 -文本文件(text file):被当作字符序列。Java虚拟机会在文本I/O 中会自动进行编码 和解码。如书P529/图书19-2 (a) -二进制文件(binary file):被当作字节序列。在二进制I/O中不需 要转化,如果是 向文件写入数据,就是直接将内存中的确切值复制到文件中。如书P529/图书19-2 (b) 3. 如何利用FilelnputStream 和 FileOutputStream 读写字节? Fileln

37、putStream 从文件输入一个字节流: FilelnputStream input = new FilelnputStream(“temp.dat“); FileOutputStream 将一个字节流输出到文件中: FileOutputStream output = new FileOutputStreamftemp.dat); 4. 如何利用 DatalnputStream/DataOutputStream读写基本类型值与字符串? DatalnputStream 过滤字节输入流并将其转化为基本类型值和字符串: DatalnputStream input = new DatalnputSt

38、ream(new FilelnputStream(“in.dat“); DataOutputStream 将基本数据类型的值和字符串写入输出流 DataOutputStream input = new DataOutputStream(new FileOutputStream( / in.dat / ); 5. 如何利用对象输入 / 输出 ObjectOutputStream /Objectinputstream 类读写对象? Objectinputstream input = new Objectinputstream (new FilelnputStream(“object?dat“);

39、ObjectOutputStream input=new ObjectOutputStream (new FileOutputStream(“object?dat“); 6. 如何实现对象的可序列化(Serializable) ? ( 注意:只有可序列化的对象才能写入输出流) public class Student implements java.io.Serializable 7. 如何利用 RandomAccessFile类对文件进行定位读写数据? 书 P542 考试题型: 选择 20 题 20 分 判断 10 题 10 分 填空 15 空 15 分 简答 2 题 10 分 程序填空 6 空 12 分:作业,书上基础阅读程序 4 题 12 分: - 基本类型 &引用类型 / 局部变量 &全局变量 一父类与子类继承,多态,动态绑定 - 异常 一接口 程序编程题3题21分: - 写方法 接口定义和实现(参实验题)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1