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 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
113 63
|
28天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
18 2
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
35 4
|
3月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
17 0
|
3月前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
12天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
3天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
2天前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
23 1