java面向对象基础练习答案.docx
- 格式:docx
- 大小:56.96 KB
- 文档页数:5
【练习题】 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面向对象程序设计习题答案习题一:定义一个类问题描述:定义一个名为`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)。
单选题:(每道题目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面向对象编程练习题答案一、选择题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`,以及相应的公共方法来设置和获取这些属性。
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。
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。
面向对象部分测试题考试宣言:同学们,考试考多少分不是我们的目的!排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!那时候学会了,记住了,也一样不影响你高薪就业!本套题共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 )。
2面向对象程序设计基础2.1单项选择题1.下面关于类的继承性的描述中,错误的是()。
A.继承是在已有的基础上生成新类的一种方法B.Java语言要求一个子类只有一个父类C.父类中成员的访问权限在子类中将被改变D.子类继承父类的所有成员,但不包括私有的成员方法2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。
A.默认B.protected C.private D.public3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。
A.public B.默认C.final D.abstract4.下列关于子类继承父类的成员描述中,错误的是()。
A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。
B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。
C.子类中继承父类中的所有成员都可以访问。
D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。
5.下列关于继承性的描述中,错误的是()。
A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员6.下列关于抽象类的描述中,错误的是()。
A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类7.下列关于构造方法的叙述中,错误的是()。
A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承8.下面叙述中,错误的是()。
A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类9.下面关于接口的描述中,错误的是()。
A.一个类只允许继承一个接口B.定义接口使用的关键字是interfaceC.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现D.接口实际上是由常量和抽象方法构成的特殊类10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()A.ArrayList myList=new Object(); B.ArrayList myList=new List();C.List myList=new ArrayList(); D.List myList=new List();11.下列哪一个方法与方法public void add(int a){}为不合理的重载方法?()A.public void add(char a) B.public int add(int a)C.public void add(int a,int b) D.public void add(float a)12.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。
习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac。
exe)编译Java源程序,得到字节码文件.(3)使用Java解释器(java。
exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt。
jar;。
;5.B6.Java源文件的扩展名是.java。
Java字节码的扩展名是。
class。
7.D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8。
class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread ”main” java。
lang.NoSuchMethodError: main 执行java xiti8得到的错误提示Exception in thread "main” java。
lang.NoClassDefFoundError:xiti8 (wrong name: Xiti8)执行java Xiti8。
class得到的错误提示Exception in thread ”main” ng.NoClassDefFoundError:Xiti8/class执行java Xiti8得到的输出结果I’m glad to meet you习题21.D2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3.float型常量后面必须要有后缀“f"或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
4.public class Xiti4{public static void main (String args[ ]){char ch1=’你',ch2=’我',ch3='他';System.out.println(”\”"+ch1+"\”的位置:"+(int)ch1);System。