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) {System.out.println(new A());}}class A{}Java在运行上述代码时输出一个很奇异的结果:mytest.A@60aeb0尝试解释一下可能的原因.点评:本题的关键在于虽然类A没有定义任何方法,但它隐含着从基类Object中继承了toString()方法。

答案必须点出这一结果是执行toString()方法得到的。

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

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

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

3 在Java GUI程序中,布局管理器是一个很重要的概念。

Java面向对象测试题(一)

Java面向对象测试题(一)

Java面向对象测试题(一)注:测试时间:3小时编程题在电脑上编写,保存在已学生名字为文件名的文件夹中一、选择题(共30分,每题1分<多选、少选、错选不得分>)1、下面有关Java异常处理模型的说法错误的是()。

a)一个try块只能有一条catch语句b)一个try块中可以不使用catch语句c)Catch块不能单独使用,必须始终与try块在一起d)Finally块不能单独使用,必须始终与try块在一起2、下列选项中关于Java中super关键字的说法错误的是()。

a)super关键字是在子类对象内部指代其父类对象的引用b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类c)子类可以通过super关键字调用父类的方法d)子类可以通过super关键字调用父类的属性3、下列选项中关于Java中this关键字的说法错误的是()。

a)this是在对象内部指代对象自身的引用b)this关键字可以在类中的任何位置使用c)this只和特定的对象关联,而不和类关联d)同一个类的不同对象有不同的this4、在Java中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的()方法不属于Object类的方法。

a)equals(Object obj)b)getClass()c)toString()d)trim()5、给定如下Java代码,关于super的用法,以下描述正确的是()。

class C extends B{public C(){super();}}a)用来调用类B中定义的super()方法b)用来调用类C中定义的super()方法c)用来调用类B的无参构造方法d)用来调用类B中第一个出现的构造方法6、在Java中,有如下两个类Student和Person。

如果Student是Person的子类,则下列声明对象x的语句中错误的是()。

a)Person x = new Student()b)Person x = new Person()c)Student x = new Person()d)Student x = new Student()7、下列对Java中的继承描述错误的说法是()。

Java面向对象练习题

Java面向对象练习题

Java⾯向对象练习题1.猜数字游戏:⼀个类A有两个成员变量v、num,v有⼀个初值100。

定义⼀个⽅法guess,对A类的成员变量v,⽤num进⾏猜。

如果⼤了则提⽰⼤了,⼩了则提⽰⼩了。

等于则提⽰猜测成功。

