文档库 最新最全的文档下载
当前位置:文档库 › Java面向对象模拟试题1

Java面向对象模拟试题1

Java面向对象模拟试题1
Java面向对象模拟试题1

一、判断题(正确的描述打钩,错误的打叉,每题1分,共10分)

1 抽象类中不可以有非抽象的方法。(错)

2 如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException

异常。(错)

3 Java中Object类是最顶层的类。(对)

4 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。(对)

5 可以通过javac来运行一个Java Application。(错)

6 可以在子类构造函数中通过this关键字调用基类的构造函数。(错)

7 Java语言是IBM公司设计的一种面向对象程序设计语言。(错)

8 一个Unicode字符占4个字节。(错)

9 在循环语句中,使用continue;语句可以跳出循环。(错)

10 在Java Application中如果没有定义main()方法,则程序不能编译。(错)

二、简答题(请将答案写到答题纸上,注明题号。每题3分,共30分)

1 请看以下代码:

package mytest;

public class Main {

public static void main(String[] args) {

A());

}

}

class A

{

}

Java在运行上述代码时输出一个很奇异的结果:

@60aeb0

尝试解释一下可能的原因.

点评:

本题的关键在于虽然类A没有定义任何方法,但它隐含着从基类Object中继承了toString()方法。答案必须点出这一结果是执行toString()方法得到的。

2 什么叫多态你是如何理解多态的请设计一个简单的示例,展示多态的用法。

点评:

几乎所有的Java教材都要介绍多态的概念,但只有能用自己的语言说清楚,并能自己设计一个典型实例展示多态特性的,才算是真正弄明白了。

从试卷中发现,不少同学弄混了方法重载与方法覆盖,认为“方法重载”就是多态。

3 在Java GUI程序中,布局管理器是一个很重要的概念。谈谈你对这个概念的理解,并进而回答以下问题:

如果要你开发出一个Windows资源管理器(图 1),你将如何应用合适的“布局管理器”来实现其界面

图 1 Windows 7中的资源管理器

请指明你在图 1中的哪部分应用哪种布局管理器。

4 int和Integer都可以代表一个整数,这两者在使用上有什么区别吗为什么JDK中要设计两个数据类型来表示同一种数据

5 Java Application的程序入口点为main()函数,其声明如下:

public static void main (String[] args)

请解释一下为何main()函数是公有的和静态的

6 抽象类与接口都不能直接用来创建对象,那么,这两者什么用彼此之间又有何区别

你认为在哪种场合应该用抽象类,哪种场合应该用接口在JDK中你能找到相应的实例吗如果能找得到,请分析一下JDK的设计者为何将它们设计为“抽象类(或接口)”。

7 如何判断函数构成重载关系挑出以下函数中不构成重载关系的函数,指明它违反了哪个判断准则。

(1)void myFunc();

(2)int myFunc(int x,int y);

(3)int myFunc(string str, string str2);

(4)string myFunc(int x, int y);

另外,你还记得JDK中有哪个类拥有重载的方法吗列举一两个。

8 Swing和AWT都可以用于设计GUI(图形用户界面)程序,这两者有何区别

你还用过其他的编程语言或开发工具设计GUI程序吗如果让它们与Java进行对比,你觉得使用Java设计GUI程序的优点在哪,缺点在哪

9 在面向对象程序中,实现代码复用主要有两种方式:继承和组合。

请设计两段示例代码,分别展示出Java实现这两种方式的代码框架。

如果在某个实际开发场景中这两种方式都可用,你认为应该优先选择哪一种原因

10 各种类型的几何图形都有自己的面积计算公式,但在一个CAD(计算机辅助设计)软件中,图形的种类非常多,如果程序需要计算出任何一种图形的面积,最简单的想法是使用条件判断语句根据图形类型来选择相应的计算公式。然而,这种方法不太好,可能会导致嵌套层次很深的条件判断语句。另外,如

果软件要扩充功能以支持新的图形种类,则又不得不修改调用不同公式计算图形面积的代码。

