Java面向对象程序设计综合练习2(填空题)(下)

简介: Java面向对象程序设计综合练习2(填空题)(下)

R4-18

请说出A类中System.out.println的输出结果。


 class B{
    int x=100,y=200;
    public void setX(int x){ x=x; }
    public void setY(int y){ this.y=y; } 
    public int getXYSum(){ return x+y; } 
 } 
 public class A { 
    public static void main(String args[]){
        B b=newB(); 
        b.setX(-100); 
        b.setY(-200); 
        System.out.println("sum="+b.getXYSum()); 
    } 
 } 


程序输出结果为:sum=

-100

2 分


R4-19

阅读下列程序:

public class Main{ 
    public static void main(String[]args){ 
        System.out.println("创建一个Faculty对象"); 
        new Faculty(); 
    } 
} 
class Faculty extends Employee { 
    public Faculty(){ 
        System.out.println("完成Faculty的任务"); 
    } 
} 
class Employee extends Person{ 
    public Employee(){ 
        this("调用Employee的重载构造方法"); 
        System.out.println("完成Employee的任务"); 
    } 
    public Employee(String s){ 
        System.out.println(s); 
    } 
} 
class Person { 
    public Person() { 
        System.out.println("完成Person的任务"); 
    } 
}


从下面选项中进行选择,将相应序号(1、2、3、4、5中选其一)填入空格中:


(1)完成Person的任务

(2)完成Employee的任务

(3)完成Faculty的任务

(4)调用Employee的重载构造方法

(5)创建一个Faculty对象


按程序执行顺序输出结果:


答案:

第1空:5 ||

第2空:1 ||

第3空:4 ||

第4空:2 ||

第5空:3 ||


R4-20

下列代码的运行结果是什么?


public class Main{
  static{
     System.out.print("Hi here,");
  }
  public void print(){
     System.out.print("Hello");
  }
  public static void main(String args[]){
     Main m1=new Main();
     m1.print();
     Main m2=new Main();
     m2.print();
  }
}


上述代码的运行结果为:

答案:

第1空:Hi here,HelloHello ,

2 分


R4-21


给出以下代码:


public class Test {
    public int t=4;
    public static void main(String[] args) {
        new Test().NumberPlay();
    }
    public void NumberPlay() {
        int t=2;
        t = t+5;
        this.t = this.t-2;
        t = t-this.t;
        System.out.println(t+this.t+"ok");
    }
}


程序运行后输出结果为:


7ok


2 分


R4-22


给出以下代码:


class Number {
    public int i;
    public Number(int ii) {i=ii;};
}
public class Main {
    static void f(Number n) {
        n.i = 9;
    }
    static void g(Integer n) {
        n=9;
    }
    public static void main(String[] args) {
        Number k = new Number(10);
        f(k);
        Integer m = new Integer(10);
        g(m);
        System.out.println(k.i+":"+m);
    }
}



程序运行后输出结果是:


9:10


2 分


R4-23


补全程序使其能够运行,结果为打印四个图形对象的面积。

e114c4c266854ce38ca8de425a9c1a4a.png

第1空:new Shape[4] ,

第2空:ss[i].getArea() ,

第3空:abstract class Shape ,

第4空:this.radius = radius; ,

第5空:(int)(3.14 * radius * radius + 0.5); ,


R4-24


以下程序输出四个图形面积,请在空格处填上合适的内容。


593b4088b8fd4130938bb1f21b868bdf.png

答案:


第1空:static ,

第2空:Shape ,

第3空:new ,

第4空:length ,

第5空:ss[i] ,

第6空:abstract ,

第7空:abstract ,

第8空:extends ,

第9空:Rect ,

第10空:return ,

第11空:extends ,

第12空:int ,

第13空:this.radius ,

第14空:return ,

第15空:(int) ,



R4-25

设计一个Flyable接口,一个实现Flyable接口的Duck类和Duck的子类RedheadDuck。


R4-26

已知代码:


class A{``
  String name="A";
  String getName(){
     return name;
  }
  String greeting(){
     return "class A"; 
  }
}
class B extends A{
  String name="B";
  String greeting(){
     return "class B";
  }
}
public class Main{
  public static void main(String args[]){
     A a=new A();
     A b=new B();
     System.out.println(a.greeting()+" has name "+a.getName());
     System.out.println(b.greeting()+" has name "+b.getName());
  }
}


在下列运行结果的空格中选择填写A或B:


class

A

2 分

has name A

2 分

class

B

2 分

has name A

2 分


R4-27


一个类如果实现一个接口,那么它就需要实现接口中定义的全部( ),否则该类就必须定义成( )。


答案:

第1空:方法 ||


第2空:抽象类 ||


R4-28

接口中的方法的默认的访问权限是


答案:


第1空:public ||


R4-29

在Java中,能实现多重继承效果的方式是

接口


2 分


R4-30

阅读下列程序:

class Shape {
     private String strColor;
     public Shape() {
           System.out.println("我是图形");
       }
 public Shape(String strColor) {
        System.out.println("我是"+strColor+"的图形");
 }
 public void printType() {
       System.out.println("我是"+strColor+"的图形");
 }
 public void printName(){
       System.out.println("我不知道我叫什么");
 }
}
class Circle extends Shape{
     private String strColor,strName;
      public Circle() {
            System.out.println("我是圆");
      }
 public Circle(String strColor,String strName) {
      super(strColor);
      this.strName = strName;
       System.out.println("我是"+strColor+"的圆");
 }
 @Override
 public void printName(){
       System.out.println("我叫"+strName);
 }
}
public class Test {
     public static void main(String[] args)  {
         String strColor = "红色";
         String strName = "圆圆";
         Shape shape1 = new Shape();
         shape1.printName();
         shape1 = new Circle(strColor,strName);
         shape1.printName();
     }
}


