java面向对象基础练习答案.docx

合集下载

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

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面向对象程序设计习题答案

java面向对象程序设计习题答案Java面向对象程序设计习题答案习题一:定义一个类问题描述:定义一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)属性,以及构造方法和相应的getters和setters方法。

答案:```javapublic class Person {private String name;private int age;private String gender;public Person(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}}```习题二:继承与多态问题描述:创建一个名为`Student`的类,继承自`Person`类,并添加一个名为`studentId`的属性。

重写`toString()`方法,以显示学生的详细信息。

答案:```javapublic class Student extends Person {private String studentId;public Student(String name, int age, String gender, String studentId) {super(name, age, gender);this.studentId = studentId;}public String getStudentId() {return studentId;}public void setStudentId(String studentId) {this.studentId = studentId;}@Overridepublic String toString() {return "Student{" +"name='" + getName() + '\'' +", age=" + getAge() +", gender='" + getGender() + '\'' +", studentId='" + studentId + '\'' +'}';}}```习题三:封装与隐藏问题描述:创建一个名为`BankAccount`的类,包含账户ID (accountId)、账户余额(balance)和账户类型(accountType)。

(完整版)面向对象编程基础习题及答案

(完整版)面向对象编程基础习题及答案
A.a syntax error
B.a runtime error
C.a logic error
31.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) & (1 > x++).
A.0
B.-1
C.1
32.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) && (1 > x++).
B. The program displays month is 9
C. The program displays month is 9.0
D.The program has a syntax error, because 09 is an incorrect literal value.
28.To assign a double variable d to a float variable x, you write
D.byte
19.Which of the following operators has the highest precedence?
A.casting
B.+
C.*
D./
20.An int variable can hold __________.
A.'x'
B.93
C.98.3
D.true
E.a and b
27.Analyze the following code.
public class Test {

2.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面向对象编程练习题答案

java面向对象编程练习题答案

java面向对象编程练习题答案一、选择题1. 以下哪个是Java面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、多态、抽象D. 封装、继承、抽象答案:A2. 在Java中,哪个关键字用于定义类?A. classB. interfaceC. abstractD. final答案:A3. 以下哪个是Java中的访问修饰符?A. publicB. staticC. voidD. main答案:A4. 以下哪个是Java中创建对象的语法?A. new Object();B. new ClassName();C. new ClassName().method();D. ClassName();答案:B5. 在Java中,哪个关键字用于实现多态?A. extendsB. implementsB. overrideD. abstract答案:A二、简答题1. 简述Java面向对象编程中的封装性。

答案:封装性是面向对象编程的一个基本概念,它指的是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

封装性有助于提高代码的安全性和可维护性。

2. 什么是继承?继承在Java中是如何实现的?答案:继承是一种机制,允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。

在Java中,继承是通过关键字`extends`来实现的。

3. 什么是多态?Java中如何实现多态?答案:多态是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。

在Java中,多态主要通过方法重载和方法重写来实现。

三、编程题1. 创建一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。

然后创建两个类`Dog`和`Cat`,它们继承自`Animal`类,并分别实现`makeSound()`方法。

答案:```javaabstract class Animal {abstract void makeSound();}class Dog extends Animal {public void makeSound() {System.out.println("Woof!");}}class Cat extends Animal {public void makeSound() {System.out.println("Meow!");}}```2. 编写一个Java程序,使用封装性来创建一个名为`Student`的类,该类包含私有属性`name`和`age`,以及相应的公共方法来设置和获取这些属性。

Java测验(基础编程和面向对象)及答案.doc

Java测验(基础编程和面向对象)及答案.doc

v()承c 继态盖载M 多多覆ffi山PLA B c DJews 测验(基础编程和面向对象)姓名:分数1、 从下面列表中选取3个合法的标识符 A. IDoLikeTheLongNameCldss B ・$byte ($,字母和下划线”头) C ・ const (goto, const nf 以) D ・ _okE. 3_case (不能是数字开头)2、 如何对一个对象进行强制垃圾回收? A. 不能强制进行垃圾回收 B ・调用System, gc ()・C ・传递要进行垃圾回收的对彖的引用作为参数, 调用 System, gc ()D ・调用 Runtime, gc ().E ・设置所有对该对象的引用到一个新值(如 null)・3、 考虑下面的类 clciss Test { void test(int i) {System ・()ut ・println("I tun tin int."); }void test (String s) {System .out ・ prin tin ("I tun a string ・"); }public stcitic void iikiin( String args I ]) { Test t 二new Test (); chtir ch 二'y'; t. test (ch); } }4、 下面哪一句说法是正确的(选择一个)A. 笫5行不能通过编译,因为void 方法不能被 重写©出 初12行不能通过编译,因为没有任何一个test 方法接收一个字符参数。

