面向对象专项试题

-------------向对象编程专项试题------ 曹文---------

一:选择题

1. 在Java中关于继承和接口的说法正确的是(B)
A Java允许多接口实现,也允许多重继承
B Java允许多接口实现,不允许多重继承
C Java不允许多接口实现,但允许多重继承
D Java不允许多接口实现,也不允许多重继承

2. 调用重载方法时,系统依据什么什么来选择具体的方法(B)
A 方法名
B 参数的个数和类型
C 参数名和个数
D 方法的返回值类型

3. 下列是正确重载 int class() 方法是(BCD)
A long class()
B int class(String name)
C int class(int num,int cla,int yea)
D int class(String name,int num)

4. 下列哪些说法错误的是(BD)
A 抽象类不可以被实例化
B 如果某类为抽象类了,它一定有抽象方法
C 如果某类为抽象方法,它一定是抽象类
D 抽象类必须被继承,抽象方法必须被重写

5. 对Java作用域修饰符(public private protected 不写)四个中理解错误的是(D)

修饰符 当前类 同包 子类 其他

A public 允许访问 允许访问 允许访问 允许访问

B protected 允许访问 允许访问 允许访问 不允许

C 不写 允许访问 允许访问 不允许 不允许

D private 允许访问 允许访问 不允许 不允许

6. 在Java中关于构造函数说法正确的是(AC)
A 一个类中允许有多个构造函数,在创建对象时调用
B 一个类中允许有多个不同名称的构造函数
C 一个类中必须要有构造函数
D 一个类中只能有一个构造函数

7. 下面错误的是(AD)
A this的优先级比super要高,与他们的顺序无关
B super.+方法名 可以调用父类的方法
C 静态语法块优先被加载
D 调用某类的静态方法,不可以用该类名点出来来用

8.下列各种java中的构造函数定义,那种形式是错误的构造函数定义(C)
A class MyClass{
public MyClass(){
}
}
B class MyClass{
public MyClass(int X){
}
}
C class MyClass{
public int MyClass(){
}
}
D class MyClass{
public MyClass(int x, int y){
}
}

9.借助于java的面向对象的编程特性中的封装机制,可以实现对问题进行如下什么方式的处理(A)
A 将问题的特征属性与问题的功能方法相组合在一起形成一个类。
B 将问题的特征属性与问题的功能方法相分离,形成各自的程序。
C 将问题的特征属性内嵌到问题的功能方法的定义体中。
D 对具体问题只需给出其功能实现方法,不必给出其特征属性的定义。

10.借助于java的面向对象的编程特性中的继承与派生机制,可以实现编程方法中如下什么应用(B)
A 代码组合确良

B 代码重用
C 代码的模块化 D 代码的独立性

11、借助于java的面向对象的编程特性中的抽象机制,可以实现如下什么编程效果(C)
A 将具体问题抽象成java语言中的类的成员数据。
B 将具体问题抽象成java语言中的类的成员函数。
C 将具体问题抽象成java语言中的类的成员数据和成员函数两部分。
D 将具体问题抽象成java语言中的类和对象的定义。

12、设有一类定义如下:
class MyClass{
public MyClass( int X ){

}
}
如下方式创建对象,哪一种是正确的(C)
(1) MyClass myobj=new MyClass;
(2) MyClass myobj=new MyClass( );
(3) Myclass myobj=new MyClass(1);
(4) MyClass myobj=new MyClass(1,2);


13、下列各种java类的定义,那种是错误的(D)
A class MyBaseClass{……}
class MyDerived extends MyBaseClass{……}

B abstract class MyBaseClass{……}
class MyDerived extends MyBaseClass{……}

C public class MyBaseClass{……}
class MyDerived extends MyBaseClass{……}

D final class MyBaseClass{……}
class MyDerived extends MyBaseClass{……}

14、下列各种java类的定义,那种是错误的(D)
A class MyBaseClass{
void myFun(){……}
}
class MyDerived extends MyBaseClass{
void myFun(){…}
}
B abstract class MyBaseClass{
abstract void myFun();
}
class MyDerived extends MyBaseClass{
void myFun(){……}
}
C public class MyBaseClass{
public void myFun(){…}
}
class MyDerived extends MyBaseClass{
public void myFun(){……}
}
D class MyBaseClass{
public final void myFun(){…}
}
class MyDerived extends MyBaseClass{
public void myFun(){...}

}
15、下列各种java类的定义,那种是错误的(C)
A class MyClass{

private int Val;

public int getVal(){
return Val;
}
}
B class MyClass{

private static int Val;

public int getVal(){
return Val;}
}
C class MyClass{

private int Val;

public static int getVal(){
return Val;}
}
D class MyClass{

private static int Val;

public static int getVal(){
return Val;}
}