按执行顺序在空格处填上如下选项的序号:


(1)我是图形
(2)我是红色的图形
(3)我是圆
(4)我是红色的圆
(5)我不知道我叫什么
(6)我叫圆圆


在下面空格处按顺序填上1、2、3、4、5、6中的其中一个数字。


答案:


第1空:1 ||

第2空:5 ||

第3空:2 ||

第4空:4 ||

第5空:6 ||


R4-31


25-4: The outour of the code below:


class A {
    public int data=5;
    public void print() { 
        System.out.println(data);
    }
}
class B extends A {
    public int data=2;
    public void print() {
        System.out.println(data);
    }
}
public class Main {
    public static int data=3;
    public static void main(String[] args) {
        A a = new A();
        a.print();
        System.out.println(a.data);
        A b = new B();
        b.print();
        System.out.println(b.data);
        System.out.println(Main.data);
    }
}


answer:

Empty 1: 5||

Empty 2: 5||

Empty 3: 2||

Empty 4: 5||

Empty 5: 3||


R4-32


用final关键字修饰的类不能被继承。


R4-33

如果一个方法只有方法的声明,而没有方法的实现,则成为  抽象方法|abstract 方法。


R4-34

阅读以下程序:


public class Test extends TT{ 
    public static void main(String args[]){ 
        Test t=new Test("Tom"); 
    } 
    public Test(String s){ 
        super(s); 
        System.out.println("How do you do?"); 
    } 
    public Test(){ 
        this("I am Tom"); 
    } 
} 
class TT { 
    public TT(){ 
        System.out.println("What a pleasure!"); 
    } 
    public TT(String s){ 
        this(); 
        System.out.println("I am "+s); 
    } 
} 


程序运行结果为:


答案:

第1空:What a pleasure! ||

第2空:I am Tom ||

第3空:How do you do? ||


R4-35


下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child("mike")的时候都有哪些构造方法被顺序调用?输出结果是


123


2 分


class People {
String name;
public People() {
System.out.print(1);
}
public People(String name) {
System.out.print(2);
this.name = name;
}
}
class Child extends People {
People father;
public Child(String name) {
System.out.print(3);
this.name = name;
father = new People(name + ":F");
}
public Child(){
System.out.print(4);
}
}

R4-36


阅读下列程序,根据运行输出的结果,在空格处填上适当的内容。

075090c50ccc4cbd812593f894911144.png


R4-37


Java中成员方法可分成两种:类方法和


成员方法


2 分


R4-38

运行以下程序:

public class Test {
  public static void main(String[] args) {
     new Circle9();
  }
}
abstract class GeometricObject {
  protected GeometricObject() {
    System.out.print("A");
  }
  protected GeometricObject(String color, boolean filled) {
    System.out.print("B");
  }
}
class Circle9 extends GeometricObject {
  /** No-arg constructor */
  public Circle9() {
    this(1.0);
    System.out.print("C");
  }
  /** Construct circle with a specified radius */
  public Circle9(double radius) {
    this(radius, "white");
    System.out.print("D");
  }
  /** Construct circle with a specified radius and color */
  public Circle9(double radius,String color) {
    this(radius, "white", false);
    System.out.print("E");
  }
  /** Construct a circle with specified radius, filled, and color */
  public Circle9(double radius, String color, boolean filled) {
    super(color, filled);
    System.out.print("F");
  }
}


从以下选项中进行选择,按程序运行顺序填入空格中(填入序号1、2、3、4、5或6中之一):

(1)A (2)B (3) C (4)D (5)E (6)F


答案:

第1空:2 ||


第2空:6 ||


第3空:5 ||


第4空:4 ||


第5空:3 ||


R4-39

7a10705a773641b7babbd76480b8437a.png


答案:

第1空:interface ||


第2空:cry() ||


第3空: getName() ||


第4空:implements ||


第5空:String ||


第6空:this.name ||


第7空:public ||


第8空:return ||


第9空:SimulateTest ||


第10空:static ||


第11空:main ||


第12空:dog ||


第13空:Bob ||


第14空:getName() ||


第15空:dog ||


R4-40


阅读下列程序:


class A{ 
    int i=7; 
    public A(){ 
        setI(20); 
        System.out.println("i="+i); 
    } 
    public void setI(int i){
        this.i=2*i;
    } 
}
class B extends A{ 
    public B(){ 
        System.out.println("i="+i); 
    } 
    public void setI(int i){
        this.i=3*i;
    } 
} 
public class Main{ 
    public static void main(String[] args){ 
        new A(); 
        new B(); 
    } 
} 


程序运行后依次输出:


答案:

第1空:i=40 ||


第2空:i=60 ||


第3空:i=60 ||

86190d15581d41eb9aceac6961355604.png




目录
相关文章
|
2月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
137 1
|
2月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
105 0
|
3月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
4月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
|
6月前
|
人工智能 Java 编译器
Java:面向对象
本文介绍了Java编程中的核心概念,包括包的命名规范与自动导入机制、构造方法的特点与使用、`this`和`super`关键字的作用、继承的基本规则、访问权限的设置、封装的意义、多态的实现原理以及`static`关键字的用法。通过详细解析每个知识点,并结合代码示例,帮助读者深入理解Java面向对象编程的核心思想与实践技巧。内容适合初学者及进阶开发者学习参考。
162 0
|
8月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
|
11月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
129 1
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
133 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
153 2
|
2月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案