Java面向对象测试精彩试卷试题经典.doc
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面向对象编程练习试题包括答案.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;=speed;}void speedDown(){speed = speed-1;=speed;}}public class b01{ public static void main(String args[]){Vehicle a = new Vehicle();(55);=80;();"Speed:"++"\nsize:"+;}}【练习题】 03. 类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
Java面向对象试题_百度文库
Java面向对象试题共30道题,每题3分,满分90分,60分算及格,不及格的要补考。
1 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要有子类重写,应该使用()关键字来申明父类的这些方法。
(选择一项a Finalb Staticc Abstractd Void2 给定两个java程序,如下:public interface Face{int counter = 40;}public class Test implements Face{private static int counter;public static void main(String[]args{System.out.println(++counter;}}Test.java 的编译运行结果是()。
(选择一项a 40b 41c 0d 13 给定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 0b 1c 2d 34 给定java代码,如下:abstract class Shape{abstract void draw( ;}要创建Shape类的子类Circle,以下代码正确的是()。
(选择二项a class Circle extends Shape{int draw( {}}b abstract class Circle extends Shape{}c class Circle extends Shape{void draw( ;d class Circle extends Shape{void draw( {}}5 给定java代码,如下:class Parent{public void count( {System.out.println(10%3;}}public class Test extends Parent{ public void count(int i{System.out.println(10%i;}public static void main(String[]args{ Parent p = new Test( ;p.count(3;}}编译运行,结果是()。
java面向对象考试题及答案
java面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
2.Java面向对象知识测试 - 含答案
单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项? ()A.class Student{name;age;}B.class Student{String name = 1.0;int age = “26”;}C.class Student{String name;int age;}D.class Student{String name,int age;}3:类Student中成员方法声明正确是哪一项?()A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}4:类Student中构造方法声明正确的是哪一项? () A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}5:下列哪一项不是面向对象的三大特征之一? ()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。
B:封装是指隐藏实现细节,提高公共的访问方式。
C:类或者方法也是封装的一种体现。
D:仅仅private修饰的内容才是封装的体现。
7:下列哪个方法和int sum(int a,int b)是重写方法?() A:public void sum(int a,int b)B:public int sum(int a,int b)C:int sum(int a,int b,int c)D:void sum(int c,int b)8:下列程序的运行结果是:()class Test{private static int x = 10;public void show(int x){x++;System.out.println(x);}public static void main(String[] args){int x = 20; //局部变量覆盖成员变量Test t = new Test();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?() A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符? () A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?() class Animal{}class Dog extends Animal{}A:Animal a = new Animal();B:Dog d = new Dog();C: Animal a = new Dog();D:Dog d = new Animal();12:下列有关抽象类的叙述正确的是哪项?() A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?() A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()class Fu{public int num = 10;}class Zi extends Fu{public int num = 20;}class Testpublic static void main(String[] args) {Fu f = new Zi();System.out.println(f.num);Zi z = (Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();f.method();}}A:fu showB:zi showC:编译报错D:zi method16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。
Java面向对象知识测试--A卷-答案
面向对象部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下面描述函数重写错误的是A. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的//接口所有方法前面都是默认public abstract2.下面关于类的设计思路描述错误的是 ( )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.关于封装下面介绍错误的是()。
Java面向对象考试试卷(A卷)
《Java面向对象程序设计》期末考试(A卷)❖注意:最多只能选做试卷中的5道题目,多做不得分。
选做题【本题满分5分】1. 以下程序能否通过编译?如果不能通过编译,请指出产生错误的原因已经改正的办法。
class Location{private int x;private int y;public void Location(int a,int b){x=a;y=b;}public int getX(){return x;}public int getY(){return y;}public static void main(String args[]){Location loc=new Location(12,20);System.out.println(loc.getX());System.out.println(loc.getY());}}【本题满分5分】2.下程序能否通过编译?如果不能,请指出产生错误的原因,并改正之。
class StudentsScore{private static int passPoint=350;private String studentsId;private String name;private int score;public StudentsScore(String studentId , String name , int score){this.studentsId=studentId;=name;this.score=score;}public int getScore( ){return score;}public String getName( ){return name;}}class StudentTest{public static void main(String args[]){StudentsScore student1 = new StudentsScore("20010101","zhang",560);if(student1.score-StudentsScore.passPoint>=0)System.out.println("Congratulation!" + + "passes the test");elseSystem.out.println("Sorry!" + + "does not pass the test");}}【本题满分10分】3.编写一个使用this和super的程序。
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面向对象测试试题
Java面向对象测试试题一、单选题1. 下面哪个关键字可以用来声明一个抽象类?A) abstractB) finalC) privateD) protected2. 在Java中,一个类可以同时继承多个类吗?A) 可以B) 不可以3. 在Java中,接口的成员变量默认是什么修饰符?A) privateB) protectedC) publicD) 默认不写修饰符4. 下面哪种访问权限修饰符可以让子类访问父类的成员变量?A) privateB) protectedC) publicD) 默认不写修饰符5. 下面哪个关键字可以用来声明一个常量?A) constantB) finalC) staticD) default二、填空题1. 在Java中,可以通过____关键字来引入其他包中的类。
2. 在Java中,____关键字可以用来防止重写一个方法。
3. 在Java中,____关键字表示当前对象的引用。
4. 在Java中,____关键字用于表示父类。
三、编程题请编写一个Java类,实现一个矩形的类,要求具有以下功能:1. 拥有长度和宽度两个属性。
2. 拥有计算矩形面积的方法。
3. 能够输出矩形的属性信息。
```javapublic class Rectangle {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}public double getArea() {return length * width;}public void printInfo() {System.out.println("Length: " + length);System.out.println("Width: " + width);}}```使用上述代码,可以创建一个矩形对象并调用相应方法来获取矩形的面积和属性信息。
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. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5) 下面Java代码的运行结果是()。
class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() {health = 10;sex = "雄";System.out.println("执行构造方法。
Java面向对象测试试题模板
Java面向对象测试试题模板一、单项选择题(共10小题,每题2分,共20分)1. 问题一......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D2. 问题二......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D3. 问题三......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D4. 问题四......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D5. 问题五......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D6. 问题六......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D7. 问题七......................................a. 选项Ac. 选项Cd. 选项D8. 问题八......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D9. 问题九......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D10. 问题十.....................................a. 选项Ab. 选项Bc. 选项C二、填空题(共5小题,每题4分,共20分)1. 下面的代码段中,用于创建一个对象的关键字是______。
2. 当一个子类继承自一个父类时,可以通过关键字______访问父类的方法和属性。
3. ______是一种将对象从内存中销毁的机制。
java面向对象程序设计考试题及答案
java面向对象程序设计考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类的属性?A. staticB. finalC. privateD. public答案:C2. 以下哪个方法用于在Java中创建对象?A. newB. createC. makeD. construct答案:A3. 哪个关键字用于在Java中定义一个方法?A. functionB. methodC. defineD. procedure答案:B4. 在Java中,哪个关键字用于实现类的继承?A. extendsB. inheritC. deriveD. base答案:A5. Java中接口和抽象类的主要区别是什么?A. 接口没有构造方法,抽象类有B. 接口可以有实现,抽象类不能C. 接口不能有属性,抽象类可以D. 接口可以有私有方法,抽象类不可以答案:A二、填空题(每空1分,共10分)1. 在Java中,一个类可以继承另一个类的属性和方法,这种特性称为____。
答案:继承2. Java中,一个类只能继承一个父类,这是Java的____特性。
答案:单继承3. 当一个类实现了一个接口时,它必须实现接口中所有的____方法。
答案:抽象4. Java中,____关键字用于声明一个类是抽象的。
答案:abstract5. 在Java中,____关键字用于声明一个方法没有具体的实现。
答案:abstract三、简答题(每题10分,共20分)1. 请简述Java中封装的概念及其重要性。
答案:封装是面向对象编程中的一个核心概念,它指的是将对象的状态(属性)和行为(方法)结合在一起,并隐藏对象的内部实现细节。
封装的重要性在于它提高了代码的安全性和可维护性,使得对象的内部状态不会被外部代码随意访问和修改,从而保护了对象的完整性。
2. 描述Java中多态的概念及其作用。
答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。
java面向对象试题及答案
JAVA面向对象一:填空1、_____ 是JVM自带的一个线程(自动运行着的程序),用于回收没有任何引用所指向的对象。
2、_____空间用于存储使用new关键字所创建的对象;_____空间用于存储程序运行时在方法中声明的所有的局部变量;_____用于存放类的信息(包括方法),方法有_____份。
3、面向对象三大特征:_____,_____,_____.4、下面是一个类的定义,请将其补充完整。
class _____ {String name;int age;Student( _____ s, int i) {name=s;age=i;}}5、Java 语言的接口是特殊的类,其中包含______常量和_______方法。
6.如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
7. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承.8. 接口中所有方法均为________和________的。
9. Java语言中,表示一个类不能再被继承的关键字是________。
10.Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。
11、以下代码的输出结果是________________。
int i=9;char c=’a’;char d=(char)(c+i);System.out.println(d);12.继承主要强调子类在父类的基础上取”长”补”短”,而______主要强调的是类与类之间的传输13、我们在java程序中,把关键字________加到方法名称的前面,来实现子类调用父类的方法14.java语言中,调用方法时,参数传递是_____调用,而不是地址调用15.接口是一种只含有抽象方法或______的一种特殊抽象类16.abstract方法_______(不能或能)与final并列修饰同一个类17.创建一个类就是创建一个新的数据类型,而类在java中属于_____数据类型。
Java面向对象测试试题范本
Java面向对象测试试题范本一、选择题(每题5分,共20分)1.下列关于面向对象编程的说法,错误的是:A. 面向对象编程将程序组织成若干个对象,并通过对象之间的交互来实现功能B. 面向对象编程提供了封装、继承和多态等特性C. 面向对象编程只能使用Java语言实现D. 面向对象编程使代码更易于理解、维护和复用2.下列选项中,可以用于实现继承关系的关键字是:A. implementB. extendC. abstractD. final3.在Java中,哪个访问修饰符表示的成员变量或方法可以被任意类访问?A. publicB. privateC. protected4.下列选项中,正确描述Java的多态性的是:A. 同一个方法可以有不同的参数个数和类型但不能同名B. 子类可以重写父类的方法C. 子类可以调用父类的方法D. 子类可以拥有父类的属性和方法二、编程题(60分)题目一:请设计一个名为Person的Java类,该类具有以下属性和方法:属性:姓名(name)、年龄(age)、性别(gender)方法:构造方法,用于初始化name、age和gender;getName(),返回姓名;getAge(),返回年龄;getGender(),返回性别。
请根据上述要求,在下面的代码框中完成Person类的编写:```javaclass Person {// 在这里添加属性和方法}```请编写一个名为Circle的Java类,该类具有以下属性和方法:属性:半径(radius)方法:构造方法,用于初始化radius;getArea(),返回圆的面积(公式:面积= π * 半径的平方);getPerimeter(),返回圆的周长(公式:周长= 2 * π * 半径)。
请根据上述要求,在下面的代码框中完成Circle类的编写:```javaclass Circle {// 在这里添加属性和方法}```题目三:请编写一个名为Rectangle的Java类,该类具有以下属性和方法:属性:宽度(width)、高度(height)方法:构造方法,用于初始化width和height;getArea(),返回矩形的面积(公式:面积 = 宽度 * 高度);getPerimeter(),返回矩形的周长(公式:周长 = 2 * (宽度 + 高度))。
Java面向对象程序设计试卷(七)(含答案).doc
Java面向对象程序设计试卷(七)一、选择题1、根据java标识符命名规则和风格约定,下面哪一个标识符是类名?A、XxxYyyB、xxxYyyC、XXXYYYD、xxxyyy2、下列变量定义语句中不正确的是:A、byte d = 312;B、short d = 312;C、int d = 1+’C’;D、long d = 312;3、下列数组的定义语句中不正确的是:A、 int grade[][] = new int[10][10];B、 int grade[][] = new int[][10];C、 int [][]grade = new int[10][10];D、 int []grade[] = new int[10][10];4、下列说法中,哪一个是正确的?A、抽象类中定义的方法一定是抽象的。
B、抽象类中一定存在抽象的方法。
C、抽象类中可以没有抽象方法。
D、抽象类的子类一定要实现抽象类中的抽象方法。
5、关于方法的重载,下列说法哪一个是正确的?A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。
B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。
C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。
D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。
6、假定有程序段:class SupperClass{public int addValue( int a, int b) { return a+b; }}class SubClass extends SuperClass{int value;//此处插入代码}下述哪个方法可以插入到类SubClass中而不会出现编译错误?A、int addValue( int a, int b ){return a+b+1;}B、public long addValue (int a, int b ){value=a+b+1; }C、protected int addValue(int a, int b ){return a+b+1;}D、public int addValue( int a, int b ) {return a+b+1;}7、若编译和运行下列代码,其结果将是class Circle {double radius=1;public Circle(double r){radius = r;}public double area( ){return 3.14*radius*radius;}}public class MyTest{public static void main(String args[]) {Circle c1=new Circle();System.out.println(c1.area());}}A、3.14B、0C、编译出错D、以上答案都不对8、下列说法中,不正确的是A、一个java源程序文件中,只能有一个public类。
java面向对象试题及答案
java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。
面向对象编程的三大特性是封装、继承和多态。
- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。
例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。
- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。
例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。
- 多态:多态允许同一个接口接受不同的数据类型。
在Java中,可以通过重写父类的方法来实现多态。
例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。
2. 解释Java中的接口和抽象类的区别。
接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标准文案《使用 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.构造函数的返回类型是 voidC.构造函数和类有相同的名称,并且不能带任何参数D.一个类可以定义多个构造函数5) 下面 Java 代码的运行结果是()。
class Penguin {private String name=null; //名字private int health=0; //健康值private String sex=null; //性别public void Penguin() {health = 10;sex = "雄";System.out.println("执行构造方法。
");}public void print() {System.out.println("企鹅的名字是 " + name +" ,健康值是 " + health + ",性别是" + sex+ "。
");}public static void main(String[] args) {Penguin pgn = new Penguin();pgn.print();}}A.企鹅的名字是 null ,健康值是 10,性别是雄。
B.执行构造方法。
企鹅的名字是 null ,健康值是 0,性别是 null 。
C.企鹅的名字是 null ,健康值是 0,性别是 null 。
D.执行构造方法。
企鹅的名字是 null ,健康值是 10,性别是雄。
6)下列选项中关于 Java 中封装的说法错误的是()。
A.封装就是将属性私有化,提供公有的方法访问私有属性B.属性的访问方法包括 setter 方法和 getter 方法C.setter 方法用于赋值、 getter 方法用于取值D.类的属性必须进行封装,否则无法通过编译7)使用 Java 实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。
A.使用赋值和取值方法访问属性B.编写常规方法访问属性C.在赋值和取值方法中,加入对属性的存取限制D. 编写 main 方法创建对象,调用赋值和取值方法访问属性8)分析如下所示的 Java 代码,其中 this 关键字的意思是()。
public class Test {private String name;public String getName() {return name;}public void setName(String name) { = name;//this关键字所在的行}}属性B.Test 类的内部指代自身的引用C.Test 类的对象引用 Test 类的其他对象D.指所在的方法9) 在 Java 中,以下程序编译运行后的输出结果为()。
public class Test {int x, y;Test(int x, int y) {this.x = x;this.y = y;}public static void main(String[] args) {Test pt1, pt2;pt1 = new Test(3, 3);pt2 = new Test(4, 4);System.out.print(pt1.x + pt2.x);}}A. 6B. 3 4C.8D.710)在Java语言中,下列关于类的继承的描述,正确的是()。
A.一个类可以继承多个父类B.一个类可以具有多个子类C.子类可以使用父类的所有方法D.子类一定比父类有更多的成员方法11) Java中,如果类 C 是类 B 的子类,类 B 是类 A 的子类,那么下面描述正确的是()。
A.C不仅继承了 B 中的公有成员,同样也继承了A 中的公有成员B.C只继承了 B 中的成员C.C只继承了 A 中的成员D.C不能继承 A 或 B 中的成员12)给定一个Java程序Test.java的代码如下所示,编译时,会出现以下()情况。
class Parent {public int count() {//第1行return 0;}}public class Test extends Parent {private int i;public int count() {//第2行return i % 9;//第3行}}A.编译通过B.在第 1 行引发编译错误C.在第 2 行引发编译错误D.在第 3 行引发编译错误13)给定如下一个 Java 源文件 Child.java ,编译并运行 Child.java ,以下结果正确的是()。
class Parent1 {Parent1(String s){System.out.println(s);}}class Parent2 extends Parent1{Parent2(){System.out.println("parent2");}}public class Child extends Parent2 {public static void main(String[] args) {Child child = new Child();}}A. 编译错误:没有找到构造器Child()B. 编译错误:没有找到构造器Parent1()C.正确运行,没有输出值D.正确运行,输出结果为: parent214)给定Java程序Child.java的代码如下所示,则编译运行该类的结果是()。
class Parent {Parent() {System.out.println("parent");}}public class Child extends Parent {Child(String s) {System.out.println(s);}public static void main(String[] args) {Child child = new Child("child");}}A.输出: childB.输出: childparentC.输出: parentchildD.编译错误15)下列选项中关于Java 中 super 关键字的说法错误的是()。
A.super 关键字是在子类对象内部指代其父类对象的引用B.super 关键字不仅可以指代子类的直接父类,还可以指代父类的父类C.子类可以通过 super 关键字调用父类的方法D.子类可以通过 super 关键字调用父类的属性16)分析如下所示的Java 代码,则选项中的说法正确的是()。
public String name;public Parent(String pName){ = pName;}}public class Test extends Parent { //1public Test(String Name){//2name="hello";//3super("kitty");//4}}A.第 2 行错误, Test 类的构造函数中参数名称应与其父类构造函数中的参数名相同B. 第 3 行错误,应使用 super 关键字调用父类的name属性,改为 ="hello";C.第 4 行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行D.程序编译通过,无错误17)以下关于 Object 类说法错误的是()。
A.一切类都直接或间接继承自Object 类B.接口亦继承 Object 类C.Object 类中定义了 toString() 方法D.Object 类在 ng 包中 )18)在 Java 中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了()。
A.子类重写父类的方法B.子类重载同一个方法C.定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法D.运行时,根据实际创建的对象类型动态决定使用哪个方法19)给定Java代码如下所示,则编译运行后,输出结果是()。
class Parent {public void count() {System.out.println(10%3);}}public void count() {System.out.println(10/3);}public static void main(String args[]) {Parent p = new Child();p.count();}}A. 1B. 1.0C. 3D. 3.333333333333333520)分析如下 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. B b = new B();b.test();21)编译运行如下Java 代码,输出结果是()。