在学习了面向对象技术之后,你能对上述问题给出一个较好解决方案来吗

请以计算圆形、矩形和三角形三种几何图形的面积为例,列出关键代码或者绘出UML图来展示你的方案。

三阅读程序题(每题3分,共12分)

说明:

请仔细阅读左栏的程序代码,将程序运行结果写在“运行结果”一栏。

程序一

public class Test {

public static void main (String[] args) {

String s1=new String("Hello");

String s2="Hello";

String s3="Hello";

String s4=s1;

}

}

运行结果

false

true

true

true

true

true

程序二

public class Test {

private static void printArray(int[] arr) {

for(int i=0;i< ;i++)

",");

"\n");

}

private static void changeValue(int value) {

value*=2;

}

private static void changeValue(int[] arr) {

for(int i=0;i<;i++)

arr[i]*=2;

}

public static void main (String[] args) { int[] arr={1,2,3,4,5};

changeValue(arr[0]);

printArray(arr);

changeValue(arr);

printArray(arr);

}

}

运行结果

1,2,3,4,5,

2,4,6,8,10,

程序三

class MyException extends Exception {

public MyException(String message) {

super(message);

}

}

public class Test {

private static void fun1() throws MyException {

throw new MyException("An MyException object is thrown in fun1().");

}

private static void fun2() throws MyException {

try {

fun1();

}

catch(NullPointerException ex) {

"NullPointerException:"+());

}

finally {

"Go through finally code in fun2().");

}

}

public static void main (String[] args) {

try {

fun2();

}

catch(MyException ex) {

"MyException:"+());

}

catch(Exception ex) {

"Exception:"+());

}

}

}

运行结果

Go through finally code in fun2().

catch MyException object. Message:An MyException object is thrown in fun1().

四、程序改错题(每题3分,共12分)

说明:

下述程序中都包含着错误而不能通过编译。请在右栏指出程序错误的原因(可指明行号),并修改程序使其可以通过编译。

程序一

1 public class Main {

2 public static final A Aobj=null;

3 public static void main(String[] args) {

4 Aobj=new A();

5 }

6 }

7 class A{

8 }

更正

(1)去掉final

(2)

去掉main()函数中的赋值语句,定义语句改为:

public static final A Aobj=new A();

程序二

01 public class Test {

02 public static void main(String[] args) {

03 MyClass obj=new MyClass();

04 +=",World!";

05 }

07 }

08 class MyClass {

09 public String Info="Hello";

10 public MyClass(String Info)

11 {

12 =Info;

13 }

14 }

更正

尝试调用默认构造函数。但在用户指定了一个构造函数之后,不再允许直接调用默认构造函数。

更正:

Test obj=new Test("Hello");

程序三

01 abstract class Animal {

02 public abstract void saySomething() {

03 "你想说什么就说吧!");

04 }

05 }

06 class Dog extends Animal {

07 public void saySomething() {

08 "我现在有了第二职业:捉耗子!");

09 }

10 }

11 public class Test {

12 public static void main (String[] args) {

13 Animal ani=new Dog();

14 ();

15 }

16 }

更正

03句去掉abstract。

或者去掉Animal类saySomething方法中的所有实现代码。

六编程题(共36分)

说明:

(1)编程题共分为两组:简单编程题与综合编程题。简单编程题不要求写出完整的可运行的程序。综合编程题要求写出的程序必须是可以通过编译的完整的程序。

(2)请在试卷后所附的答题纸上书写程序代码,注明题号。

(3)代码要书写规范,卷面整洁。

点评:

1 简单编程题(每题4分,共20分)

(1)编写代码生成10个位于[50,100]区间的整数。

点评:我本意是要求学生生成随机数,但题目没有强调是随机数,所以,这道题简直就是送分题,难度大大降低。

(2)编写一个方法,接收一个整数数组作为参数,此方法会找出其最大值、最小值和平均值。

要求使用递归方法实现。

点评:这道题看上去简单,但其实难度不小。

问题的关键在于如何在方法的递归调用中暂存数据。这有两种方式实现:

