Java面向对象编程练习题

合集下载

Java面向对象编程练习题精编

Java面向对象编程练习题精编

J a v a面向对象编程练习题精编Lele was written in 2021Java面向对象编程练习题专题1 初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是(SE)、( EE )、( ME )。

2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。

3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。

4.如果Java源文件中有多个类,那么只能有一个类是()类。

5.Java程序可以分成两类,即()和()。

二、选择题1.作为Java应用程序入口的main方法,其声明格式是(B )A.public static int main(String args[]) B.public static void main(String args[])C.public void main(String args[]) D.publicint main(String args[])2.下面命令正确的是(B)A.java B.java AppFirstC.java D.javac AppFirst3.设有一个Java小程序,源程序名为,其class文件为,则运行该小程序的命令为(B)A.java FirstApplet B.javac C.appletviewer D.appletviewer4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。

A.bin B.jre C.include D.doc5.Java语言是一种 D 语言。

A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是 D 。

A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点跨平台、一种简单、面向对象、分布式、半编译半解释、健壮、安全、多线程2.JDK安装完成后,如何设置环境变量Path 配置:1)我的电脑—属性—高级—环境变量—系统变量2)新建变量名:path 变量值: jdk中bin的路径 C:\Program Files\Java\ 配置 Class Path :1)我的电脑—属性—高级—环境变量—系统变量2)新建变量名:classpath 变量值: .;jdk中lib的路径;C:\Program Files\Java\3.简述Java应用程序和小应用程序的区别。

java面向对象练习题

java面向对象练习题

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面向对象试题_百度文库

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

java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。

2. 描述Java中的继承是如何工作的,并给出一个继承的例子。

3. 解释Java中的多态性,并给出一个多态性的例子。

三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。

2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。

3. 创建一个名为`VehicleTest`的类,它包含`main`方法。

在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。

四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。

JAVA面向对象程序设计练习题库

JAVA面向对象程序设计练习题库

第一章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 面向对象编程练习题及答案

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

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

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

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

java面向对象试题及答案

java面向对象试题及答案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

java面向对象考题和答案