16、下列各种java类的定义,那种是错误的(C)
A class MyClass{

private int Val;

public int setVal(int Val){
this.Val=Val;
}
}
B class MyClass{

private static int Val;

public int setVal(int Val){
this.Val=Val;
}
}
C class MyClass{

private int Val;

public static int setVal(int Val){
this.Val=Val;}//static方法中不能用 this点出
}

D class MyClass{

private static int Val;

public static int setVal(int ValData){
Val=ValData;}
}

17、如下4种继承与派生的类定义,哪一种是正确的(BC)
A cla

ss base {

public abstract void myfun(); }

class derived extends base {

public void myfun() {
}
}
B final class base { //最终类不能被继承

public void myfun(){
}
}
class derived extends base{

public void myfun() {
}
}
C class base {

public final void myfun() {
}
}
class Dervived extends base {

public void myfun() {
}
}
D abstract class base{

public abstract void myfun();
}
class derived extends base{

public void myfun(){
}
}
18、设Derived类为Base类的派生类,则如下各种对象的创建语句,那种是错误的(B)
A Base Obj=new Derived();
B Derived Obj=new Base();
C Base Obj=new Base();
D Derived Obj=new Derived();

19、欲获取myclass类中的member成员之值哪种方式正确(C)
class myclass{
private static int member=1;

public static int getmember(){
return member ;
}
}
A myclass .member ;
B new myclass().member ;
C myclass .getmember();
D myclass().getmember() ;

20、下列各种形式的重载定义哪一种是正确的(A)
A int add(int x , int y);
int add(int x , int y, int z);

B int add(int a , int b);
int add(int x , int y);

C int add(int x,int y);
void add(int a , int b);

D int add(int x , int y);
void add(int y , int x);



二:判断题;
1. 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 (F)

2 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 (T)

3 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。(T)

4 无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B的字节码文件。(T)

5 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。(T)

6 在Java的方法中定义一个常量要用const关键字。 (F)

7 Java的类不允许多重继承,但接口支持多重继承。 (T)

8 所谓抽象类就是包含有抽象方法的类。 (F)

9 程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 (F)

10. 构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。 (F)

11. String类是可以被继承。(F)

12 有抽象方法该类一定为抽象类,但抽象类可以有实体方法。(T)

三:简答分析题
1. super()与this()的区别?
答:super()可以调用父类的属性及方法,而this()可以调用子类的属性

及方法。

2. 作用域public,protected,private,以及不写时的区别?
答: public 作用域是所有类中的方法
protected 作用域是所有子类、同包的类中的方法
private 作用域是本类中的方法,其他的访问均被拒绝
不写 作用域是同一包下任何类中的方法

3:请设计一个简单的示例,展示多态的用法。
答:
public class A{

public A(){
}
public A(int i){
}
}

四:编程题;

1:自己写一个方法计算一个人扣除相关费用剩余工资;带入当月的工资数值后,返回剩余工资;
该人每个月扣除房贷款按工资的40%算,养老保险金按工资的3%出,每个月的水电费为100元,物业管理费为120元,纳税按工资超出1200元的部分按5%来扣除,误工费扣工资100元。。。最后所有费用出去,剩下工资多少?

package src;

public class Test {

public float money(float money){
float m1=0;
float m2=0;
m1=(float)(money>1200?(money-1200)*0.05:0);
m2=(float)(320+money*0.43);
return money-m1-m2;
}

public static void main(String[] args){
Test test=new Test();
System.out.print("您本月的工资为: "+test.money(5000));
}
}
2:编写新学生信息管理类,其中student类有属性:学生姓名,性别,年龄,联系电话,住址;有方法,得到学生所有属性方法,和修改联系电话,住址的方法 ;现在要扩展学生信息管理类的功能,要增加属性:当年高考分数,毕业院校,班级,专业;方法是:返回得到学生的高考分数,当年毕业院校,班级,专业。

有两种方式:第一是:继承来写;
第二是:定义接口来实现;
用以上两种方发给我实现。编写代码能成功运行实现以上新增加功能
package src;

public class Test {

public static void main(String[] args){
Add add=new Add();
add.setName("毛波");
add.setSex("男");
add.setAge(20);
add.setPhone("135********");
add.setAddress("咸宁");
add.setScore(90);
add.setSchool("咸高");
add.setClass("0801");
add.setSubject("计算机");
add.print();
add.PrintAdd();
}
}

