Java面向对象练习经典题
- 格式:doc
- 大小:20.50 KB
- 文档页数:5
面向对象程序设计练习题库与答案一、单选题(共36题,每题1分,共36分)1.下列关于静态内部类的说法,错误的是()A、静态内部类不能直接访问外部类的非静态成员B、静态内部类只能访问外部类的静态成员C、创建静态内部类的对象时,必须要先创建外部类的对象D、静态内部类,就是使用static关键字修饰的成员内部类正确答案:C2.以下选项中,哪个是FileInputStream的父类()A、FileB、FileOutputC、OutputStreamD、InputStream正确答案:D答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。
3.下面关于FileInputStream和FileOutputStream的说法中,错误的是()A、FileInputStream是InputStream的子类,它是操作文件的字节输入流B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的正确答案:C答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。
4.下列关于类的说法中,错误的是()A、Java中创建类的关键字是class。
B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。
C、Java中对象的创建,首先需要定义出一个类。
D、一个类只能创建一个对象。
正确答案:D答案解析:类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。
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)。
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)方法。
专题1初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“D:JDK”,则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[]) C.publicvoidmain(Stringargs[])D.publicintmain(Stringargs[])2.下面命令正确的是()A.javaAppFirst.javaB.javaAppFirstC.javaappfirst.classD.javacAppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.javaFirstAppletB.javacFirstApplet.javaC.appletviewerFirstApplet.javaD.appletviewerFirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。
A.binB.jreC.includeD.doc5.Java语言是一种__语言。
A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是__。
A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?4.简述Java应用程序的开发过程专题2标识符、表达式、数据类型一、填空题1.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、()术语常常用来指代类。
面向对象练习题一、选择题1. 在面向对象编程中,以下哪个概念不是面向对象的核心概念?A. 封装B. 继承C. 多态D. 函数2. 以下哪个选项是Java语言中实现多态的方式?A. 通过继承B. 通过接口C. 通过重载D. 通过重写3. 在面向对象编程中,一个类可以有多少个父类?A. 0个或1个B. 1个C. 多个D. 无数个4. 以下哪个关键字在Java中用于定义一个类?A. structB. classC. interfaceD. enum5. 以下哪个是Java中创建对象的关键字?A. newB. createC. instanceD. object二、填空题6. 在面向对象编程中,______ 是指将数据和操作这些数据的方法结合在一起。
7. 一个类可以包含______ 和______ 两种成员。
8. 封装的目的是______ 数据,并对外部隐藏内部细节。
9. 继承可以使得子类获得父类的______ 和______。
10. 多态性允许不同类的对象对同一消息做出响应,但具体______ 取决于对象的实际类型。
三、简答题11. 简述面向对象编程的三大特性,并举例说明它们在实际编程中的应用。
12. 解释什么是接口,并说明接口与抽象类的区别。
13. 描述如何使用Java实现一个简单的类,并说明如何创建该类的实例。
四、编程题14. 编写一个Java类`Person`,包含属性`name`和`age`,以及一个方法`introduce()`,该方法输出个人信息。
15. 假设你已经有一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。
编写一个名为`Dog`的类,继承自`Animal`,并实现`makeSound()`方法,使得`Dog`对象调用该方法时输出"Woof!"。
16. 创建一个Java程序,包含一个名为`Vehicle`的类,它有一个属性`speed`和一个方法`increaseSpeed(int increment)`。
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)三个类。
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。
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中多态的概念及其作用。
答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。
以下是一些经典的Java面向对象的题目:题目1:创建一个名为"Person"的类,包含以下属性和方法:属性:姓名(name),年龄(age),性别(gender)方法:获取姓名的方法(getName),获取年龄的方法(getAge),获取性别的方法(getGender),设置姓名的方法(setName),设置年龄的方法(setAge),设置性别的方法(setGender)题目2:创建一个名为"Rectangle"的类,包含以下属性和方法:属性:宽度(width),高度(height)方法:计算矩形面积的方法(getArea),计算矩形周长的方法(getPerimeter),设置宽度的方法(setWidth),设置高度的方法(setHeight)题目3:创建一个名为"BankAccount"的类,包含以下属性和方法:属性:账户号(accountNumber),账户余额(balance)方法:存款的方法(deposit),取款的方法(withdraw),获取账户余额的方法(getBalance)题目4:创建一个名为"Student"的类,继承自"Person"类,添加以下属性和方法:属性:学号(studentId),所在班级(class)方法:获取学号的方法(getStudentId),获取班级的方法(getClass),设置学号的方法(setStudentId),设置班级的方法(setClass)题目5:创建一个名为"Circle"的类,包含以下属性和方法:属性:半径(radius)方法:计算圆的面积的方法(getArea),计算圆的周长的方法(getPerimeter),设置半径的方法(setRadius)这些题目涵盖了面向对象的基本概念,包括类的定义、属性的设置和获取、方法的实现等。
《JAV 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 。
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)》经典编程集(共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条。
问原来的鱼缸中共有几条金鱼?将结果打印输出*//*题面:编写程序,一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数,以十进制输出。
满分: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。
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中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。
JA V A程序作业题
1、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。
2、编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
3、建立三个类:居民、成人、官员。
居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。
要求每个类的字段都以属性的方式对外提供数据输入输出的功能。
4、编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
5. 编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private 以及protected数据成员及方法。
然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。
要求注明在试图访问所有类成员时哪些语句会产生编译错误。
7.创建一个类包含有protected数据。
在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据
9 编写一个控制台应用程序,完成下列功能,并回答提出的问题。
1) 创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。
2) 从A继承一个名为C的新类,并在C内创建一个成员变量B。
不要为C创建构造函数。
3) 在Main方法中创建类C的一个对象,写出运行程序后输出的结果。
4) 如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么
10 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。
2) 再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
3) 在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。
11. 创建一个类,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据成员被存储时,将其乘以100;当其被读取时,将其除以100。
12. 定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed (最大速度)、Weight(重量)等字段。
然后以该类为基类,派生出bicycle、car等类。
并编程对该派生类的功能进行验证。
13.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
14.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。
15、写一个学生类,包括属性:学号,班号,姓名,年龄,性别;要求用无参构造,
方法获得:学号,班号,姓名,年龄(只能小于100岁,大于1,否则重新输入),
性别(只能男或者女,否则重新输入),最后在主函数输出你对一个学生对象赋值的信息。
16.创建一个employee类,该类中姓名、街道地址、市、省和邮政编码。
把表示构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。
17. 编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)
等域。
然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。
最后在Main函数中对student类的功能进行验证。
18 创建一程序,该程序包括一个筛子类,后者有三个数据成员,即筛子的面数,筛子的点数以及包含随机数类的静态数据成员。
为这个类声明一个名为roll()的成员方法,它以随机的方式返回下一次掷筛子得的点数。
19.(1)定义一个游戏中Hero 英雄的类,在该类中定义英雄的名字,生命值和等级3 个属性,定义一个构造函数完成对生命值和等级的初始化,分别赋初值为100,1。
同时实现名字的输入和英雄信息的输出。
(2)在上一题的基础上,为英雄再定义拥有一个参数的构造方法,传入一个英雄类型的值,如果为1,则为普通英雄,生命值为100,如果该值为2,则为高级英雄,生命值初始化为200。
(3)在上两英雄类型的基础上,为英雄添加一个基本战斗的方法,该方法拥有一个英雄类型的参数,当传入另一个英雄时,能降低对方100 点血。
再增加一个绝招的重载方法,加入一个战斗类型参数,通过输入不同绝招参数,降低对方不同的血量。
20、设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。
BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Money(金额),Rest(余额)。
另有一个构造函数和三个成员函数Bankin()(处理存入账),Bankout()处理取出账)和和一个负责生成账号的自动增长的函数。
21、编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。
思路:
设计一个学生类Stud,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。
有两个静态变量sum和num,分别存放总分和人数,另有一个构造函数、一个普通成员函数disp()和一个静态成员函数avg(),它用于计算平均分。
22.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。
思路:
设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有成员函数disp(),用于输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。
在main()函数中定义了一个对象数组用于存储输入的学生数据。
23编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分的学生数据。
思路:
设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,和成员函数 disp(),用于只输出成绩在80~89分数段的学生数据。
在main()函数中定义了一个学生对象数组,用于存储输入的学生数据。
24.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前%70的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)
思路:
设计一个类student,包含学生的姓名和成绩等数据。
设计一个类Compute: sort()、disp(),它们分别用于按成绩排序和输出数据。
25.设计一个词典类Dic,每个单词包括英文单词及对应的中文含义,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译成对应的汉语。
思路:字典项类DicItem包括EngLish(英语单词)、Chinese(对应中文含义)数据成
员,字典类包括一个字典项类的列表,包含Add()(添加单词)和trans(英汉翻译)成员函数。