《Java语言与面向对象程序设计》复习资料.docx
Java语言与面向对象程序设计复习资料Java语言与面向对象程序设计复习思考题 一、 填空题 填空题 JDK提供了基本的Java开发工具,这些工具放在JDK安装目录下的_目录。 对于复杂大型的Java程序仅靠JDK是不能满足要求,需要专门的_开发工具。 Java 程序是由一个或多个_构成,是以.java为扩展名的文本文件,又称_文件。 Java提供了三种分支语句:_语句、continue语句和_语句。 int sum = 0; for(int i=1;i<=100;_) sum += i; for语句提供一种紧凑的途径迭代一个值范围,它的语句格式: for(_;终止条件;_) 语句块; byte类型是 8位符号整数,取值范围_ 在Java语言中常量 126 是_类型。 在Java语言中常量 126L 是_类型。 控制流程语句根据条件和逻辑_控制程序执行_。 语句是构成_程序的基本单位之一,一条语句形成完整的_单元。 Java程序中在类中只能包含类的属性_,其他的执行语句必须放在类的_中。 class OuterClass class NestedClass . 类 NestedClass是_。 或成员变量声明包括三部分,按顺序:_、_和_。 修饰符;域类型;域名称 类提供了一组具有相同_和_的同类对象的“蓝图”,我们可以通过类来创建对象。 创建对象通常需要声明一个_用来_对象。 使用对象的域必须通过对象的_引用,并且必须清楚明确的。 被static声明的嵌套类称为_类。 封装的重点是对_的封装。 “类”封装了所抽象的抽象数据类型的相关_和_。 1 答案 bin 集成 编译单元;Java源程序 break ;return i+ 初始化;增量 。 -128+127 int long 表达式;流程 Java;可执行 声明语句;方法 嵌套类 属性;功能 变量;引用 名称 静态嵌套 数据 数据;操作 对象用一个或多个_存储它的状态。 声明类的格式: class _ extends _ 在声明类时可用的访问控制修饰有:_和_。 为下面类的成员变量填上修饰。 public class B _ String name; /保护的 _ float height; /私有的 . 在声明变量的同时赋值,其语法格式: 类型 变量名称 = _; 大多数情况下需要给_提供一个初始值,即所谓的初始化。 声明类的方法需要指定方法的访问级别,_,类型,_和方法体。 域 类名称;父类名称 public;默认 protected;private 初始值 域 名称;参数 _ 修饰的方法,又称为“类方法”,被类的所有对象_。 static;共享 方法返回类型即方法返回值的数据类型,包括_数据类型和_数据类型如果没有返回值则为_。 构造器即构造方法。类至少有一个_。用于初始化新建对象,被_操作符调用。 new调用_初始化创建的新对象。当对象创建完成后,new返回_的引用。 将Point实例化,创建pointer引用的对象: Pointer pointer; pointer = _; 面向对象主要特征是_、_、继承和多态。 面向对象程序设计中,抽象数据类型使用“”表示。 在面向对象术语中,一个具体对象被称为一个_。 在面向对象术语,_是类的一个实例,_是被创建对象的设计图或模板。 class As public As 子类 class Bw _ As public Bw(String name) _;/ 调用父类的构造方法 _计算是Java程序的任务之一。 表达式由变量、_和方法调用按照语言_构造而成。 声明公共类XZ _ class XZ_Object 2 原始;引用型; void 构造方法; new 构造方法;对象 new Pointer 抽象;封装 类 实例 对象;类 extends;super 表达式 运算符;语法 public;extends 在声明类时包含在_之间的部分为类的体部,提供类的具体内容,包括:_,构造方法,_等。 数组有如下的特征: n 相同_元素的集合。 l 元素有先后顺序。 l 元素用它自己的位置和_表示。 l 数组只能_。 int _x=1,2,3,4,5,6,7,8; 用for语句实现的无限循环格式: for . 对象是由_创建的,一个对象是类的一个_。 表达式: Math.sin(x)*Math.exp(a) 是_表达式。 y = Math.sin(x)*Math.exp(a) 是_表达式。 创建类Vector的一个对象minVector: Vector _; minVector = _ Vector; 对象创建后就可以使用,实际是对对象的_的使用,使用格式是:对象._ 类修饰符决定着类在程序运行中被处理的方式,控制着_或_的可访问性。 用static修饰的域称为_,又称为“类变量”。 类变量可以通过_直接引用,例如Math.PI。 域或成员变量声明包括三部分,按顺序:_、_和_。 方法声明可以用_或接口名做为返回类型。 类名 参数用来传送信息给_和_。方法可以拥有0到多个参数,方法;构造器 在“”之间。 对方法修饰控制它的访问等级,主要的修饰有_、private、_和package-private 。 在程序中使用包时用_语句引入包中类。 在程序中将类打包到指定包时用_语句。 接口_类层次关系的一部分,尽管它们的工作与类结合。 接口是抽象类的变体。接口中的所有方法都是_的,且_一个有程序体。 Java程序设计不允许多继承,但_提供了一种替代方案。 抽象类提供了一种更高层次的描述时,用_定义一个通用的,且可被它的所有继承者共享的形式。 3 ;域;声明方法 数据类型;数组名称;动态创建 ;; ; 类;实例 算术;赋值 minVector;new 成员;成员名称 变量;对象 静态域 类名 修饰;类型;名称 public; protected import package 不是 抽象;没有 接口 抽象类 子类可以继承_的构造方法。 在创建对象时,如果有自己的_构造方法,则在创建对象时先执行_的无参数构造方法,然后再执行_的无参数构造方法。 “多态”是指一个程序中_的不同方法共存。 父类 无参数;父类;自己 同名 二、 判断题 判断题 答案 × × × × × × × × × × × × × × × × × if 语句控制代码块,所以用if语句控制的语句组要用“”括起来。 在Java的算术运算符中二元运算符的优先级高于一元运算符。 +op运算先将op的值增加1,然后再取op的值作为(+op)结果值。 声明的数组型变量是引用型变量,因此数组声明后只有通过创建才能够使用。 数组是由数据类型相同的元素按一定顺序线性排列构成。 continue语句可以用在除循环以外的其他地方。 switch语句声明不允许任何数量的可能的执行路径。 switch语句实现多路选择结构时可以用if-else-if语句替代。 在if语句中,表达式的值可以是boolean,也可以是int。 在含有&&、|和!运算的表达式中,首先计算&&,最后计算|。 过程抽象就是舍弃个别的功能,抽取共同拥有的功能。 Java原始数据与平台无关。 所有由“”和“”括起来的语句组都是代码块。 Java程序源文件可以包括多个类,编译生成的.class文件包含这些类。 Java 程序是由一个或多个编译Java源程序文件组成。 变量命名是由字母、数字、下划线或美元符“”的字符序列。 在Java类的声明格式中,类包括类头部和类体部。 在声明枚举时,Java 对声明其中的常量,定义字段和方法的顺序没有限制。 方法名是合法的,符合代码约定的标识符。 创建String类的对象sn:String sn=new String(“ “); 封装技术为软件开发提供了对信息的隐藏。 在Java语言中类和对象是同一个概念。 用final 修饰的方法在类的子类中可以被重写或覆盖。 抽象和封装是面向对象程序设计的重要特征,也是过程程序设计的特征。 如果类用public修饰,那么这个就是公开的类。 面向对象中的封装的重点是对数据的封装,而隐藏内部状态。 方法专门充当对象与对象之间通讯的主要途径。 Java数据类型于平台密切相关. 由修饰符“final”修饰的域,此种域不能被改变。 子类继承父类所有的非私有成员,而无论这个类是否与父类在同一个包中。 在子类中用super调用父类的无参数构造方法。 抽象方法是一种声明而不用实现的方法。 在Java语言中接口是一种协议,在形式上与抽象类相同。 接口中不实现任何方法,而抽象类有实现的方法。 4 三、 单项选择题 单项选择题题干 选项 A. 5 B. 3 C. 4 D. 2 A 答案 OOA模型包含( )各层次,每个层次表示需求模型的一个方面。 Java API被组合在库中,由相关的类和接口构成,这些库称做“( )”。 A. 库 B. 包 C. 集合 D. 组合 B ( )是Java运行环境A. JDK 缩写,用来运行Java程序。 B. API C. JRE JDK开发工具包括工具和实用程序,可帮助开发、A. 编译 ( )、调试和保存以 Java 编程语言编写的程序。 B. 处理 C. 计算 D. 执行 下列变量名中错误的有( )。 myName、 value_1、 dollar、 2mail、 class A. myName B. 2mail和class C. dollar D. value_1、 dollar Java的二元算术运算符有、*、A. >> 和 ( )。 B. != C. % D. - - 56 % 66 = ( ) A. 0 B. 1 C. 56 D. 66 所谓一元运算就是参与运算的数据项只有( )。 A. 2项 B. 至少一项 C. 0项 D. 一项 表达式有( )的结果值,它的数据类型依赖于组成表达式的各个元素。 A. 唯一 B. 多个可用 C. 指定运算符 D. 至少一个 声明类时,对于类成员的访问控制,有两级控制( )可以使用。 A. 级别 B. 语句 C. 类型 D. 修饰符 下面方法是( )方法。 class A fun; fun(int a); 5 C A B B C A B C A. 覆盖 B. 重载 C. 静态 D. 无效 A fun(int a,int b); 注解提供关于程序的资料,它们不属于( )。 A. 代码 B. 注释 C. 程序代码 D. 源程序 创建对象通常需要经过下面描述的几个步骤: 1.声明一个变量用来引用对象。 2.( )。 3.初始化对象。 具有相同特征的对象可以抽象成一种新的数据类型,即( ),来描述这些对象的共同属性和特点。 A. 设置初值 B. 传递参数 C. 改变类型 D. 实例化类 A. 类 B. 对象 C. 模块 D. 数据类型 public class Pointer public Pointer(int x, int y) 创建类Pointer对象point的语句:( ) 在Java语言中接口( )被实例化,但能被类或其他接口扩充。 A. 不能 B. 可以 C. 局部 D. 必须 每个类的实例有它自己拥有的定义在类中的( )的拷贝,又被称作“域”。 A. 局部变量 B. 参数 C. 程序 D. 实例变量 public class car extends motorcar String name; int seating; public car public boolean isRun 父类是( )。 int x=201; double y; y=Math.( )(x); 表达式(m%13=0) && (m%27=0)当m=351时结果为( )。 A. Math.sqrt B. sqrt C. x D. y A. 大于0 B. true C. false D. 小于0 继承是两个类之间的一种关系,继承类父类的所有数据和操作的类称为( )或派生类。 6 C B A A. Pointer point=new C Pointer(0,0); B. Pointer point; C. Pointer point(0,0); D. Pointer point=0; A B A. extends motorcar B. motorcar C. extends D. Object C B B A. 父类 B. 超类 D C. 对象 D. 子类 在类中的成员变量,又称域。如果用static修饰称静态域,否则称( )。 A. 成员 B. 变量 C. 不是静态域 D. 非静态域 域或成员变量的声明中,类型指域或成员变量的( )。所有变量必须有一个指定的类型。 A. 类别 B. 访问控制 C. 数据类型 D. 静态或非静态 用static修饰的域称为静态域,它可以与控制修饰( )组合使用。 A. public B. abstract C. this D. super class Bnt public long size; 类Bnt中成员size的初值是( )。 String ping; ping instanceof String 结果:( ) switch(x) case 23: System.out.println(“A”); case 12: System.out.println(“1”); break; 当x=23是显示( )。 if( a>b && a<=c ) 语句组1; else 语句组2; “语句组1”可以被执行的条件( )。 不带标签的continue语句跳过for、while和do-while循环体的( ),计算控制循环的条件表达式。 class M public M(String id); 7 D A A A. 0 B. 0L C. 0.0 D. 任意值 A. true B. false C. 1 D. 0 A. A B. 1 C. A1 D. 1A B A C A. ab 或 ac B. 语句组1不会被执行 C. ab 并且 ac D. a,b,C均为0 A. 开始 B. 控制表达式 C. 指定位置 D. 尾部 A. super(id) B. M(id) C. this(id) D. M.M(id) C D A class N extends M public N(String id, int m) ( ); / 父类的构造方法 类Math的方法sqrt可以这样使用A. public修饰的方法 B. public static修饰的方法 C. static修饰的方法 D. final 修饰的方法 嵌套类被分为两个类别:( )和非静态的。 A. 静态的 B. 共有的 C. 内部的 D. 外部的 在例外处理中,当try代码块退出时代码块A. finally C. try D. trycatch 在定义包时,每个源文件仅能有一个( ),并且应用于文件中的所有类型。 A. 类 B. public类 C. 包语句 类声明使用顶级访问控制修饰符,即package-private和( )。 B A 总会被执行。通常放置程序的清除代码在这个地方。 B. catch C B Math.sqrt(3.0)。那么这个方法是( )。 D. import A. abstract B. final C. public D. private C 所有定义在接口中的常量隐含public、( )和final。这些修饰是可以省略的。 A. 数据类型 B. static C. 变量名 D. 可以省略 C 在抽象类中由static修饰的域和方法,方法可以通过( )直接引用。 A. 对象名称 B. 类名称 C. Object D. 抽象类的实例 A 四、 编程题 编程题 编写Java程序实现在屏幕上显示用“*”打印6x6矩形图形,如下答案 public class CalucZ public static void main(Stringagrs) int Z,X,Y; X=6; 所示: Y=23; * * Z=X*X + Y*Y; * System.out.println("Z="+Z); 8 * * * 编写Java程序计Z = X2 + Y2 其中Y=23 X=6 public class PrintRect int i=0; String line = "*" while(i<6) System.out.println(line); i+; 算下里计算式: public static void main(Stringagrs) 计算下列函数的值。函数 f(x)=8x3+6/x3 其中x=2.9102,编写程序计算f(x)的值。 public class Fun8x3 public static void main(Stringagrs) double x,y; x=2.9102; y=8*x*x*x+6/(x*x*x); System.out.println("f(x)="+y); import java.util.*; public class SelectNum private int num; public SelectNum(int n) num=n; public void display for(int i=1;i<=num;i+) if(num%i=0) System.out.println(i); 从键盘输入一个3 位整数,筛选出可以将其整除的所有整数。例如,整数100,可以将其整除的整数有2、4、5、等。 public static void main(Stringagrs) Scanner s = new Scanner(System.in); int n; System.out.print("输入一个三位整数:"); 9 n = s.nextInt; SelectNum sn = new SelectNum(n); System.out.println("列出所有可以整除三位整数的数"); sn.display; 计算并显示当x在-10.0和+10.0取值时函数 2public class Fun4x public static void main(Stringagrs) double x,y; for(x=-10.0;x<=10.0;x=x+0.5) f(x)=4x/(2x+1) y=4.0*x/(2.0*x*x+1.0); 的所有函数值。 System.out.println("f(x)="+y); 计算半径R=385.45米的圆的面积。 public class CircleArea private double radius; public CircleArea(double r) radius = r; public double circleArea return radius*radius*Math.PI; public static void main(Stringagrs) CircleArea circle = new CircleArea(385.45); System.out.println("Circle Area is "+circle.circleArea); 由键盘输入10个浮点数,然后分别计算它们和、平均数。 import java.util.*; public class MaxData private double data; public MaxData(double a) data = a; public double sum double m = 0; for(int i=0;i<data.length;i+) m = m + datai; 10 return m; public double average return sum/data.length; public static void main(Stringagrs) Scanner sc = new Scanner(System.in); double data = new double10; for(int i=0;i<data.length;i+) System.out.print("Input No."+i+" double number"); datai = sc.nextDouble; MaxData md = new MaxData(data); System.out.println("Sum := "+md.sum); System.out.println("Average:= "+md.average); 用“*”在屏幕打印下面的图案。 * * * * * * /* 打印三角形 * * * * * * . . */ public class PrintTriangle /* 打印三角形 * * 11 * * * * . . */ public class PrintTriangle /* * 打印三角形图案 * * 参数:colnums底边列数,应为一个奇数。 * */ public void printTriangle(int colnums) int n,i,j; n = colnums/2; for(i=0;i<n+1;i+) public static void main(Stringagrs) PrintTriangle triangle = new PrintTriangle; triangle.printTriangle(11); 计算S=1+2+900。 for(j=0;j<n-i;j+) System.out.print(" "); for(j=0;j<2*i + 1;j+) System.out.print("*"); System.out.println(""); public class SumNumber private long min,max; public SumNumber(long min,long max) this.min = min; this.max = max; public long sum 12 long i; long m=0; i = min; while(i<=max) m += i; i +; return m; public static void main(Stringagrs) SumNumber sum = new SumNumber(1,900); System.out.println("S= 1+2+900 = "+sum.sum); 设计Java类表示圆,并提供计算圆的周长和面积方法。 public class Circle private double radius; public Circle public Circle(double radius) this.radius = radius; public double girth return 2.0*radius*Math.PI; public double area return radius*radius*Math.PI; / 以下程序用于测试可以省略 public static void main(Stringagrs) Circle circle = new Circle(3.6e+6); System.out.println("月球轨道长度是"+circle.girth); System.out.println("月球轨道平面面积"+circle.area); 13