public class Student {

String name;

String sex;

int age;

String phoneNum;

String address;

public Homework() {
name = "";

sex = "";

age = 0;

phoneNum = "";

address = "";
}

public void setName(String name) {
https://www.360docs.net/doc/e211241724.html, = name;
}

public void setSex(String sex) {
this.sex = sex;
}

public void setAge(int age) {
this.age = age;
}

public void setPhone(String phoneNum) {
this.phoneNum = phoneNum;
}

public void setAddress(String address) {
this.address = address;
}

public void print() {
System.out.print("name--" + name + "\nsex--" + sex

+ "\nage--" + age
+ "\nphoneNum--" + phoneNum + "\naddress--" + address);
}
}


public class Add extends Student {
int score = 0;

String school;

String Class;

String subject;

public Add() {
score = 0;

school = "";

Class = "";

subject = "";
}

public void setScore(int num) {
score = num;
}

public void setSchool(String school) {
this.school = school;
}

public void setClass(String Class) {
this.Class = Class;
}

public void setSubject(String subject) {
this.subject = subject;
}

public void PrintAdd() {
System.out.print("\nscore--" + score + "\nschool--" + school
+ "\nClass--" + Class + "\nsubject--" + subject);
}
}
=========================================================
package src;

public class Test {

public static void main(String[] args){
Add add=new Add();
add.setName("毛波");
add.setSex("男");
add.setAge(20);
add.setPhone("135********");
add.setAddress("咸宁");
add.setScore(90);
add.setSchool("咸高");
add.setClass("0801");
add.setSubject("计算机");
add.print();
}
}

public interface Homework {

public void setName(String name);

public void setSex(String sex);

public void setAge(int age);

public void setPhone(String phoneNum);

public void setAddress(String address);

public void print();

}



public class Add implements Homework {
String name;

String sex;

int age;

String phoneNum;

String address;

int score;

String school;

String Class;

String subject;

public Add() {
name = "";

sex = "";

age = 0;

phoneNum = "";

address = "";
score = 0;

school = "";

Class = "";

subject = "";
}

public void setName(String name) {
https://www.360docs.net/doc/e211241724.html, = name;
}

public void setSex(String sex) {
this.sex = sex;
}

public void setAge(int age) {
this.age = age;
}

public void setPhone(String phoneNum) {
this.phoneNum = phoneNum;
}

public void setAddress(String address) {
this.address = address;
}

public void setScore(int num) {
score = num;
}

public void setSchool(String school) {
this.school = school;
}

public void setClass(String Class) {
this.Class = Class;
}

public void setSubject(String subject) {
this.subject = subject;
}

public void print() {
System.out.print("name--" + name + "\nsex--" + sex + "\nage--" + age
+ "\nphoneNum--" + phoneNum + "\naddress--" + address
+ "\nscore--" + score + "\nschool--" + school + "\nClass--"
+ Class + "\nsubject--" + subject);
}
}
=============================================================
package ss;

public class Test {

public static void main(String[] args){
Add add=new Add();
add.setName("毛波");
add.setSex("男");
add.setAge(20);
add.setPhone("135********");
add.setAddress("咸宁");
add.setScore(90);
add.setSchool("咸高");
add.setCla

ss("0801");
add.setSubject("计算机");
add.print();
add.PrintAdd();
}
}

public interface Student_C {

public void setName(String name);

public void setSex(String sex);

public void setAge(int age);

public void setPhone(String phoneNum);

public void setAddress(String address);

public void print();
}

public abstract class Student_B implements Student_C{
String name;

String sex;

int age;

String phoneNum;

String address;

public Student_B() {
name = "";

sex = "";

age = 0;

phoneNum = "";

address = "";
}

public abstrct void setName(String name) ;

public abstrct void setSex(String sex);

public abstrct void setAge(int age) ;

public abstrct void setPhone(String phoneNum) ;

public abstrct void setAddress(String address) ;

public abstrct void print() ;
}



public class Add extends Student_B{
int score;

String school;

String Class;

String subject;

public Add() {
score = 0;

school = "";

Class = "";

subject = "";
}

public void setScore(int num) {
score = num;
}

public void setSchool(String school) {
this.school = school;
}

public void setClass(String Class) {
this.Class = Class;
}

public void setSubject(String subject) {
this.subject = subject;
}

public void setName(String name) {
https://www.360docs.net/doc/e211241724.html, = name;
}

public void setSex(String sex) {
this.sex = sex;
}

public void setAge(int age) {
this.age = age;
}

public void setPhone(String phoneNum) {
this.phoneNum = phoneNum;
}

public void setAddress(String address) {
this.address = address;
}

public void print() {
System.out.print("name--" + name + "\nsex--" + sex + "\nage--" + age
+ "\nphoneNum--" + phoneNum + "\naddress--" + address);
}
public void PrintAdd() {
System.out.print("\nscore--" + score + "\nschool--" + school
+ "\nClass--" + Class + "\nsubject--" + subject);
}
}





相关文档
最新文档