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

合集下载

《面向对象程序设计(java)》编程题库(含答案)

《面向对象程序设计(java)》编程题库(含答案)

《面向对象程序设计(java)》编程题库(含答案)《面向对象程序设计(Java)》资源文档——深圳职业技术学院《面向对象程序设计(Java)》编程题库(含答案) 1、已知数组a={4,67,32,78,56,13,90,48,22},编程实现求该数组最大值并输出的方法。

2、编写程序实现求0~150之间的奇数的乘积;3、已知类People里含有属性money初值是20,方法void work(int m)实现增加m到money里,定义它的子类ChinaPeople,重写方法void work(int m)实现把增加m到money里(体现汇率变化)。

4、定义接口Worker,有一个方法login()实现打卡功能。

定义该接口实现类ChinaWorker,给出login()的具体实现,只需输出“我来了~~”即可。

5、使用Scanner类实现从键盘输入一句英文,主程序实现把这句英文的单词按照字典顺序排序输出。

6、使用Scanner类实现从键盘输入若干个双精度数,主程序实现把这些数求和输出。

7、定义窗体,窗体上含有两个文本区,一个按钮,实现一个文本区内输入若干个整数,单击按钮后在另一个文本区内显示这些整数中奇数的个数,并输出所有奇数。

8、编写类比如Circle实现模拟圆形,类中封装与圆有关的数据和方法(比如半径和获取面《面向对象程序设计(Java)》资源文档——深圳职业技术学院积),在主方法中定义一个对象,让这个对象操作自己的数据和方法输出相应结果。

9、编写一个类People,含有两个属性String 类型的name和int类型的age,定义一个方法speak()输出这两个属性。

如“我是zhanghua,我今年12了”。

编写People的子类Boy,重写方法speak(),输出“我是男孩,我今年***”。

编写People的子类Girl,重写方法speak(),输出“我是女孩,我叫****“。

编写主类,声明一个People的对象p。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

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面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。

答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。

答案:final3. 在Java中,______关键字用于声明一个类是抽象的。

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

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

2.Java面向对象知识测试 - 含答案

2.Java面向对象知识测试 - 含答案

单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项? ()A.class Student{name;age;}B.class Student{String name = 1.0;int age = “26”;}C.class Student{String name;int age;}D.class Student{String name,int age;}3:类Student中成员方法声明正确是哪一项?()A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}4:类Student中构造方法声明正确的是哪一项? () A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}5:下列哪一项不是面向对象的三大特征之一? ()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。

B:封装是指隐藏实现细节,提高公共的访问方式。

C:类或者方法也是封装的一种体现。

D:仅仅private修饰的内容才是封装的体现。

7:下列哪个方法和int sum(int a,int b)是重写方法?() A:public void sum(int a,int b)B:public int sum(int a,int b)C:int sum(int a,int b,int c)D:void sum(int c,int b)8:下列程序的运行结果是:()class Test{private static int x = 10;public void show(int x){x++;System.out.println(x);}public static void main(String[] args){int x = 20; //局部变量覆盖成员变量Test t = new Test();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?() A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符? () A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?() class Animal{}class Dog extends Animal{}A:Animal a = new Animal();B:Dog d = new Dog();C: Animal a = new Dog();D:Dog d = new Animal();12:下列有关抽象类的叙述正确的是哪项?() A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?() A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()class Fu{public int num = 10;}class Zi extends Fu{public int num = 20;}class Testpublic static void main(String[] args) {Fu f = new Zi();System.out.println(f.num);Zi z = (Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();f.method();}}A:fu showB:zi showC:编译报错D:zi method16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。

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

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

Java 面向对象编程练习题及答案题目一:洗衣机类设计描述:设计一个洗衣机类,具有以下属性和方法:属性:- 品牌(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. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。

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

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

【练习题】 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. 类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。

那么,我们可以自己实现一个时间类,来满足程序中的需要。

定义名为 MyTime的类,其中应有三个整型成员:时(hour ),分( minute ),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。

为 MyTime类定义构造方法,以方便创建对象时初始化成员变量。

再定义 diaplay 方法,用于将时间信息打印出来。

为MyTime类添加以下方法:addSecond(int sec)addMinute(int min)addHour(int hou)subSecond(int sec)subMinute(int min)subHour(int hou)分别对时、分、秒进行加减运算。

class MyTime{private int hour;private int minute;private int second;public MyTime(int hour,int minute,int second){=hour;=minute;=second;}void diaplay(){" 时间: "+hour+":"+minute+":"+second);}void addSecond(int sec){second = second+sec;}void addMinute(int min){minute = minute+min;}void addHour(int hou){hour = hour+hou;}void subSecond(int sec){second = second-sec;}void subMinute(int min){minute = minute-min;}void subHour(int hou){hour = hour-hou;}void Test(){if(hour<=23&hour>=0&minute<=59&minute>=0&second<=59&second>=0) "\nTrue\n");else"\nFalse\n");}}public class b01{public static void main(String args[]){MyTime b = new MyTime(11,4,55);(5);(5);(2);();();}}【练习题】 04. 构造方法编写 Java 程序,模拟简单的计算器。