C. 代码可以通过编译但会在第12行抛出一个异 常。

D. °代码可以通过编译且运行时诃输出:'1 am an int.' oE ・ 代码可以通过编译且运行时可输III : lamaString. ' o5、 数组numArray 的第9个元素可以表示为 _____ . A. numArray 18 ]; B ・ numArray[9];C ・ numArray 丨]二 9;D ・ numArrayI 71 +二 2;6、 下面的哪个语句声明了一个有10个元素的数组?A int numbers 丨]二 new int[10 ];B int numbersl10]; 0 int numbers!]二 10;D new int numbers!]二 int[10]; 7、 jtivu 编译器的名称是? A ・ javac B ・ JVMC ・ System ・ out ・ println ()D ・ java8、 下面的代码段说明了面向对象的哪一特性_•public void overload(String s) {・・・} overload(int i) {・・・} overload(int i, float f) {・・・ }9、 当子类的一个方法和父类的一个方法命名相同时,叫做 _________ ■ A overloading 重载 B instance 实例 C overridi 覆盖D local scope 局域变量10、 访问开放程度正确的是:A friendly 变量川以被包外子类访问B protected 变量对以被包外类访问C public 类可以被包外子类访问 0都不对11、 下面关于抽象类的说法那些是正确的? A 不能从它继承一个子类 B 该类不能实例化C 所有的方法必须都是抽象方法D 抽象类的定义屮必须包含abstract 关键字 12、 关键字 ________ 表示一个对象或变星一旦赋值就不能修改A staticB finalC con stcint13、 问:哪段无错? (A), int i 二0;if(i){ ” ”System ・ out ・ println(〃lli 〃); }⑻・boolean b 二true;boolean b2二true; if(b==b2) {System ・ out ・ printin ("So true z ,);}(0. int i=l;int j 二2; if(i==l, j==2)System ・ out ・ println(〃()K 〃); (D). int i=l;int j 二2;if(i 二二1& j 二二2)System ・ out ・ println(〃()K 〃); 14、 如下代码class Test{ private int m;public static void fun() { // some code.・・} }15、 如何才能载方法lunO 'I 1直接访问变星in? A ・ 改变 private int m 为 protected int m B ・ 改变 private int m 为 public int mC ・ 改变 private int in 为 static int mD ・改变 private int m to int m16、下面方法哪个是方法public void example () {...}的正确重籤?A.public void example( int m) {・・・ }B.public int excimple(){・・・}A B C D E floatflOcltfloatflOcltfloatf[](二new IIfI J = newf[][] = new[][If 二new[][]f 二newC・ public void excimple2() {・・・}D・ public int example ( int m, float f) {・・・}17、J va中mainO方法的返回值类型为?A.Str ingB.intC・ charD. void18、下面那些是Java的合法描述符?A.fieldnameB・ superC・ 3numberD・ uinberE・ $number19、哪些是java合法的关键字A.constB.NULLC・ falseD. thisE・ native20、哪些是Java中正确的整数表达式?A.22B.0x22C.022D.221121、下面的代码段执行后1和j的值为int i 二1;int j;j 二i++;A.1, 1B.1, 2C.2, 1D.2, 222.为了编译和运行java程序,下面那句话是正确的?A.程序起始点必须在main, class文件中B.所有的类必须包含名为的方法C.程疗:中的一个类必须包含名为觸in的方法D.程用中必须包含名为mairi的类23、哪些赋值是正确的A. 1 lotit ti 二2. 0B.double b = 2. 0C.ir)t c = 2D.long d 二224、m ainO方法中的参数的正确描述是A.char args I ]B・ char tirgs III]C・ String argl1D・ String args 25、下面哪些对正确的创建一个数组ri«)cil|6] |6]; float[6]I 6 I;float!][61; float!6 I I 6];float!611]; 26、对于给定的表达式:int m[]二{0, 1, 2, 3,1, 5, 6},下面哪些计算结果等于数组的长度A.m. length()B・ m. lengthC.m. length()+1D.m. length+1 27、用这样的命令行执行正确的类:java MyTest a b c,下面哪些是正确的?A.args [01 = "MyTest a b c〃B.args[0| 二"MyTest"C.args [01 二z,a,zD・args[l]= ' b‘28、给定代码:public class Test{ long a[]二new long 1.101;public static void main ( String arg[J ) {System・out. println ( a|6]);}}哪句是正确的?A.无输出B.输出是0C・出现编译时错误D.出现运行时错误29、给定下面的代码:public class Test{public static void main(String arg[]){ int i 二5;do {System・ out・ println(i);} while (--i>5);System・out. println( "finished");}}执行时输出:A. 5B. 4C. 6D.FinishedE.None30、如下代码:switch (m){case 0: System.oul.princase 1: System・()ul・ println("l");case 2: System.out・println("2"); case 3: System・()ul・ println("3");bretik; default: System, out.printin("Other"); }m的值是多少可以输出來〃2〃?A.0B. 1C. 2D. 3E. 4F.None31、J ava 哪些是合法的修饰府?A.privateB.publicC.protectedD.protectE.friend32、如果一个类变量只能在同一包内被访问可用那个修饰符?A.privateB・ publicC・ protected0.不用修饰E・ final33、下面哪种对类变量的修饰可以定义常量A. staticB. final C ・ abstractD ・ No modifier ctin be used31、卜•面哪些是对native 方法的正确声明? A. public native void test(): B ・ public native void test() {) C ・ public void ntitive test(); D ・ public native test() {}35、 给定类的定义 public class Test { private float f二 1.0;int m 二 12; static int n 二1;public static void mtiin(String arg[J) { Test t 二 new Test();// some code ・・・ } } 36、 在注釋处哪种用法是合法的? A. t. fB ・this ・nC ・ Test ・ in D. Test, n37、 以下代码: 1 class Example{ 2 String str;3 public ExtimpleO {4 str 二"example";5 }6 public Excimple(String s) {7 str 二s;8 }9 }10) class Demo ext ends Extunplef 11 }12 public class Test{ 13 public void f () {14 Excimple ex 二 new Excimple (,z Good ,z ); 15 Demo d 二 new Demo("Good"); 16 }}哪行会引起错误?A line3 B . line 6 C . line 10 D . line 14E line 138、 给定源文件中的类定义: class Btise {public Base (){//・・・}public Base ( int m ){ //•・・} protected void fun( int n ) { //・・・} }public class Child extends Base{ // member methods }39、 下面哪种可以恰当的加到Child 类中? A. private void fun( int n ) { //•・・} B. void fun ( int n ) {//・・・}C. protected void fun ( int n ) { □… }D. public void fun ( int n ) { //・・・} 40、 下面哪些说法是正确的?A •在Javaip 允许单继承,这使得代码史对靠B. 子类诃以继承父类的所有方法(包括构造方法)C. 一个类对以实现任总多的接口0.当一个类实现一个接口时,它可以定义接口的 一部务方法41、 在源文件Test, java哪些类的声明是正确的?A.public class test { public int x 二 0; public test(int x) { this ・ x 二 x;B.public class Test{ public int x 二0;public Test(int x) { this, x = x;C.public class Test extends Tl, T2 { public int x 二 0; public Test (int x) { this ・ x 二 x;0.public class Test extends T1{ public int x 二0; public Test(int x){ this, x = x;E.protected class Test extends T2{ public int x 二0; public Test(int x){ this ・ x 二x;42、如下代码:public class Test{public static void main(String args[]){ String str 二new String(z ,World z ,); char ch[] = {‘ 11’ J ' 1’ J 1’,' o' }; change(str, ch);System .out.println(str + "and" + new String(ch)); }public static void chtrnge(String str, chtir ch[]){str=,,Changed /,; ch|01=,C ;执行的结果是?A. World and HelloB. World and CelloC. Changed and HelloD. Chcinged and Cello13.下面语句行哪些编译时没有警告或错误 A float f 二1.3; B char c 二"a"; C byte b 二257; D boolean b 二null; E int i 二10;44、编译运行下面的代码时会打印public class MyCltiss {public sialic void mdin(String argumentsl]){ tunethod(arguments);}public void tunethod(String,丨arguments) { System・out・ println("rguinents);System ・ out ・ print In (tirguine nt si 1 ]);}} 、,A error Can't make static reference to void time thod ・B error method mtiin not correctC error tirrtiy must include parcimeterD tunethod must be decltired with String15下面哪些没有编译错误?Aimport java・awt・*;package Myptickage; class Myclass {}Bpacktige MyPackcige;import java・awt・*; class MyClass{}C/♦This is a comment */packtige MvPackage;import java・“wt・*; class MyCltiss{}46、一个字节(byte)的范围是A -128 to 127B (一2 power 8 )-1 to 2 power 8C 一255 to 256D依赖于特定的虚拟机的实现17、运行下面的命令行时会打印java myprog good morning public class myprog{ public static voidiikiin(String argvl ]) { System・ out・println(argv[21);}}A myprogB goodC morningD都不对48、哪些是jdvd的关键字或保留字?A ifB thenC gotoD whileE case 49、哪些是合法的描述符?A 2vctriableB variable2C _whatavaricibleD _3_E Sanothervar1; ttmyvar50、编译运行下面的代码时会打印public class MyClass{static int i;publie static void main(String argv[]){System・ out・ println(i);}}、A Error Variable i may not have been initializedB nullC 1D 051、编译运行下面的代码时会打印public class Q { publie static void main(String argv[]){ int anar[]=new int [] {1, 2, 3};System・ out・ println(undr[11);A 1B Error tmar is referenced before it is initializedC 2D Error: size of array must be defined52、编译运行下面的代码时会打印public class Q {public static void main(String argv[]){ int anar[]二new int15];System・ out・ println(urRir[01);A Error: anar is refereneed before it is initializedB nullC 0D 553、编译运行下面的代码时会打印abstract class MineBase { abstract void cimethod();static int i;}public class Mine extends MineBase { publie static void main(String argv[]){ int[] ar二new int[5];for(i=0;i < ar. length;i++)System・ out・ print1n(ar[i]);}}A会打印5个0的序列B Error: ar is used before it is initializedC Error Mine must be declared abstractD IndexOutOfBoundes Error54、编译运行下面的代码时会打印int i二1;switch (i) {case 0: System.out.println(z,zer()z,);break;case 1:System・ out・ println(〃()ne〃);case 2: System.out.println(z,tw()z,); default: System ・ out・ prinlln(〃default〃);A oneB one, defaultC one, two, defauItD default55、编译运行下面的代码时会打印int i二9;switch (i) {default: System・ out・ printin("default"); case 0: System・ out・ println(〃zer()"); bretik;case 1: System・ out. println("()ne");case 2: System・ out・ printin(^two^);}A defaultB default, zeroC default子句是错误的D没有输出56、下面得代码行哪个没有编译错误Aint i二0;if (i) { System .out ・ pri ntln("llell()"); }Bboolean b二true;boolean b2二true;if(b二二b2) {System・ out. printin("So true");)Cint i二1;int j二2;if (i~l | | j 二二2) System, out. print In ("OK");Dint i二1;int j二2;if (i=l &| j二二2) System, out. printin(^OK^): 57、下面那些说法是正确的?A方法不能被巫药得封装得更隐秘B不能重载静态方法C不能重载private方法58、当编译运行下面代码时会class Btise {}class Sub extends Base {}class Sub2 extends Base {}public class CEx{public static void iikiin(String argvl ]) {Btise b二new Bcise ();Sub s二(Sub) b;}}A编译运行都没有错B编译时出错C运行时异常父类转子类59、为什么编译后的java文件既可以在windows下运行,也可以在linux下运行?A.因为所有计算机上的java虚拟机(JVM)都使用相同的class文件B.因为linux和windows都是运行在Intel的计算机卜C.因为linux和windows使用相同的操作系统图形库D.因为linux和windows都是微软生产的60、E面哪个文件是由java编译器对名为ptircel 的类的源代码编译后而产生的?A.SimpleReaderB.mainC.parce 1. classD・ puree 1. java61、如果要编写一个名为BouncingBctll的类,那么它的源代码文件应该名为?A.Document・ txtB.main・ javaC.BoundngBal 1. classD.BouncingBal 1. java 62、如下声明:String si 二new Str in gC,llello z,);String s2二new String(/Z there z,);String s3二new StringO ;下面哪个语句是正确的?A s3二si + s2;B s3二sl-s2;C s3二si & s2;D s3二si && s263、下面语句的计算结果是什么?System・ out・ println(4 3);A 6B 0C 1D 764、p ublic class MyClassl{public static void main(String argv[]){ } /♦Modifier at XX */class MyInner {}}What modifiers would be legal at XX in the above code?A publicB privateC staticD friendly62.下面哪个不是有效的变量名?A.finishedB.inputC・ userName3D・ Smile66、当试图编译和运行下面的代码时会出现什么恬况?public class Corw{public static void main(String argv[]){Conv c二new Conv();String s 二new Str in g(z,ell()zz);c. amethod(s);}public void amethod(String s) {char c=,If ;c+二s;System・ out・ println(c);}}A编译成功并输出Ulel"B编译成功并输HTelkfC编译成功并输tB"elloll"D编译时错误c+二s类型有问题67、下面的代码会输出?public class Pass{static int j二20;public static void imiin(String argvl]){ int i二10; Pass p 二new Pass ();p. cimethod(i);System・ out・ println(i);System・ out・ println( j);}public void tunethod(int x) {x二x*2;j二j*2;A Error: aine thod ptiraineter does not match VciriableB 20 and 40C 10 and 40D 10, and 2068、下面的代码会打印出?public class Oct{public static void iikiin(String argvl ]) {Oct o 二new Oct ();o. ainethod ();}public void tunethod() {int oi= 012;System・ out・ println(oi);A 12B 012C 10D 10.069当试图编译和运行下面的代码时,会出现什么情况?public class Ref{public static void iikiin(String tirgvl I) {Ref r 二new Ref ();r. tune thod (r);}public void tunethod(Ref r) {int i二99;multi (r);System・ out・ println(i);}public void multi(Ref r) {r. i = r. i*2;}}A在编译时出错B输出99C输出198D注运行时出错70、当试图编译和运行下面的代码时,会出现什么情况?public class Scope{private int i;public static void iikiin(String tirgvl I) {Scope s 二new Scope();s. cimethod ();}//End of mainpublic static void tunethod() {System・ out・ println(i);}//end of cimethod}//End of classA打印0B什么都不打印C编译错误0编译错误指出i的作用域不对71.通常一个类的命名惯例是(即如何为类命名)?A.类名称开始必须是test•然后Z后的单词必须以大宫字母开始(例如class TestBouncingBall)B.所有类的名称都必须以.java结束(例如class Ball.java)C.所有的单词必须以大写字母开始(例如class Bouncin^Ball)D.所有字母必须大写,单词之间以下划线分割开(例如class BOUNCING.BALL)72.下面那个是java中有效的注释?A.*/ load data from the file */B.// load data from the filement - load data from the fileD.1 load data from the file73.请问可以在类的外面定义方法吗?A.必须在另一个不同的文件屮编写所有类中的方法B.对以,但是这个方法必须是static的C.可以,因为java和C++屮的做法是一样的D.不可以,所有的方法必须在类的内部编写74.请看如下的声明:int x=6;请问哪个是上面那个变呈的数据类型?A.objectB.6C.xD.int75.通常方法的命名惯例是(即如何为方法命名)?A.名称中的所有单词必须是java中的关键词B.笫一个单词必须全部小写,然后其他的单词以大写字母开头(例如showPicture())C.所有单词必须以大写字母开头(例如ShowPictureO)D.所有单词必须大写,并以下划线分割开(例如SHOW_PICTURE())76.下面哪个不是有效的名称?A.print()B.readFile()C.class()D.isVisible()77.下面哪个声明是无效的?A.boolean finished二true;B.boolean finished=7.0;C.boolean finished = !true;D.boolean finished=(7.0>4.3);78.在java中char类里的数据用两个字节保存,这和C++中用一个字节保存相比,有什么好处?A.一个字符类型能够容下不同语言的字符例如屮文」I文,韩文或者越南语B.惫噪着我们对以使用String类来代替char数组C.字符类型对以用来代替整型D.字符在存储器中占据更多的空间79.在java我们如何定义一个名为COUNTRY.CODE 的常量?A.String COUNTRY_CODE=new String(H zh H);B.static String COUNTRY_CODE=n ZH H);C.#define COUNTRY.CODE H ZH HD.final String COUNTRY-CODE=,,ZH H;80.下面的代码有什么问题?double x=3.4;int y=6;y二x;A.double变呈:不能转换成int变星B.第1行,如果x的值改成3.0,那么代码就是正确的C.M 1行,java将3.4当成是float类型而不是double 类型D•第3行,x必须从double转换为int81 •婆声明一个名为message的字符串变鼠下面哪种方式是无效的?A.String message;B.String message二"Java is cool!"C.String message二'java is cool!1;D.String message=new String(n java is cool!");82.下面哪两纽数据类型在java中可用?A.public 和privateB.简单数据类型(比如int和double)和类类型(比如parcel 类)C.true 和falseD.变量和方法83.下面的代码中:parcel a,b;a=new parcel();b=a;结果是pA.该代码不能编译B.a和b指向相同的对象C.b为空D.b是存储在a中的对象的拷贝84 •下面哪个声明是正确的?A.对象是类的实例B.对象继承自类C.对象总是包含一个int,double或者float类型D.采用delete。

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。

2Java面向对象知识测试(答案版).docx

2Java面向对象知识测试(答案版).docx

面向对象部分测试题考试宣言:同学们,考试考多少分不是我们的目的!排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!那时候学会了,记住了,也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。

单选2 分/题,多选4分/题。

多选题不全对半分,全对满分。

1.下面描述函数重写错误的是(C)A.要有子类继承或实现B・子类方法的权限必须大于等于父类的权限C・父类中被private权限修饰的方法可以被子类重写D・了类重写接口屮的抽象方法,了类的方法权限必须是public的2.下列说法哪个正确?(a b c)A.—个程序可以包含多个源文件B.—个源文件中只能有一个公共类C.一个源文件屮可以有多个类D・一个源文件只能供一个程序使用3.下而关于类的设计思路描述错误的是(be)A.根据需求写出类所包含的字段(成员变量)B.根据面向对象的思想要求,所有的字段都必须私有化C.封装之后的字段在木类内也必须使用get/set方法D.按需求可添加若T•构造方法4・关于封装下面介绍错误的是(d )oA.封装将变化隔离B.封装提高重用性。

C.封装捉髙安全性D .只有被private修饰才叫做封装5・试图编译运行下面的代码会发生什么情况(d) public class MyClass{ static int i;public static void main(String[] args){System.out ・ printIn (i);)}A・错误,变量i没冇被初始化B.输出null.C・输出1D・输出06・下面対static的描述错误的是bA.静态修饰的成员变量和成员方法随着类的加载而加载B・静态修饰的成员方法可以访问非i挣态成员变虽C・静态修饰的成员可以被整个类对象所共享D・静态修饰的成员变量和成员方法随着类的消失而消失7.在Java中,下面对于构造函数的描述正确的是(d )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是类方法,
是被指向到所属的类而不是类的实例.静态字段是类字段,无论该字段所在的类创建了
多少实例,该字
段只存在一个实例被指向到所属的类而不是类的实例.初始化函数是在装载类时执彳亍
的,而不是在创建
实例时执行的.
4.final
使用对象:类、方法、字段、变量
介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态杏询),字段值
必须是该成员所属类的了类.
4.简述构造方法的特点与作用。
构造方法特点:方法名和类名完全相同、没有返回值类型
功能:对以构造带参数和无参数的对彖。这些对彖对以使用类方法。
构造主要用來初始化对象
构造函数应该和类名保持一•致可以有参数或者不带参数无返冋类型必须是public的
5.Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?
□防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法來访 问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。
□有利于保证数据的完整性
□便于修改,增强代码的可维护性。
尽力让封装的每个类里面的属性和方法独立,方便以二者有何关系?
类是具有相同数据结构(属性)和相同操作功能(行为)对彖的集合。对彖就是符合某种类所产生的一个 实例。对彖与类的关系是:
对象的共性抽象为类,类的实例化就是对象。
对象的声明:
类名 对象名二new类名();
对象的调用:
访问属性:对象名•属性名;
访问方法:对象名•方法名();
类是对现实生活屮的一类人或者一类事物的高度抽象,抽取出该类事物共有的属性和方法
由类生成的貝•体的个体是对彖
3.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
import java. awt.public class Test{/* do something. .. */}
public class Test{/* do something…*/}
四、判断题
1.类是一种类型,也是对象的模板。(T)
2.类中说明的方法可以定义在类体外。(F)
3.创建対彖时系统将调用适当的构造方法给対彖初始化。(T)
4.(构造方法)是一个特殊的方法,用于创建一个类的实例。
5.对象拷贝有(对象的引用)、()和()三种。
二、简答题
1.为什么耍对类进行封装?封装的原则是什么?
■Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(publi
c)方法实现对该属性的操作,以实现下述目的。
□隐藏一个类的实现细节
4.使用运算符new创建对彖时,赋给对彖的值实际上是一个引用值。(T)
5.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引川值。(T)
6.class是定义类的惟--关键字。(T)
五、改错题
1.下面的程序屮有若干个语法错谋,找出后请改正。public class MyMainClass{
public static void mdin(String [] args){
TheOtherClass obj = new TheOtherClass("John Smith", "Maie", "UK");
package testpackage;class Person{/* do something…*/}
public class Test {/* do something... */}public class Test{/* do something... *
/}
C. import java, i()•*;D・package testpackage;
Public class
1.publicdefault protected private
使用对象:类、接口、成员
介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的
2.private
使用对象:成员
介绍:成员只可以在定义它的类中被访问
3.static
使用对彖:类、方法、字段、初始化函数
介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的.静态方法
3import
三、选择题
1・下而关于封装性的描述中,错误的是()。
A.封装体包含属性和行为B.被封装的某些信息在外不可见
C.封装提高了可重用性D.封装体屮的属性和行为的访问权限相同可以不相同 程序
员定义
2.下面关于类方法的描述,错误的是()。
A.说明类方法使用关键字staticB.类方法和实例方法一样均占用对象的内存空间 类方法在不
Scanner sc二new Sea rm er(system・in)
Person p二new Person
p. age二15;
6.什么是包?如何创建包?如何引用包?
java的包则主要用来组织字节码文件,且必须在文件中声明其所属的包,包层次以点(.)分隔而不是斜
杆。
1为了区别那么多类的名字
2packege
不允许被
修改.
5.abstract
使用对象:类、接口、方法
介绍:类中包括没有实现的方法,不能被实例化.如果是一个abstract方法,则方法体
为空,该方
法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类
6.protected
使用对彖:成员
介绍:成员只能在定义它的包屮被访问,如果在其他包屮被访问,则实现这个方法的类
实例化的时候是不占用内存空间的
C.类方法能用实例和类名调用D.类方法只能处理类变最或调用类方法
3.下面关于包的描述中,错误的是()o
A.包是若十•对彖的集合B.使用package语句创建包
C.使用import语句引入包D.包分为有名包和无名包两种
4.下面哪些代码段是正确的Java源程序?(BCD)
A. import java, io.*;B. import java, io・*;
Java语言面向对象基础
一、填空题
1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个 个具体的对象。
2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。
3.构造方法的方法名与(类)相同,若类中没有定义任何的构造方法,则运行时系统会口动为该类 牛成一个(无参构造)方法。
相关文档
最新文档