第1种是将最大值、最小值和平均值作为类的字段,而将求值的递归函数作为类中的方法,在方法的每次递归调用中直接修改类中的相应字段。

第2种是创建一个新类,为其设计几个字段来代表最大值、最小值、总和,再提供一个公有方法用于得到平均值,然后将其作为递归函数的一个参数传送。

本题设计时应该将“平均值”改为求“数组元素的总和”,这样可以大大降低本题的难度,这是我设计试题时失误的地方。

(3)如果你设计的一个类只允许创建一个实例,你会如何设计它写出类的框架代码。

如果希望你设计的类最多只能创建3个实例,你又该如何修改你的代码

再扩充一下:

如果要求你设计一个类,在程序运行时才决定它最多能创建的实例个数,你打算如何设计它

点评:

(4)为了按内容来比较属于同一类型的两个对象的“大小”,JDK中定义了一个Comparable接口用于供程序员自定义两个对象的比较规则,此接口声明如下:

public interface Comparable

{

int compareTo(Object other);

}

实现了此接口的两个对象(不妨称之为X和Y)可以相互比较:两对象X和Y相等,compareTo()方法返回0,X小于Y时compareTo()方法返回一个负数(通常设为-1),X大于Y时返回正数(通常设为1)。

请编写一个方法,接收一个Comparable对象数组作为参数,然后,此方法对此数组中的对象进行升序排列。

(5)从1到100的100个整数,以某种随机的方式进行排列,然将它们挨个放到一个整数数组中,此数组只能容纳99个整数,因此,必定会有一个整数会丢弃。

编写一个函数,接收一个包容99个整数的数组作为参数,找出被丢弃的哪个整数。

另外,你如何保证此函数接收的数组满足以下预设的条件

1)数组包容99个整数

2)数组中的整数均在[1,100]的范围之内

3)数组中不包含两个相同的整数

如果函数接收到的数据不满足上述要求,你打算如何处理写出你的处理策略。

点评:

这道题其实来自于软件公司的面试题。大多数同学都能顺利地回答第一问,虽然算法不优化。

第2问其实是了解一下学生是否知道如何实施“防卫型”编码,仅有少数学生给出了可行的实现方案。

2 综合编程题(16分)

以下为一棵有序二叉树:

图 2

请用Java实现上述数据结构,并编写一个函数按前序方式遍历此树的所有节点。

说明:

(1)程序必须为完整的可编译运行的Java Application。

(2)假设树中每个节点中都保存着一个整数,代表此节点所保存的数据。

(3)所谓前序遍历,是指从树的根节点开始,先输出根节点保存的数据,然后输出左子树根节点保存的数据,再输出右子树根节点保存的数据,由此不断递归,当访问完树中的所有节点时,遍历完成。

(4)在main()函数中编写示例代码创建上图中的二叉树,调用写好的函数,输出前序遍历结果:1,2,3,4,5

(5)请遵循Java软件工程师的代码开发规范:在你写的代码中加上注释,并注意变量和类的名字要望名知义,必要的缩进和空行等,让你的代码规范易读。

评分标准:

(1)能以面向对象的思想用Java实现“二叉有序树”这一数据结构(6分)

(2)能编写出前序遍历树的函数(6分)

(3)在main()中能写出示例代码完成所要求的工作:创建树和输出遍历结果(4分)

最新JAVA语言与面向对象程序设计课后习题答案

1 第1章面向对象软件开发概述 2 1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向3 过程的编程语言各两种。 4 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更5 接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世6 界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 7 面向过程的编程语言:C,Pascal, Foratn。 8 面向对象的编程语言:C++, Java,C#。 9 2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽10 象出对象的概念。 11 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中12 的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有13 具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是14 类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一15 个具体的电视机,如“我家那台电视机”。 16 3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学17 生”,试为这个对象设计状态与行为。 18