定义名为 Number的类,其中有两个整型数据成员 n1 和 n2,应声明为私有。

编写构造方法,赋予 n1 和 n2 初始值,再为该类定义加(addition )、减(subtration )、乘( multiplication )、除( division )等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。

在main 方法中创建 Number类的对象,调用各个方法,并显示计算结果。

class Number{private int n1;private int n2;public Number(int n1,int n2){=n1;=n2;}void addition(){int equal = n1+n2;"n1+n2="+equal);}void subtration(){int equal = n1-n2;"n1-n2="+equal);}void multiplication(){int equal = n1*n2;"n1*n2="+equal);}void division(){int equal = n1/n2;"n1/n2="+equal);}}public class b01{public static void main(String args[]){Number num = new Number(6,3);();}}【练习题】 05. 构造方法:编写 Java 程序,用于显示人的姓名和年龄。

定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。

定义构造方法,用来初始化数据成员。

再定义显示( display )方法,将姓名和年龄打印出来。

在main 方法中创建人类的实例,然后将信息显示。

class Person{private String name;private int age;public Person(String name,int age){=name;=age;}void display(){" 姓名—— >"+name+"\n 年龄—— >"+age);}}public class b01{public static void main(String args[]){Person per = new Person("奥巴马",20);();}}【练习题】方法和set 方法定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的 getXXX() 和 setXXX() 方法提示:假设有 private String name;则有public void setName(String name){= name;}public String getName(){return ;}class Person{private String name;public Person (String n){(n);}public void setName(String n){name = n ;}public String getName(){return name;}public void getInfo(){" 名字: "+name);}}public class b01{public static void main(String args[]){Person per = new Person("奥巴马");();();}}【练习题】 07. 构造方法与重载为“无名的粉”写一个类:class WuMingFen 要求:1. 有三个属性:面码 :String theMa粉的分量(两):int quantity是否带汤: boolean likeSoup2.写一个构造方法,以便于简化初始化过程,如:WuMingFen f1 = new WuMingFen(" 牛肉 ",3,true);3.重载构造方法,使得初始化过程可以多样化:WuMingFen f2 = new WuMingFen(" 牛肉 ",2);4.如何使得下列语句构造出来的粉对象是酸辣面码、 2 两、带汤的WuMingFen f3 = new WuMingFen();5.写一个普通方法: check() ,用于查看粉是否符合要求。

即:将对象的三个属性打印在控制台上。

class WuMingFen{String theMa;int quantitu;boolean likeSoup;public WuMingFen(){}public WuMingFen(String theMa,int quantitu){=theMa;=quantitu;}public WuMingFen(String theMa,int quantitu,booleanlikeSoup){ this(theMa,quantitu);= likeSoup;}public void check(){"面码:"+theMa+"\n粉的份量:"+quantitu+"\n是否带汤:"+likeSoup); }}public class b01{public static void main(String args[]){WuMingFen f1 = new WuMingFen(" 牛肉 ",3,true);WuMingFen f2 = new WuMingFen(" 牛肉 ",2);WuMingFen f3 = new WuMingFen();();();();}}【练习题】 08. 构造方法的重载:定义一个名为Vehicles (交通工具)的基类,该类中应包含String 类型的成员属性brand (商标)和color (颜色),还应包含成员方法run (行驶,在控制台显示“我已经开动了” )和showInfo (显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。

相关文档
最新文档