Java面向对象_练习题
- 格式:doc
- 大小:86.50 KB
- 文档页数:12
java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。
2. 描述Java中接口和抽象类的区别。
3. 什么是Java中的继承?请举例说明如何使用继承。
三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。
为每个属性提供getter和setter方法。
2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。
为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。
3. 创建一个接口`Movable`,包含一个方法`move()`。
然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。
四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。
面向对象程序设计JAVA试题一、单项选择题(共10题,每题2分,共20分)1.以下哪个选项是正确的Java访问修饰符?A. PublicB. PrivateC. FinalD. Static2.在Java中,接口可以实现多继承的目的吗?A. 是的B. 不是3.以下哪个关键字用于创建Java对象的实例?A. NewB. InstanceC. CreateD. Object4.Java中的构造方法有什么特点?A. 与类名相同B. 可以有返回类型C. 可以被继承D. 可以被私有化5.下面的代码在Java中是什么类型的声明?```String[] names = new String[5];```A. 变量声明B. 方法声明C. 类声明D. 接口声明6.Java中的继承关系是如何表示的?A. 通过extends关键字B. 通过implements关键字C. 通过super关键字D. 通过this关键字7.Java中的多态是指什么?A. 同一个对象可以引用不同类型的实例B. 同一个对象可以有不同的方法C. 同一个对象可以有多个实例D. 同一个对象可以有多个子类8.以下哪个选项是Java中的关键字?A. StringB. IntegerC. BooleanD. Final9.Java中的封装是什么意思?A. 隐藏对象的实现细节B. 创建新的对象类型C. 允许对象进行通信D. 限制对象的访问权限10.Java中的抽象类和接口有什么区别?A. 抽象类可以实现方法,接口不能B. 抽象类可以被实例化,接口不能C. 抽象类可以继承多个类,接口只能继承一个D. 抽象类可以有变量,接口不能二、编程题请写一个Java程序,实现一个学生管理系统。
要求有以下功能:1. 添加学生信息(包括学号、姓名、性别、年龄、成绩等字段)2. 修改学生信息3. 删除学生信息4. 查询学生信息5. 统计学生数量6. 按照成绩排序学生信息三、综合题某公司需要开发一个员工管理系统,你被指派为项目经理,请设计一个基于面向对象的Java程序,实现以下功能:1. 添加员工信息(包括员工号、姓名、性别、年龄、职务等字段)2. 修改员工信息3. 删除员工信息4. 查询员工信息5. 统计员工数量6. 按照年龄排序员工信息请按照上述要求编写你的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简介1.下面()是JDK中的Java运行工具.(选择二项)A.javacB.javamC.javaD.javar【解析】A C2.选出在Java中有效的注释声明(选择二项)A./This is a commentC./This is a commentD./*This is a comment*/【解析】AD3.下面()命令可用于编译Java程序.(选择一项)A.javaB.javacC.appletviewerD.javadoc【解析】B4.下面()数据类型可用于main()方法中传递的参数.(选择一项)A.StringB.IntegerC.BooleanD.Variant【解析】A5.在屏幕上显示的消息正确的语句是(选择一项)【解析】A6.Java编译器会将Java程序转换为(选择一项)A.字节码B.可执行代码C.机器代码D.以上所有选项都不正确【解析】A7.Java源代码文件的扩展名为(选择一项)A..classB..javaC.D.以上所有选项都不正确【解析】B第二章Java语言基础1.在Java中,byte数据类型的范围是(选择一项)A.-32767~32768B.-32768~32767C.-127~128D.-128~127【解析】D2.以下()是合法的标识符(选择二项)A.Te1_numB.emp1C.8678【解析】AB3.下列代码的输出结果是(选择一项)class you{public static void main(String[]args){int sales=3500;int profit=800;}}【解析】A4.以下关键字(选择一项)用于终止循环语句A.breakB.exitC.endD.terminate【解析】A5.不论测试条件是什么,下列(选择一项)循环将至少执行一次.A.whileB.do-whileD.for-each【解析】B6.下列代码的输出结果是(选择一项)class Test{public static void main(String args[]){int ctr=3;int result=1;while(ctr>1){result=result*ctr;ctr--;}}}A.6【解析】A7.编译运行下面的代码时会打印(选择一项)public class Q{public static void main(String argv[]){int anar[]=new int[]{1,2,3};}}A.1B.初始化错误C.2D.数组超界【解析】C第三章面向对象的概念和Java实现(1)1.()是拥有属性和行为或方法的实体.(选择一项)A.对象B.类C.方法D.构造方法【解析】A2.对象的特性在类中表示为变量,成为类的(选择一项)A.对象B.属性D.数据类型【解析】B3.()就是检验有关某个实体的所有可用信息的过程,以便标识与应用程序相关的信息.(选择一项)A.抽象B.封装C.方法D.构造方法【解析】A4.如果类的方法没有返回值,该方法的返回类型应当是(选择一项)A.nullB.voidC.staticD.public【解析】B5.()关键字表示它是一种类方法,且无需创建对象即可访问. (选择一项)A.voidB.staticC.returnD.public【解析】B6.每个类都定义有(),以便初始化其成员变量(选择一项)A.方法B.main()方法C.构造方法D.对象【解析】C第四章面向对象的概念和Java实现(2)1、()术语常常用来指代类。
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
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。
1.下面代码的输出结果是:public class Main {public static void main(String[] args) { int n = 100;int m = 200;System.out.println(f(n,m));System.out.println(n);}public static int f(int m, int n) {n = m+n;return n;}}A.300300B.100100C.300100D.1003002.程序执行的结果是:public class Test {public static void main(String[] args) {int x = 6;Test p = new Test();p.doStuff(x);System.out.println(" main: x = " + x); }void doStuff(int x) {System.out.println(" doStuff:x =" + x++); }}A.doStuff:x =7main: 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.下列代码的输出结果是:public class Test {public void print(char c) {System.out.println("c");}public void print(int i) {System.out.println("i");}public void print(double d) {System.out.println("d");}public void print(String s) {System.out.println("s");}public static void main(String[] args) { Test test=new Test();test.print('5');}}A.cB.iC.dD.s5.程序执行的结果是:public class Test {String name="Tom";public Test(String name){name=name;}public static void main(String [] args){ Test t = new Test("Jack");System.out.println();}}A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:class Foo {public int a;public Foo() {a = 3;}public void addFive() {a += 5;}}class Bar extends Foo {public int a;public Bar() {a = 8;}public void addFive() {this.a += 5;}}public class TestFoo {public static void main(String[] args) {Foo foo = new Bar();foo.addFive();System.out.println("Value: " + foo.a);}}A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:class Person {String name = "No name";public Person(String nm) {name = nm;}}class Employee extends Person {String empID = "0000";public Employee(String id) {empID = id;}}public class EmployeeTest {public static void main(String[] args) {Employee e = new Employee("4321");System.out.println(e.empID);}}A.输出:0000B.输出:4321C.代码public Employee(String id) {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:public class Animal {public String noise() {return "peep";}public static void main(String[] args) {Animal animal = new Dog();Cat cat = (Cat)animal;System.out.println(cat.noise());}}class Dog extends Animal {public String noise() {return "bark";}}class Cat extends Animal {public String noise() {return "meow";}}A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:public class A {public void start() {System.out.println("TestA");}}public class B extends A {public void start() {System.out.println("TestB");}public static void main(String[] args) {( (A) new B( ) ).start();}}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.下列代码的输出结果是:class Foo {private int x;public Foo(int x) {this.x = x;}public void setX(int x) {this.x = x;}public int getX() {return x;}}public class Gamma {static Foo fooBar(Foo foo) {foo = new Foo(100);return foo;}public static void main(String[] args) {Foo foo = new Foo(300);System.out.print(foo.getX() + "-");Foo fooFoo = fooBar(foo);System.out.print(foo.getX() + "-");System.out.print(fooFoo.getX() + "-");foo = fooBar(fooFoo);System.out.print(foo.getX() + "-");System.out.print(fooFoo.getX());}}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";16.class Sub extends Base {public static final String FOO = "bar";}public static void main(String[] args) {Base b = new Base();Sub s = new Sub();System.out.print(Base.FOO);System.out.print(Sub.FOO);System.out.print(b.FOO);System.out.print(s.FOO);System.out.print(((Base) s).FOO);}}A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:public class ItemTest {private final int id;public ItemTest(int id) {this.id = id;}public void updateId(int newId) {id = newId;}public static void main(String[] args) {ItemTest fa = new ItemTest(42);fa.updateId(69);System.out.println(fa.id);}}A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:public class Student {private String name="sun";public static void main(String[] args) {Student[] students=new Student[2];System.out.println(students[0].name);System.out.println(students.length);}}A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:abstract class Vehicle {public int speed() {return 0;}}class Car extends Vehicle {public int speed() {return 60;}}class RaceCar extends Car {public int speed() {return 150;}}public class TestCar {public static void main(String[] args) {RaceCar racer = new RaceCar();Car car = new RaceCar();Vehicle vehicle = new RaceCar();System.out.println(racer.speed() + ", " + car.speed() + ", " + vehicle.speed());}}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 doSomething(String thing);}public class AImpl implements A {public void doSomething(String 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 = (D)(new E());, 那么 e.bMethod();调用D类的bMethod()方法D.如果定义D e = (D)(new E());, 那么 e.bMethod();调用E类的bMethod()方法22.请看下列代码:public class UserRequest {public void request(ServletAction action) {action.doService();}public static void main(String[] args) {UserRequest user = new UserRequest();user.request(new ServletAction() {public void doService() {System.out.println("处理请求");}});}}如果上述代码采用回调模式编写,下列关于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.下列代码运行的结果是:public class Hello {String title;int value;public Hello() {title += "World";}public Hello(int value) {this.value = value;title = "Hello";}public static void main(String[] args) { Hello c = new Hello(5);System.out.println(c.title);}}A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:interface TestA {String toString();}public class Test {public static void main(String[] args) {System.out.println(new TestA() {public String toString() {return "test";}});}}A.输出:testB.输出:nullC.代码System.out.println(new TestA() {行,编译出错D.代码public String toString() {行,编译出错25.请看下列代码:1)public class Outer {2) void fn(int i) {3) class Inner {4) void print() {5) System.out.println(i);6) }7) }8) Inner in = new Inner();9) in.print();10) }11)}12)class Test {13) public static void main(String args[]){14) Outer out=new Outer();15) out.fn(100);16) }17)}关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出1002,正确答案:D 3,正确答案:A 4,正确答案:A 5,正确答案:B6,正确答案:B 7,正确答案:B 8,正确答案:A 9,正确答案:C 10,正确答案:D11,正确答案:B 12,正确答案:BC 13,正确答案:C 14,正确答案:B 15,正确答案:D16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。
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面向对象试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 局部变量B. 实例变量C. 静态变量D. 全局变量答案:B3. 在Java中,构造方法的特点是什么?A. 必须有返回值B. 必须有返回类型C. 没有返回值D. 可以有任意返回类型答案:C4. 以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于实现多重继承?A. extendsB. implementsC. import答案:B6. 以下哪个关键字用于定义一个抽象类?A. abstractB. finalC. nativeD. strictfp答案:A7. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. finalC. abstractD. synchronized答案:A8. 在Java中,以下哪个关键字用于定义一个私有方法?B. protectedC. publicD. default答案:A9. 在Java中,以下哪个关键字用于定义一个受保护的方法?A. privateB. protectedC. publicD. default答案:B10. 在Java中,以下哪个关键字用于定义一个公共方法?A. privateB. protectedC. publicD. default答案:C二、填空题(每题2分,共20分)1. 在Java中,一个类可以继承另一个类的______属性和方法。
答案:public2. Java中的构造方法必须与______同名。
答案:类名3. 在Java中,______关键字用于实现类的多态性。
答案:extends4. 在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中多态的概念及其作用。
答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。
1. super()与this()的区别?2.作用域public,protected,private,以及不写时的区别?3.在JAVA中,如何跳出当前的多重嵌套循环?4. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?5.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?6. final类有什么特点?7.Java中的异常处理机制的简单原理和应用。
8.final, finally, finalize的区别?9.int 和 Integer 有什么区别?1、【练习题】构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。
在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@"2、【练习题】构造方法与重载、包编写Addition类,该类中应包含一组实现两数相加运算的重载方法。
实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。
考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。
在main方法中创建Addition类的实例,分别调用重载方法测试其效果。
应将Addition类打入到包中,以自己名字的拼音为包命名。
4、【练习题】构造方法与重载建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。
并通过不同的构造方法创建事例。
至少要求:汽车能够加速,减速,停车。
要求:命名规范,代码体现层次,有友好的操作提示。
5、【练习题】构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作:1、传递两个整数值并找出其中较大的一个值2、传递三个double值并求出其乘积3、传递两个字符串值并检查其是否相同4、在main方法中测试构造函数的调用6、【练习题】Static关键字与普通变量的区别:创建一个名称为StaticDemo的类,并声明一个静态变量和一个普通变量。
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 * (宽度 + 高度))。
满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。
java面向对象编程练习题答案1. 面向对象编程中的三大特性是什么?A. 封装、继承、多态B. 抽象、封装、多态C. 封装、继承、抽象D. 继承、多态、抽象2. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. enumD. struct3. 以下哪个是Java中正确的构造方法定义?A. public void MyClass()B. public int MyClass()C. public MyClass()D. public MyClass(int value)4. 在Java中,以下哪个关键字用于实现封装?A. publicB. privateC. protectedD. static5. 以下哪个是Java中正确的继承方式?A. class Child extends ParentB. class Child extends ChildC. class Parent extends ChildD. class Child extends6. 多态在Java中是如何实现的?A. 通过继承B. 通过接口C. 通过重载D. 通过重写7. 在Java中,以下哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. enum8. 以下哪个是Java中正确的抽象类定义?A. public class MyClass {}B. public abstract class MyClass {}C. public abstract void MyClass()D. public abstract class MyClass { public abstract void method(); }9. 以下哪个是Java中正确的接口实现方式?A. class MyClass implements MyInterface {}B. class MyClass extends MyInterface {}C. interface MyInterface implements MyClass {}D. class MyClass implements MyClass {}10. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. abstractC. finalD. synchronized11. 以下哪个是Java中正确的方法重载示例?A. public void display(int a, int b)B. public int display(int a, int b)C. public void display(int a)D. All of the above12. 在Java中,以下哪个关键字用于定义一个方法的返回类型?A. returnB. voidC. intD. method13. 以下哪个是Java中正确的方法重写示例?A. public void display() { super.display(); }B. public void display(int a) { super.display(a); }C. public void display() { System.out.println("Hello"); }D. public void display() {}14. 在Java中,以下哪个关键字用于定义一个类变量?A. staticB. finalC. privateD. protected15. 以下哪个是Java中正确的类变量访问方式?A. MyClass.variableB. new MyClass().variableC. MyClass().variableD. variable16. 在Java中,以下哪个关键字用于定义一个不可变变量?A. staticB. finalC. volatileD. transient17. 以下哪个是Java中正确的类方法定义?A. public void method() {}B. public static void method() {}C. public void MyClass.method() {}D. public static MyClass method()18. 在Java中,以下哪个关键字用于实现单例模式?A. synchronizedB. finalC. staticD. private19. 以下哪个是Java中正确的单例模式实现方式?A. public class Singleton { private static Singleton instance = new Singleton(); }B. public class Singleton { public static Singleton getInstance() { return new Singleton(); } }C. public class Singleton { private static Singleton instance; public static synchronized Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } }D. All of the above20. 在Java中,以下哪个关键字用于定义一个枚举类型?A. enumB. classC. interfaceD. struct答案:1. A2. A3. C4. B5. A6. D7. B8. D9. A10. A11. D12. B13. A14. A15. A16. B17. B18. D19. C20. A。
《JA V A语言程序设计》练习题1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x = 2 ,则表达式( x + + )/3 的值是0 。
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中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。
Java基础面向对象习题1:1.面向对象的软件开发有哪些优点?使用面向对象思想进行开发有以下优点:1、易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。
使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
4、易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
面向对象的软件开发具有以下优点:●把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。
●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变化。
这使得按照对象设计出来的系统结构比较稳定。
●对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。
●支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的?开发软件系统的目的,就是为了让它提供特定服务。
从使用者的角度出发,整个软件系统就是一个服务提供者。
大的系统由多个子系统组合而成。
在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过发送消息来互相获得服务。
因此,一个孤立的不对外提供任何服务的系统是没有任何意义的3.列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚和关系,以及什么是关联关系。
依赖关系:人依赖食物;电视机依赖电;理发师依赖剪刀和吹风机;鱼依赖水聚集关系:电脑由显示器、主机和键盘等聚集而成;关联关系:公司和员工;银行和客户;老公和老婆4.列举一些现实生活中的例子,来说明什么是封装,什么是接口。
封装:电脑主机的组件被封装在机箱内;电视机的内部构件也被封装在大壳子内接口:电脑的键盘上的按键是电脑向人提供的接口;电脑上的USB插口是向移动硬盘提供的接口;电脑上的光盘驱动器是向光盘提供的接口。
5.抽象的最主要的特征是什么?抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。
抽象是一种由具体到抽象、由复杂到简洁的思维方式。
6.在建立对象模型时,要经历哪些抽象思维过程?(1)从问题领域的事物到软件模型中对象的抽象(2)从对象到类的抽象(3)从子类到父类的抽象7.类就是程序员自定义的类型,这句话对吗?对的。
对象模型中的类可看作是开发人员自定义的数据类型,Java虚拟机的运行时环境封装了把自定义的数据类型映射到计算机的内置数据类型的过程,使得开发人员不必受到计算机的内置数据类型的限制,对任意一种问题领域,都可以方便的根据识别对象、再进行分类(创建任意的数据类型)的思路来建立对象模型。
8.小王本来体重 70Kg,经过减肥,体重降到 45Kg,试从这个问题领域中识别对象、类、属性、行为、状态,和状态变化。
对象:小王类:人属性:体重行为:减肥状态:减肥前状态:小王体重70Kg;减肥后状态:小王体重45Kg状态变化:减肥行为使得小王的体重发生了变化9.画出UML框图中的继承(泛化)、实现和依赖的连接线。
状态转换图、时序图和协作图则构成了系统的动态结构;用例图、类框图、组件图和部署图等四个图形,构成了系统的静态结构;Java基础面向对象习题2:1.继承有哪些优点和缺点?2.继承与组合有哪些异同?3.方法覆盖必须满足哪些规则?4.以下哪些代码能够编译通过?a) class Fruit { }public class Orange extends Fruit {public static void main(String[] args){ Fruit f=new Fruit();Orange o=f;}}b) class Fruit {}public class Orange extends Fruit {public static void main(String[] args){ Orange o=new Orange();Fruit f=o;}}c) interface Fruit {}public class Apple implements Fruit {public static void main(String[] args){ Fruit f=new Fruit();Apple a=f;}}d) interface Fruit {}public class Apple implements Fruit {public static void main(String[] args){ Apple a=new Apple();Fruit f=a;}}e) interface Fruit {}class Apple implements Fruit {}class Orange implements Fruit {}public class MyFruit {public static void main(String[] args){ Orange o=new Orange();Fruit f=o;Apple a=f;}}5.对于以下类:interface IFace{}class CFace implements IFace{}class Base{} public class ObRef extends Base{ public static void main(String argv[]){ObRef ob = new ObRef();Base b = new Base();Object o1 = new Object();IFace o2 = new CFace();}}下面哪些代码能够编译通过?a) o1=o2;b) b=ob;c) ob=b;d) o1=b;6.对于以下类:class A {}class B extends A {}class C extends A {}public class Q3ae4 {public static void main(String args[]) {A x = new A();B y = new B();C z = new C();// 此处插入一条语句}}下面哪些语句放到以上插入行,将导致运行时异常?a) x = y;b) z = x;c) y = (B) x;d) z = (C) y;e) y = (A) y;7.下面哪些是合法的语句?a) Object o = new String("abcd");b) Boolean b = true;c) Panel p = new Frame();d) Applet a = new Panel();e) Panel p = new Applet();8.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? Object o = new String("abcd");String s = o;System.out.println(s);System.out.println(o);9.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?class Base{abstract public void myfunc();public void another(){System.out.println("Another method");}}public class Abs extends Base{public static void main(String argv[]){Abs a = new Abs();a.amethod();}public void myfunc(){System.out.println("My func");}public void amethod(){myfunc();}}10.以下哪些代码是合法的?a) public abstract method();b) public abstract void method();c) public abstract void method(){}d) public virtual void method();e) public void method() implements abstract;11.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?abstract class Base{abstract public void myfunc();public void another(){System.out.println("Another method");}}public class Abs extends Base{public static void main(String argv[]){Abs a = new Abs();a.amethod();} public void myfunc(){System.out.println("My func");}public void amethod(){myfunc();}}12.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?import java.io.FileNotFoundException;class Base{public static void amethod()throws FileNotFoundException{} }public class ExcepDemo extends Base{public static void main(String argv[]){ExcepDemo e = new ExcepDemo();}public static void amethod(){}protected ExcepDemo(){System.out.println("Pausing");amethod();System.out.println("Continuing");}}13.对于以下代码:public class Tester {public long sum(long a, long b) { return a + b; }// 此处插入一行}下面哪些语句放到以上插入行,可以编译通过?a) public int sum(int a, int b) { return a + b; }b) public int sum(long a, long b) { return 0; }c) abstract int sum();d) private long sum(long a, long b) { return a + b; }e) public long sum(long a, int b) { return a + b; }Java基础面向对象习题3:1.以下哪些是Java修饰符?a) publicb) privatec) friendly d) transiente) vagrant2.作为程序入口的 main()方法可以用哪些修饰符来修饰?a) privateb) finalc) staticd) inte) abstract3.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?private class Base{}public class Vis{transient int iVal;public static void main(String elephant[]){ }}4.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?class A{private int secret;}public class Test{public int method(A a){return a.secret++;}public static void main(String args[]){Test test=new Test();A a=new A();System.out.println(test.method(a));}}5.哪个访问控制符的访问级别最大?a) privateb) publicc) protectedd) 默认6.如果一个方法只能被当前类以及同一个包中的类访问,这个方法采用什么访问级别?7.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?private class Base{Base(){int i = 100;System.out.println(i);}}public class Pri extends Base{static int i = 200;public static void main(String argv[]){Pri p = new Pri();System.out.println(i);}}8.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class MyAr{public static void main(String argv[]) {MyAr m = new MyAr();m.amethod();}public void amethod(){static int i;System.out.println(i);}}9.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?class Test{int x = 5;static String s = "abcd";public static void method(){System.out.println(s + x);}}10.对于以下程序,运行“java StaticTest” ,得到什么打印结果? public class StaticTest {static {System.out.println("Hi there");}public void print() {System.out.println("Hello"); } public static void main(String args []) {StaticTest st1 = new StaticTest();st1.print();StaticTest st2 = new StaticTest();st2.print();}}11.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class Test{final int x = 0;Test(){x = 1;}final int aMethod(){return x;}}12.以下代码能否编译通过?public class FinalTest{final int q;final int w = 0;FinalTest(){q = 1;}FinalTest(int x){q = x;}}13.以下代码能否编译通过?public class FinalTest{final int q;final int w = 0;FinalTest(){this(0);q = 1; }FinalTest(int x){ q = x;}}Java基础面向对象习题4:1.接口与抽象类有哪些异同点?2.区分接口与抽象类分别在什么场合使用?3.以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?import java.awt.event.*;import java.awt.*;public class MyWc extends Frame implements WindowListener{ public static void main(String argv[]){MyWc mwc = new MyWc();}public void windowClosing(WindowEvent we){System.exit(0);}//End of windowClosingpublic void MyWc(){setSize(300,300);setVisible(true); }}4.以下代码能否编译通过?interface A{int x = 0;A(){x= 5;}A(int s){x = s;}}5.接口中的方法可以使用哪些修饰符?a) staticb) privatec) synchronisedd) protectede) public6.以下是接口I的定义:interface I {void setValue(int val);int getValue();}以下哪些代码能编译通过?(a) class A extends I {int value;void setValue(int val) { value = val; }int getValue() { return value; }}b) interface B extends I {void increment();}c) abstract class C implements I {int getValue() { return 0; }abstract void increment();}d) interface D implements I {void increment();}(e) class E implements I {int value;public void setValue(int val) { value = val; } }7.以下代码能否编译通过?interface A{int x;void A(int s){x = s;}}。