答:对象都具有状态和行为。 19 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是20 变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的21 状态。 22 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变23 对象的状态。 24 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、25 入学成绩等; 26 学生的行为:自我介绍、入学注册、选课、参加比赛等。 27 4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生” 28 与对象“大学生”是什么关系? 29 答:对象间可能存在的关系有三种:包含、继承和关联。 30 对象“班级”与对象“学生”是包含关系。 31 对象“学生”与对象“大学生”是继承关系。 32 5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么? 33 答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的34

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.wendangku.net/doc/e512830270.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/e512830270.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/e512830270.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

Java面向对象测试试题

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

Java面向对象编程练习题精编

J a v a面向对象编程练习 题精编 Lele was written in 2021

Java面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是(SE)、( EE )、( ME )。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置 Path为()、classpath为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 5.Java程序可以分成两类,即()和()。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是(B )A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是(B) A.java B.java AppFirst

C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其class文件为,则 运行该小程序的命令为(B) A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在 根目录的(A)文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种 D 语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是 D 。 A.函数B.过程C.变量 D.类 三、简答题(十分重要) 1.Java语言有哪些特点 跨平台、一种简单、面向对象、分布式、半编译半解释、健 壮、安全、多线程 2.JDK安装完成后,如何设置环境变量 Path 配置:

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

JAVA面向对象基础测试题,继承,封装,多态等测试题

JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 } 07 public static void main(String[] args) { 08

Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04 Question q = new Question();

05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4 正确答案:B解析: 3.

程序执行的结果是:()。 01 public class Answer { 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println(" main:score = " + score); 07 } 08 void add(int score) { 09 System.out.println(" add:score=" + score++); 10 } 11

Java面向对象练习经典题

JA V A程序作业题 1、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。 2、编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。 3、建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类的字段都以属性的方式对外提供数据输入输出的功能。 4、编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。 5. 编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。 7.创建一个类包含有protected数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据 9 编写一个控制台应用程序,完成下列功能,并回答提出的问题。 1) 创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。 2) 从A继承一个名为C的新类,并在C内创建一个成员变量B。不要为C创建构造函数。 3) 在Main方法中创建类C的一个对象,写出运行程序后输出的结果。 4) 如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么? 10 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。 1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。 2) 再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。 3) 在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。 11. 创建一个类,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据成员被存储时,将其乘以100;当其被读取时,将其除以100。 12. 定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed (最大速度)、Weight(重量)等字段。然后以该类为基类,派生出bicycle、car等类。并编

面向对象程序设计java语言程序设计期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3 个文件名与类名相同而扩展名为. class的字节码文件。

Java面向对象编程上机-练习题汇总

【练习题】类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A 类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 【练习题】类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。 【练习题】类的成员变量与方法、构造方法 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。 再定义diaplay方法,用于将时间信息打印出来。 为MyTime类添加以下方法: addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 【练习题】构造方法 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 【练习题】构造方法: 编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。

《面向对象程序设计JAVA语言程序设计》期末复习试题及部分答案

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i 的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C

java面向对象练习题

java面向对象练习题 1定义了一个函数来接收一年并确定它是否是闰年什么是闰年?可以除以4而不是100,或者可以除以400,那么今年是闰年 2年,使用do-while重写猜谜游戏(希望比老师更完美) 3定义了一个接收数组的函数,找到数组中的最大值,并计算数组中所有奇数的和4定义一个函数来接收数组,并将数组中元素的最大值放在数组的第一个位置练习5:输出1-150个奇数并计数 6练习:计算1-100的和。奇数和偶数是什么?练习7:用“边做边做”来计算1到100之间的偶数练习8:用边做边猜数字的游戏9打印99 10的乘法计算1-100个奇数的和 11定义一个函数来执行加法函数操作,而不向调用者返回值 12要求:定义一个函数来比较两个数字的大小,并将最大的数字返回给呼叫者要求:定义一个函数,根据学生的分数将相应的分数返回给调用者。 14要求:定义一个函数做加法函数,直接打印,不需要返回结果给调用者要求1:定义一个函数来接收数组并取出数组中的最大值 16要求2:定义一个接收数组的函数,并将数组中的最大值放在数组的第一个位置17要求3:定义一个接收数组的函数,并将数组中的最大值放在数组的最后一个位置定义一个函数来接收数组并翻转数组中的元素例如:国际[] arr = {1,2,3,4}-{4,3,2,1 }; 19练习:定义接收二维数组的函数,计算二维数组中所有元素的和,并计算奇数