在main⽅法中测试package hello.guess;public class Guess {// 创建属性private int a = 100;public static void main(String[] args) {int num;Guess g = new Guess();num = 101;g.game(num);num = 99;g.game(num);num = 100;g.game(num);}// 构造⽅法public void guess() {System.out.println("创建对象。

");}//书写⽅法public void game(int num) {if (num < a) {System.out.println("猜的有点⼩了,⼩了多少不知道呢!!!");System.out.println(num);} else if (num > a) {System.out.println("猜的有点⼤了,⼤了多少不知道呢!!!");System.out.println(num);} else {System.out.println("猜对了");System.out.println(num);}}}运⾏结果:2.计算圆的⾯积和周长:创建⼀个圆Circle类。

为该类提供⼀个变量r表⽰半径,⼀个常量PI表⽰圆周率;同时为该类提供两个⽅法:⽅法⼀⽤于求圆的⾯积,⽅法⼆⽤于求圆的周长;为该类提供⼀个⽆参的构造⽅法,⽤于初始化r的值为4。

在main⽅法中测试。

package hello.circle;/*** 2.创建⼀个圆Circle类。

Java 面向对象编程练习题及答案

Java 面向对象编程练习题及答案

Java 面向对象编程练习题及答案题目一:洗衣机类设计描述:设计一个洗衣机类,具有以下属性和方法:属性:- 品牌(brand):字符串类型,表示洗衣机的品牌- 容量(capacity):整型,表示洗衣机的容量(以公斤为单位)- 是否开机(isOn):布尔类型,表示洗衣机是否处于开机状态方法:- 开机(turnOn):将洗衣机的状态设置为开机- 关机(turnOff):将洗衣机的状态设置为关机- 洗衣服(washClothes):接收一个整型参数 clothesWeight,表示待洗衣物的重量(以公斤为单位)。

如果洗衣机处于开机状态,并且洗衣机容量足够洗这些衣物,则打印出洗衣机正在洗衣服;否则,打印出洗衣机无法洗衣物。

答案一:```javapublic class WashingMachine {private String brand;private int capacity;private boolean isOn;public WashingMachine(String brand, int capacity) { this.brand = brand;this.capacity = capacity;this.isOn = false;}public void turnOn() {this.isOn = true;}public void turnOff() {this.isOn = false;}public void washClothes(int clothesWeight) {if (isOn && clothesWeight <= capacity) {System.out.println("洗衣机正在洗衣服");} else {System.out.println("洗衣机无法洗衣物");}}}```题目二:学生类设计描述:设计一个学生类,具有以下属性和方法:属性:- 姓名(name):字符串类型,表示学生的姓名- 年龄(age):整型,表示学生的年龄- 成绩(score):整型,表示学生的成绩方法:- 构造方法(Constructor):接收姓名、年龄和成绩作为参数,创建一个学生对象- 获取姓名(getName):返回学生的姓名- 获取年龄(getAge):返回学生的年龄- 获取成绩(getScore):返回学生的成绩答案二:```javapublic class Student {private String name;private int age;private int score;public Student(String name, int age, int score) { = name;this.age = age;this.score = score;}public String getName() {return name;}public int getAge() {return age;}public int getScore() {return score;}}```题目三:图书馆管理系统设计描述:设计一个图书馆管理系统,包含图书(Book)、图书馆(Library)和借阅者(Borrower)三个类。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。

答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。

面向对象编程的主要特点包括封装、继承和多态。

封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。

继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。

多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。

面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。

通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。

2. 试题二题目:什么是类?请简要描述类的特点和组成部分。

答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。

类是用来创建对象的蓝图,可以通过实例化类来创建对象。

类的特点包括了封装、继承和多态。

类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。

继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。

多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。

类的组成部分包括了属性(Field)和方法(Method)。

属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。

方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。

3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。

答案:传值和传引用是在方法调用时,参数传递的两种方式。

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。

4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。

5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

java面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是A.300 300B.100 100C.300 100D.100 3002.程序执行的结果是:::x =" + x++; }}A.doStuff:x =7B. main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:A.cB.iC.dD.s5.程序执行的结果是:A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:A.输出:0000B.输出:4321C.代码public EmployeeString id {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo { / more code here / }B. protected void foo { / more code here / }C. public void foo { / more code here / }D. private void foo { / more code here / }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:public class Base { public static final String FOO = "foo";A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount;public double getCommision {return getSalesAmount 0.15;estA {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount { return 1230.45; }B.public double getSalesAmount { return 1230.45; }C.private double getSalesAmount { return 1230.45; }D.protected double getSalesAmount { return 1230.45; }20.关于下列代码说法正确的是:public interface A { public void doSomethingStringthing;}public class AImpl implements A { public void doSomethingString msg { }}public class B { public A doit { return null; } public String execute { return null; }}public class C extends B { public AImpl doit { return null; } public Object execute { return null; }} A. 所有类和接口都编译成功 B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A { public void aMethod;}interface B { public void bMethod;}interface C extends A, B { public void cMethod;}class D implements B { public void bMethod {}}class E extends D implements C { public void aMethod {} public void bMethod {} public void cMethod {}}A.编译失败B.如果定义D e = new E;, 那么 e.bMethod;调用D类的bMethod方法C.如果定义D e = Dnew E;, 那么 e.bMethod;调用D类的bMethod方法D.如果定义D e = Dnew E;, 那么 e.bMethod;调用E类的bMethod方法22.请看下列代码:处理请求";}};}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction { public void doService;}B.public final class ServletAction { public void doService;}C.public class ServletAction { public void doService;}D. public interface ServletAction { public void doService;}23.下列代码运行的结果是:A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:A.输出:testB.输出:nullC.代码行,编译出错D.代码public String toString {行,编译出错25.请看下列代码:关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B 12,正确答案:BC 13,正确答案:C 14,正确答案:B 15,正确答案:D 16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D 21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

java模拟题-1选填

java模拟题-1选填

一、选择题1、面向对象程序设计语言的三个基本特征是?( D )A. 封装、接口和多态B. 继承、接口和动态C. 跨平台、接口和动态D. 封装、继承和多态2、关于继承和实现说法正确的是? ( A )A、类可以实现多个接口,接口可以继承(或扩展)多个接口B、类可以实现多个接口,接口不能继承(或扩展)多个接口C、类和接口都可以实现多个接口D、类和接口都不可以实现多个接口3、关于访问权限说法正确的是? ( B )A、类定义前面可以修饰public,protected和privateB、内部类前面可以修饰public,protected和privateC、局部内部类前面可以修饰public,protected和privateD、以上说法都不正确4、类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep 前面必须用的关键词是? ( B )A. classB. staticC. publicD. final5、下列关于构造方法不正确的是:(D)A. 类的构造方法和类同名B. 一个类可以有多个构造方法C. 在实例化对象时必须调用类的构造方法D. 构造方法可以和该类其他方法一样被该类对象调用6、关于匿名内部类叙述正确的是? ( B )A、匿名内部类可以继承一个基类,不可以实现一个接口B、匿名内部类不可以定义构造器C、匿名内部类不能用于形参D、以上说法都不正确7、关于抽象类的叙述正确的是?( A )A. 抽象类不可以实例化,或者说抽象类不能声明为对象B. 抽象类就是一种特殊的接口C. 抽象类的方法都是抽象方法D. 抽象类的导出类一定不是抽象类8、下列选项中,用于在定义子类时声明父类名的关键字是:( C )A. interfaceB. packageC. extendsD. class9、关于访问权限,说法正确的是? ( A )A、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testBB、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testBC、访问权限大小范围:public > 包权限 > protected > privateD、访问权限大小范围:public > 包权限 > private > protected10、类Car里面有个方法run(),如果直接用Car.run(),则方法run前面必须用的关键词是? ( D )A. classB. finalC. publicD. static11、关于匿名内部类叙述正确的是? ( )A、匿名内部类不能重写父类的方法B、匿名内部类可以继承一个基类,不可以实现一个接口C、匿名内部类不可以定义构造方法D、以上说法都不正确12、关于访问权限,说法正确的是? ( C )A、访问权限大小范围:public > 包权限 > protected > privateB、访问权限大小范围:public > 包权限 > private > protectedC、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testBD、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB13、关于Java语言描述正确的是? ( B )A、 java和C++都保留了指针B、 java和C++都有三个特征:封装、继承和多态C、 java的垃圾回收机制是指程序结束时系统自动回收内存D、以上说法都不正确14、如果要建立一个puter的包,叙述正确的是? ( D )A、在代码中,不一定是第一句,只要是类定义前,加入package语句即可B、只需在代码中加入“package ;”一个语句C、必须在代码中加入“package ;”和“package puter;”两个语句D、只需在代码中加入“package puter;”一个语句15、不允许作为类及类成员的访问控制符是:( C )A. publicB. privateC. staticD. protected16、要导入java/awt/event下面的所有类,叙述正确的是?( C )A、import java.awt.*和import java.awt.event.*都可以B、只能是import java.awt.*C、只能是import java.awt.event.*D、import java.awt.*和import java.awt.event.*都不可以17、下列修饰符中与访问控制权限无关的是?( D )A.private B.publicC.protected D.final18、关于下面程序ThisTest.java运行结果说法正确的是:( B )public class ThisTest {public static void main(String args[]) {String x="7";int y = 2;int z=2;System.out.println(x+y+z);}}A. 11B. 722C. 22D. 程序有编译错误19、关于final说法正确的是? ( B )A、final类的方法肯定不能被同一个包的类访问B、final类的方法能否被同一个包的类访问不是由final决定C、final方法等同于private方法D、final对象本身的引用和值都不能改变20、关于抽象类和接口叙述正确的是? ( D )A、抽象类和接口都能实例化的B、抽象类不能实现接口C、抽象类方法的访问权限默认都是publicD、接口方法的访问权限默认都是public21、如果要建立一个puter的包,叙述正确的是? ( A )A、只需在代码中加入“package puter;”一个语句B、只需在代码中加入“package java.scut;”一个语句C、必须在代码中加入“package java.scut;”和“package puter;”两个语句D、在代码中,不一定是第一句,只要是类定义前,加入package语句即可22、列表(List)和集合(Set)下面说法正确的是? ( A )A) Set中至多只能有一个空元素B) List中至多只能有一个空元素C) List和Set都可以包含重复元素的有序集合D) List和Set都是有序集合23、如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是? ( )A、protected void setColor() { …}B、void setColor() { …}C、public void setColor() { …}D、以上语句都可以用在类BlueGlass中24、导出类调用基类的构造器必须用到的关键字:( C )A. thisB. finalC. superD. static25、定义一个接口必须使用的关键字是?( C )A、publicB、classC、interfaceD、static26、字符界面下接受用户从键盘输入,需要import的包是:( C )A. ng包B. java.awt包C. java.io包D. java.applet包27、下面这三条语句System.out.println(“is ”+ 100 + 5);System.out.println(100 + 5 +“ is”);System.out.println(“is ”+ (100 + 5));的输出结果分别是? ( D)A、is 1005, 1005 is, is 1005B、is 105, 105 is, is 105C、is 1005, 1005 is, is 105D、is 1005, 105 is, is 105(答案有误)28、关于容器下面说法正确的是? ( D )A、列表(List)和集合(Set)存放的元素都是可重复的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 {
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);
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().");
如果要你开发出一个Windows资源管理器(图 1),你将如何应用合适的“布局管理器”来实现其界面?
图 1 Windows 7中的资源管理器
请指明你在图 1中的哪部分应用哪种布局管理器。
4 int和Integer都可以代表一个整数,这两者在使用上有什么区别吗?为什么JDK中要设计两个数据类型来表示同一种数据?
在学习了面向对象技术之后,你能对上述问题给出一个较好解决方案来吗?
请以计算圆形、矩形和三角形三种几何图形的面积为例,列出关键代码或者绘出UML图来展示你的方案。
三 阅读程序题(每题3分,共12分)
说明:
请仔细阅读左栏的程序代码,将程序运行结果写在“运行结果”一栏。
程序一
public class Test {
一、判断题(正确的描述打钩,错误的打叉,每题1分,共10分)
1 抽象类中不可以有非抽象的方法。 (错)
2 如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException
异常。 (错)
3 Java中Object类是最顶层的类。 (对)
4 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。 (对)
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) {
}
catch(Exception ex) {
System.out.println("Exception:"+ex.getMessage());
}
}
}
运行结果
Go through finally code in fun2().
catch MyException object. Message:An MyException object is thrown in fun1().
03 System.out.println("你想说什么就说吧!");
04 }
05 }
06 class Dog extends Animal {
07 public void saySomething() {
08 System.out.println("我现在有了第二职业:捉耗子!");
09 }
10 }
03 MyClass obj=new MyClass();
04 +=",World!";
05 System.out.println();
06 }
07 }
08 class MyClass {
09 public String Info="Hello";
10 public MyClass(String Info)
2 什么叫多态?你是如何理解多态的?请设计一个简单的示例,展示多态的用法。
点评:
几乎所有的Java教材都要介绍多态的概念,但只有能用自己的语言说清楚,并能自己设计一个典型实例展示多态特性的,才算是真正弄明白了。
从试卷中发现,不少同学弄混了方法重载与方法覆盖,认为 “方法重载”就是多态。
3 在Java GUI程序中,布局管理器是一个很重要的概念。谈谈你对这个概念的理解,并进而回答以下问题:
5 可以通过javac来运行一个Java Application。 (错)
6 可以在子类构造函数中通过this关键字调用基类的构造函数。 (错)
7 Java语言是IBM公司设计的一种面向对象程序设计语言。(错)
8 一个Unicode字符占4个字节。 (错)
9 在循环语句中,使用continue;语句可以跳出循环。 (错)
}
finally {
System.out.println("Go through finally code in fun2().");
}
}
public static void main (String[] args) {
try {
fun2();
}
catch(MyException ex) {
System.out.println("MyException:"+ex.getMessage());
true
true
true
true
程序二
public class Test {
private static void printArray(int[] arr) {
for(int i=0;i< arr.length;i++)
System.out.print(arr[i]+",");
System.out.println("\n");
}
private static void fun2() throws MyException {
try {
fun1();
}
catch(NullPointerException ex) {
System.out.println("NullPointerException:"+ex.getMessage());
本题设计时应该将“平均值”改为求“数组元素的总和”,这样可以大大降低本题的难度,这是我设计试题时失误的地方。
六 编程题(共36分)
说明:
(1)编程题共分为两组:简单编程题与综合编程题。简单编程题不要求写出完整的可运行的程序。综合编程题要求写出的程序必须是可以通过编译的完整的程序。
(2)请在试卷后所附的答题纸上书写程序代码,注明题号。
(3)代码要书写规范,卷面整洁。
点评:
1 简单编程题(每题4分,共20分)
(1)编写代码生成10个位于[50,100]区间的整数。
点评:我本意是要求学生生成随机数,但题目没有强调是随机数,所以,这道题简直就是送分题,难度大大降低。
(2)编写一个方法,接收一个整数数组作为参数,此方法会找出其最大值、最小值和平均值。
要求使用递归方法实现。
点评:这道题看上去简单,但其实难度不小。
另外,你还记得JDK用于设计GUI(图形用户界面)程序,这两者有何区别?
你还用过其他的编程语言或开发工具设计GUI程序吗?如果让它们与Java进行对比,你觉得使用Java设计GUI程序的优点在哪,缺点在哪?
9 在面向对象程序中,实现代码复用主要有两种方式:继承和组合。
11 {
12 =Info;
13 }
14 }
更正
尝试调用默认构造函数。但在用户指定了一个构造函数之后,不再允许直接调用默认构造函数。
更正:
Test obj=new Test("Hello");
程序三
01 abstract class Animal {
02 public abstract void saySomething() {
请设计两段示例代码,分别展示出Java实现这两种方式的代码框架。
如果在某个实际开发场景中这两种方式都可用,你认为应该优先选择哪一种?原因?
10 各种类型的几何图形都有自己的面积计算公式,但在一个CAD(计算机辅助设计)软件中,图形的种类非常多,如果程序需要计算出任何一种图形的面积,最简单的想法是使用条件判断语句根据图形类型来选择相应的计算公式。然而,这种方法不太好,可能会导致嵌套层次很深的条件判断语句。另外,如果软件要扩充功能以支持新的图形种类,则又不得不修改调用不同公式计算图形面积的代码。
四、程序改错题(每题3分,共12分)
说明:
下述程序中都包含着错误而不能通过编译。请在右栏指出程序错误的原因(可指明行号),并修改程序使其可以通过编译。
程序一
1 public classMain{
2 public static final A Aobj=null;
3 public static void main(String[] args) {
System.out.println(new A());
}
}
相关文档
最新文档