java面向对象考题和答案

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面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是:2.public class Main {3. public static void main(String[] args) {4. int n = 100;5. int m = 200;6. System.out.println(f(n,m));7. System.out.println(n);8. }9. public static int f(int m, int n) {10. n = m+n;11. return n;12. }13.}A.300300B.100100C.300100D.1003002.程序执行的结果是:3.public class Test {4. public static void main(String[] args) {5. int x = 6;6. Test p = new Test();7. p.doStuff(x);8. System.out.println(" main: x = " + x);9. }10. void doStuff(int x) {11. System.out.println(" doStuff:x =" + x++);12. }13.}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.下列代码的输出结果是:5.public class Test {6. public void print(char c) {7. System.out.println("c");8. }9.10. public void print(int i) {11. System.out.println("i");12. }13.14. public void print(double d) {15. System.out.println("d");16. }17. public void print(String s) {18. System.out.println("s");19. }20. public static void main(String[] args) {21. Test test=new Test();22. test.print('5');23. }24.}A.cB.iC.dD.s5.程序执行的结果是:6.public class Test {7. String name="Tom";8. public Test(String name){9. name=name;10. }11. public static void main(String [] args){12. Test t = new Test("Jack");13. System.out.println();14. }15.}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.下列代码编译和运行的结果是:10.class Person {11. String name = "No name";12.13. public Person(String nm) {14. name = nm;15. }16.}17.class Employee extends Person {18. String empID = "0000";19.20. public Employee(String id) {21. empID = id;22. }23.}24.public class EmployeeTest {25. public static void main(String[] args) {26. Employee e = new Employee("4321");27. System.out.println(e.empID);28. }29.}A.输出:0000B.输出:4321C.代码public Employee(String id) {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:11.public class Animal {12. public String noise() {13. return "peep";14. }15. public static void main(String[] args) {16. Animal animal = new Dog();17. Cat cat = (Cat)animal;18. System.out.println(cat.noise());19. }20.}21.class Dog extends Animal {22. public String noise() {23. return "bark";24. }25.}26.class Cat extends Animal {27. public String noise() {28. return "meow";29. }30.}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.下列代码的输出结果是:15.class Foo {16. private int x;17. public Foo(int x) {18. this.x = x;19. }20. public void setX(int x) {21. this.x = x;22. }23. public int getX() {24. return x;25. }26.}27.public class Gamma {28. static Foo fooBar(Foo foo) {29. foo = new Foo(100);30. return foo;31. }32. public static void main(String[] args) {33. Foo foo = new Foo(300);34. System.out.print(foo.getX() + "-");35. Foo fooFoo = fooBar(foo);36. System.out.print(foo.getX() + "-");37. System.out.print(fooFoo.getX() + "-");38. foo = fooBar(fooFoo);39. System.out.print(foo.getX() + "-");40. System.out.print(fooFoo.getX());41. }42.}A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:16.public class Base {17. public static final String FOO = "foo";18.class Sub extends Base {19. public static final String FOO = "bar";20.}21. public static void main(String[] args) {22. Base b = new Base();23. Sub s = new Sub();24. System.out.print(Base.FOO);25. System.out.print(Sub.FOO);26. System.out.print(b.FOO);27. System.out.print(s.FOO);28. System.out.print(((Base) s).FOO);29. }30.}31.A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:17.public class ItemTest {18. private final int id;19. public ItemTest(int id) {20. this.id = id;21. }22. public void updateId(int newId) {23. id = newId;24. }25. public static void main(String[] args) {26. ItemTest fa = new ItemTest(42);27. fa.updateId(69);28. System.out.println(fa.id);29. }30.}A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:18.public class Student {19. private String name="sun";20. public static void main(String[] args) {21. Student[] students=new Student[2];22. System.out.println(students[0].name);23. System.out.println(students.length);24. }25.}A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:19.abstract class Vehicle {20. public int speed() {21. return 0;22. }23.}24.class Car extends Vehicle {25. public int speed() {26. return 60;27. }28.}29.class RaceCar extends Car {30. public int speed() {31. return 150;32. }33.}34.public class TestCar {35. public static void main(String[] args) {36. RaceCar racer = new RaceCar();37. Car car = new RaceCar();38. Vehicle vehicle = new RaceCar();39. System.out.println(racer.speed() + ", " + car.speed() + ", "40. + vehicle.speed());41. }42.}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.下列代码运行的结果是:24.public class Hello {25. String title;26. int value;27. public Hello() {28. title += "World";29. }30. public Hello(int value) {31. this.value = value;32. title = "Hello";33. }34. public static void main(String[] args) {35. Hello c = new Hello(5);36. System.out.println(c.title);37. }38.}A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:25.interface TestA {26. String toString();27.}28.public class Test {29. public static void main(String[] args) {30. System.out.println(new TestA() {31. public String toString() {32. return "test";33. }34. });35. }36.}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.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B12,正确答案:BC13,正确答案:C14,正确答案:B15,正确答案:D16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

Java面向对象编程练习题

Java面向对象编程练习题
}
public static void main(String[] dsa)
{
Vehicle v=new Vehicle();
v.speed=100;
v.size="50/m^3";
System.out.println("the initial speed is"+v.speed+"and my size is "+v.size);
continue;
}
else if (i>a.v)
{
System.out.println("大了");
continue;
}
else
{
System.out.println("恭喜你猜对了!");
break;
}
}
}
public class WuMingFen
{
private String theMa;
private int quantity;
private boolean likeSoup;
public WuMingFen (String s,int i,boቤተ መጻሕፍቲ ባይዱlean b)
{
this.theMa=s;
}
public void speedUp()
{
Vehicle v=new Vehicle();
v.setSpeed(1000);
}
public void speedDown()
{
Vehicle v=new Vehicle();

java面向对象程序设计考试题及答案

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)》经典编程集(共60题,含答案)

《面向对象程序设计(Java)》经典编程集(共60题,含答案)

《面向对象程序设计(Java)》经典编程集(共60题,含答案)/*一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?第5次反弹多高?*//*输出7*7口诀*//*求1+2!+3!+...+10!的和*//*有5个人坐在一起,问第五个人多少岁?他说比第4个人大3岁。

问第4个人岁数,他说比第3个人大3岁。

问第三个人,又说比第2人大3岁。

问第2个人,说比第一个人大3岁。

最后问第一个人,他说是10岁。

请问第五个人多大? *//*求0--7所能组成的6位的奇数个数是多少个*//*有1、2、3、4、5、6、7、8、9个数字,能组成多少个互不相同且无重复数字的四位数?程序分析:可填在千位、百位、十位、个位的数字都是1、2、3、4、5、6、7、8、9。

组成所有的排列后再去掉不满足条件的排列。

*//*一个整数,它加上1000后是一个完全平方数,再加上1680又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上1000后再开方,再将该数加上2680后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析*//*利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,80-89分之间的用B表示,70-79分之间的用C表示,60-69分之间用D表示,60分以下的用E表示。

(假定输入数字为95,判断等级)*//*题面:编写程序解决如下问题,小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,求可以有多少种不同的借法?将结果打印输出*//*题面:编写程序解决如下问题,某人将一缸金鱼分5次出售,第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。

问原来的鱼缸中共有几条金鱼?将结果打印输出*//*题面:编写程序,一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数,以十进制输出。

java面向对象程序设计练习题(有答案)

java面向对象程序设计练习题(有答案)

满分: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面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案一、单选题(每题2分,共10分)1. 在Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. Java中,哪个关键字用于定义一个私有方法?A. privateB. publicC. protectedD. default答案:A3. 下列哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. static答案:D4. 在Java中,哪个关键字用于实现多态?A. abstractB. finalC. staticD. interface答案:A5. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. structD. enum答案:B二、多选题(每题3分,共15分)1. 在Java中,下列哪些关键字用于定义一个类的方法?A. publicB. privateC. protectedD. static答案:A, B, C, D2. 下列哪些关键字用于实现类的继承?A. extendsB. implementsC. abstractD. final答案:A3. 在Java中,下列哪些关键字用于定义类的成员变量?A. privateB. publicC. protectedD. static答案:A, B, C, D4. 下列哪些关键字用于定义类的构造方法?A. constructorB. thisC. newD. super答案:B, D5. 在Java中,下列哪些关键字用于定义接口的常量?A. privateB. publicC. staticD. final答案:B, C, D三、判断题(每题2分,共10分)1. Java中,一个类可以继承多个类。

(错误)2. Java中,接口可以继承接口。

(正确)3. Java中,一个类可以继承多个接口。

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

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

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。

《Java面向对象编程》练习题

《Java面向对象编程》练习题

《Java面向对象编程》练习题Java面向对象编程练习题专题1初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是(JAVASE)、(JAVAEE)、(JAVAME)。

2.环境变量的设置,若JDK安装在“D:\\JDK”,则应设置Path为(D:JDK\\bin)、clapath为(D:JDK\\lib)。

3.Java源文件的扩展名为(.java),用Javac编译Java源文件,得到的字节码文件的扩展名为(.cla)。

4.如果Java源文件中有多个类,那么只能有一个类是(publiccla)类。

5.Java程序可以分成两类,即(JavaApplication)和(javaApplet)。

二、选择题1.作为Java应用程序入口的main方法,其声明格式是(b)A.publictaticintmain(Stringarg[])B.publictaticvoidmain(Str ingarg[])C.publicvoidmain(Stringarg[])D.publicintmain(Stringarg[])2.下面命令正确的是(B)A.javaAppFirt.javaB.javaAppFirtC.javaappfirt.claD.javacA ppFirt3.设有一个Java小程序,源程序名为FirtApplet.java,其HTML文件为FirtApplet.html,则运行该小程序的命令为(D)A.javaFirtAppletB.javacFirtApplet.javaC.appletviewerFirtA pplet.javaD.appletviewerFirtApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。

A.binB.jreC.includeD.doc5.Java语言是一种D语言。

A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是DA.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?3.简述Java应用程序和小应用程序的区别。

使用Java实现面向对象编程试题

使用Java实现面向对象编程试题

}} B. public int cal( int x, int y, int z){ retur n 0; } C. public void cal( int x, int z){ }D. public void cal(int z, int y, int x){ } + health +}public static void main(String[] args) { Penguin pgn = new Penguin(); 福建师范大学数计学院 2011计算机软件本科《使用Java 实现面向对象编程》笔试试卷学号: 姓名: 成绩:一、选择题(共10题,每题4分,满分40分)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){ retur n 0; } 4) 在Java 中,下面对于构造函数的描述正确的是()。

A.类必须显式定义构造函数B.构造函数的返回类型是 void5) 下面Java 代码的运行结果是(class Penguin {private String name=null; // privateint health=O; // private Stringsex=null; // public void Penguin(){ health = 10; sex ="雄";System.out.println("} public void print(){ System.out.println("",健康值是” )。

java面向对象试题及答案

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java面向对象编程练习题专题1 初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是(SE)、(EE )、(ME )。

2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath 为()。

3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。

4.如果Java源文件中有多个类,那么只能有一个类是()类。

5.Java程序可以分成两类,即()和()。

二、选择题1.作为Java应用程序入口的main方法,其声明格式是(B )A.public static int main(String args[]) B.public static void main(String args[])C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是(B)A.java AppFirst.java B.java AppFirstC.java appfirst.class D.javac AppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其class文件为FirstApplet.calss,则运行该小程序的命令为(B)A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。

A.bin B.jre C.include D.doc5.Java语言是一种 D 语言。

A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是D 。

A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?跨平台、一种简单、面向对象、分布式、半编译半解释、健壮、安全、多线程2.JDK安装完成后,如何设置环境变量?Path 配置:1)我的电脑—属性—高级—环境变量—系统变量2)新建变量名:path 变量值:jdk中bin的路径C:\Program Files\Java\jdk1.6.0_02\bin;配置Class Path :1)我的电脑—属性—高级—环境变量—系统变量2)新建变量名:classpath 变量值: .;jdk中lib的路径;C:\Program Files\Java\jdk1.6.0_02\lib;3.简述Java应用程序和小应用程序的区别。

4.简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:(true )和(false)。

2.写出下列表达式的运算结果,设a=2,b=-4,c=true。

(1)-a%b++ -2(2)a>=1 && a <= 10 ? a : b true(3)c^(a>b) false(4)(-a)<<a -8(5)(double)(a+b)/5+a/b -0.43、比较两个数相等的运算符是:== 。

4、Java中的八种基本数据类型分别是:char、int 、long 、short 、boolean 、float 、double和byte 。

二、选择题1.下面这些标识符哪个是错误的(C)A.Javaworld B._sum C.2Java Program D.$abc 2.下列哪一组运算符的优先级顺序是从高到低排列的(B)A.|、&、!B.&、^、|| C.!、%、++ D.<、<<、++ 3、下面哪个赋值语句不会产生编译错误(D )A.char a=’abc’; B.byte b=152; C.float c=2.0; D.double d=2.0;4.下面哪个单词是Java语言的关键字(D)A.False B.FOR C.For D.for5.执行下面程序后,哪个结论是正确的(A )int a, b, c;a=1; b=3; c=(a+b>3 ? ++a : b++);A.a的值为2,b的值为3,c的值为1 B.a的值为2,b的值为4,c的值为2 C.a的值为2,b的值为4,c的值为1 D.a的值为2,b的值为3,c的值为2 6.设各个变量的定义如下,哪些选项的值为true ( C)int a=3, b=3;boolean flag=true;A.++a = = b B.++a= = b++ C.(++a = = b) || flag D.(++a= =b) & flag7.表达式(int)6.5/7.5*3的值的类型为(B)?A.short B.int C.double D.float8.设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D)A.x>y && b<a B.-z>x-y C.y = = ++x D.y+x*x++ 9.下面语句输出的结果为(B )Syste.out.println(5^2); //二进制比较0101^0010=0111A.6 B.7 C.10 D.2510.对下面的语句执行完后正确是:(D )int c=’c’/3;System.out.println(c);A.输出结果为21 B.输出结果为22 C.输出结果为32 D.输出结果为3311.以下选项中变量a已定义类型,合法的赋值语句为(A)A.a = int(y); B.a= =1; C.a = a+1=3; D.++a;12.执行下列程序段后,ch,x,y的值正确的是:(D )int x=3, y=4;boolean ch;ch=x<y || ++x = = --y;A.true,3,4 B.true,4,3 C.false,3,4 D.false,4,3 13.下列标识符中,正确的是 B 。

A、1_BackB、$_MoneyC、$-moneyD、2-Forward 14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是B 。

A、int类型B、double类型C、float类型D、long类型15、以下程序的运行结果为 A 。

public class A {public static void main(String a[]) {int x = 2, y = 5;String z = "5";System.out.println(x + y);System.out.println(x + z + "x+z");System.out.println("x+y=" + x + y);System.out.println("x+z=" + (x + z));}}A.7 B.7 C.25 D.7 25x+z 7x+z 25x+z 25x+zx+y=25 x+y=25 x+y=7 x+y=25 x+z=25 x+z=7 x+z=25 x+z=7 16、设有定义int a=12;则执行a*=12;语句后,a的值为:A 。

A.144 B.12 C.24 D.017、下列标识符中,合法的一个是C。

A.$#@!$ B.$我们$ C.$22$ D.2$$218、执行下列程序段后,b, x, y的值分别是D 。

int x=6,y=8;boolean b;b=x>y&&++x==--y;A.true , 6, 8 B.false , 6, 8 C.e, 7, 7 D.false, 7, 7 19、下列程序运行的结果是d。

public class A {public static void main(String args[]) {int x = 7%3;while(x){x--;}System.out.println(x);}}A.0 B.1 C.true D.编译错误三、编程题1.使用Math.pow()方法,求出2的32次方的值。

public class Tip {public static void main(String[] args){double i=2;double t=0;t=Math.pow(2, 32);System.out.print(t);}}专题3 流程控制语句一、填空题1.在switch语句中的表达式的类型必须是(int )或者(char )。

2.break在循环语句中的作用是(跳出循环)。

3.分支语句包括(if )和(switch )。

4.while循环语句的循环次数(n ),do-while语句的循环次数(n+1 ),for语句的循环次数(n )。

二、选择题1.下面程序片段输出的是什么(C)int a=3, b=1;if(a=b) Syste.out.println(“a=”+a);A.a=1 B.a=3 C.编译错误,没有输出D.正常运行,但没有输出2.下面语句执行后,x的值为(C )int a=4, b=5, x=3;if(++a==b) x=x*a;A.3 B.12 C.15 D.203.请看下面的程序代码:if(x<0) {Syste.out.println(“first”);}else if(x<20) {Syste.out.println(“second”);}else {Syste.out.println(“third”);}当程序输出“second”时,x的范围是()A.x<=0 B.x<20 && x>=0 C.x>0 D.x>=20 4.请看下面的程序代码:switch(n){case 0: Syste.out.println(“first”);case 1:case 2: Syste.out.println(“second”); break;default: Syste.out.println(“end”);}当n为何值时,程序段将输出字符串”second”()A.0 B.1 C.2 D.以上都可以5.下列语句执行后,j的值是()int j=3, i=3;while(--i!=i/j) j=j+2;A.4 B.5 C.6 D.76.下列语句执行后,x的值是(D)int x=2 ;do{x+=x ; }while(x<17);A.4 B.16 C.32 D.2567.执行下列语句后,i、j的值是()int i=1, j=8;do{if(i++>--j)continue;}while(i<4);A.i=4, j=5 B.i=5,j=4 C.i=5,j=5 D.i=5,j=6 8.下列语句执行后,k的值是()int j=4, i, k=10;for(i=2; i!=j; i++) k=k-i;A.4 B.5 C.6 D.79.下列语句执行后,c的值是()char c=’\0’;for(c=’a’; c<’z’; c+=3){if(c>=’e’) break;}A.‘e’B.’f’C.’g’D.’h’10.若变量都已经正确说明,则以下程序段输出为()a=10; b=50; c=30;if(a>b) a=b;b=c;System.out.println(“a=”+a+”b=”+b+”c=”+c);A.a=10 b=50 c=10 B.a=10 b=30 c=10C.a=50 b=30 c=10 D.a=50 b=30 c=3011.以下程序段输出是()int x=1,y=0,a=0,b=0;i=(--a==b++)? - -a : ++b;j=a++; k=b;System.out.println(“i=”+i+”,j=”+j+”,k=”+k); 2 -1 2 A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 12.以下程序的输出是()int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0: a++;break;case 1: b++;break;}case 2:a++;break;case 3:a++;b++;System.out.println(“a=”+a+”,b=”+b); 2 0 A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是()int i=0,j=0,a=6;if ((++i>0) || (++j>0 )) a++ :System.out.println(“i=”+i+”,j=”+j+”,a=”+a);A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是。

相关文档
最新文档