XXXX年龄的方法 29练习:首先编写一个Person类,并计算创建Person的对象的数量练习:描述一种动物。鸟类和动物有名字和年龄属性,而且会移动。鸟类也有名称、年龄、颜色、属性和移动行为。31定义接收无序数组的方法。要对数组进行排序,请使用二分法来查找指定的元素 32描述了三种类型的汽车,宝马和奔驰,它们都有颜色、名称它还具有运行功能定义一个方法可以接收任何汽车对象,定义一个方法可以返回任何汽车对象描述动物、蛇、鱼和三类。编写一个可以接收任何动物对象的方法,定义一个可以接收任何动物类型对象 的方法,并调用该动物类型对象的特定方法34动物、狗和鱼的描述。动物有名字和颜色两种属性,动物有移动的行为。 199狗的一个独特方法是咬人。鱼特有的行为:吹泡泡 35练习:描述三类图形,矩形和圆形。每张图表都有计算面积和周长的方法。 清楚地描述了三类之间的关系 36描述了一类学生,它有两个属性id和name。学生有学习行为功能,但有些学生也在学习过程中赚钱。普通学生:不能通过学习赚钱的学生 可以通过学习赚钱的学生 37描述了图形、矩形、圆形和三个类。定义接收所有图像对象并打印图形对象的周长和面积的方法。定义一个返回任何图形对象的方法38描述了三类汽车,宝马和奔驰。汽车有颜色和名称它还具有运行

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题 一、选择题 1、下列哪个是Java中的关键字(C )。 A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类DataOutputStream的构造方法正确的是(A )。 A、new dataOutputStream(new FileOutputStream(“out.txt”)); B、new dataOutputStream(“out.txt”); C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new FileWriter(“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为(C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是(A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 https://www.wendangku.net/doc/e512830270.html,ng.Exception https://www.wendangku.net/doc/e512830270.html,ng.RuntimeException https://www.wendangku.net/doc/e512830270.html,ng.IndexOutOfBoundsException https://www.wendangku.net/doc/e512830270.html,ng.ArrayIndexOutOfBoundsException https://www.wendangku.net/doc/e512830270.html,ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。(B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。 B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch 语句 捕获。 D、方法X不能声明抛弃异常。 7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false 8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A )。 A、cat B、Java C、example D、null 9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的(C )。 A、表达式s1==s2为真 B、s1和s2是同一个对象

2012-2013java面向对象期末测试题(带答案)

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。 2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物 4.关于选择结构下列哪个说法正确? (B ) A .if 语句和 else 语句必须成对出现 B .if 语句可以没有else 语句对应 … … …… …… …… …… …… … …… …装 …… …… …… … …… …订 …… …… …… … …… …线 …… …… …… … …… …… …… …… …

JAVA填空题复习(有答案)

JAVA复习 1、面向对象程序设计的三个特征是_封装、多态、继承。 2、Java语言的主要特点有简单性、安全性、面向对象、平台无关性。 3、Java是面向对象语言,类是客观事物的_抽象_ __,而对象是类的_实例_ __。 4、类_ _是Java程序中基本的结构单位。 5、Java语言是一种完全的_面向对象 _程序设计语言 6、布尔型常量有两个值,它们分别true_ _、_ false _ 7、表达式1/2*9的计算结果是0。 8、表达式“b”+10的值为_”b10”,‘b'+10的值为108__ 9、String s1=“China”; int n=s1.length( ); n的值为_5__ 10、_常量名__必须完全大写。 11、Java中用于定义整形变量的关键字有四个:byte、_short__、_int_ __、long。 12、在Java语言中,简单数据类型包括:整数类型、浮点类型、字符类型_和布尔类型。 13、Java的类型、单精度浮点型、布尔型数据的保留字分别是:float_、boolean。 14、JAVA语言中提供了两种类型的字符串类来处理字符串,它们是String_和StringBuffer类 15、Java程序的种类有:内嵌于_HTML__文件中,由浏览器

来观看的_applet___,必须继承__Applet__;可独立运行的_application___,必须包含_main()方法__ 16、Java语言中,所有的类都是Object的子类,Java的窗口通常是JFrame__的子类,抽象 _类只能定义但不能被实例化,_ 最终 _类不能被继承异常类都是_Exception_的子类。 17、Java源程序文件和字节码文件的扩展名分别为_.java___和_.class___ 18、一般Java程序的类体由两部分组成:一部分是_属性_,另一部分是_方法_ 19、子类对父类继承来的属性重新定义称为__重写__。子类对自身拥有的同名方法的重新定义称_重载___。 20、分别用__class_关键字来定义类,用_new__关键字来分配实例存储空间。 21、this指_当前对象___,super指_父对象___。 22、Java中类成员的限定词有以下几种:__ private_ _, public __ _, protected __ _, _缺省_ _。其中,_public __的限定的范围最大。_ private __的限定只能内部访问。Java中成员变量用___final__修饰符修饰的是常量。 23、在Java语言中,_ _包_是组织Java程序中类的一种手段,其作用与Windows系统中的__文件夹__类似。创建包的语句必须是文件的第一 __个语句

Java面向对象知识测试__A卷_答案分析

面向对象部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面描述函数重写错误的是 A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的//接口所有方法前面都是默认public abstract 2.下面关于类的设计思路描述错误的是 ( ) A. 根据需求定义类所包含的字段(成员变量) B. 根据面向对象的思想要求,隐藏属性和实现细节之后,可以提供公共的访问方式 C. 封装之后的字段在本类内也必须使用get/set方法//private修饰之后可以 在本类中直接使用,不需要通过get/set方法调用 D. 按需求可以在类中定义若干构造方法

3.分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填 入()。 class A { public void test() { System.out.println("A类的test()方法"); } } class B extends A { public void test() { System.out.println("B类的test()方法"); } public static void main(String args[]) { } } A. A a = new B(); a.test(); B. A a = new A(); a.test(); C. B b = new A(); b.test(); D. new B().test(); 4.关于封装下面介绍错误的是()。 A. 封装隐藏实现细节 B. 封装提高重用性。 C. 封装提高安全性 D. 只有被private修饰才叫做封装//仅仅是封装的一种

Java面向对象编程练习试题包括答案.docx

【练习题】 01. 类的成员变量: 猜数字游戏:一个类 A 有一个成员变量 v,有一个初值 100。定义一个类,对 A 类的成员变量 v 进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。import .*; class A{ int v = 100; A(){ =v; } } public class b01 { public static void main(String args[]){ A a = new A(); Scanner intput = new Scanner; int intputvalue = (); if(intputvalue> "你的输入大于这个值 "); if(intputvalue< "你的输入小于这个值 "); if(intputvalue== "猜测成功 "); } } 【练习题】 02. 类的成员变量: 请定义一个交通工具 (Vehicle)的类,其中有: 属性:速度 (speed) ,体积 (size)等等 方法:移动 (move()) ,设置速度 (setSpeed(int speed)),加速speedUp(),减速speedDown()等等 . 最后在测试类Vehicle 它初始化 speed,size 对速度进行改变。 中的 main() 中实例化一个交通工具对象,并通过方法给的值,并且通过打印出来。另外,调用加速,减速的方法 class Vehicle {int speed; int size; void move(){ }; void setSpeed(int speed){ = speed; } void speedUp(){ speed = speed+1;

《JAVA面向对象程序设计》练习题-参考答案

《JA V A语言程序设计》练习题1 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。 public class test { static int i; public int aMethod() { i++; return i; } public static void main (String args[]) { Test test=new Test() ; test.aMethod () ; System.out.println (test.aMethod()) ; } } a) 0 b) 1 c) 2 d) 3 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。

相关文档
相关文档 最新文档