14
import java.io.*;
public class Test //主类定义已给出 {
public static void main(String args[]) {
Cylinder c=new Cylinder(2, 5); }
class Circle //类Circle定义,请填写完整 {
final float PI=3.14159f; //添加属性radius double radius;
//添加构造函数Circle (double r) public Circle (double r) { radius=r; }
//添加getRadius()方法 public double getRadius() {
return radius; }
//添加findArea()方法 public double findArea() {
return PI*getRadius()*getRadius(); } }
class Cylinder extends Circle //类Cylinder定义,请填写完整 {
//添加构造函数Cylinder(double r, double l) public Cylinder(double r, double h ) {
super(r); heigth=h;
//添加属性length double heigth;
}
System.out.println(c.toString());
}
//添加findVolume()方法 public double findvolume() { }
//添加toString()方法,返回圆柱体的半径、高、体积等信息 double volume;
volume=this.findArea()*heigth; return volume;
public String toString() {
String slt=\
slt=\String.valueOf(this.radius)+\String.valueOf(this.heigth)+\String.valueOf(this.findvolume());
return slt; } }
15、阅读下面的程序: class Super{ public int i=0; public Super(){ i=1; } }
public class Sub extends Super{ public Sub(){ i=2; }
public static void main(String args[]){ Sub s=new Sub();
System.out.println(s.i); } }
上面的程序经编译后,运行结果是什么?
16、阅读下面的程序: class ValHold {
public int i = 10; }
public class ObParm {
public static void main(String argv[]) {
ObParm o = new ObParm(); o.amethod(); }
public void amethod() {
int i = 99;
ValHold v = new ValHold(); v.i = 30; another(v,i);
System.out.print(v.i); }
public void another(ValHold v, int i) { i = 0; v.i = 20;
ValHold vh = new ValHold(); v = vh;
System.out.print(v.i); System.out.print(i); } }
上面程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 17、阅读下面的程序,写出带划线语句的注释,并写出运行结果。 import java.awt.*; import javax.swing.*;
public class Test {// 继承JFrame private int screenOffset = 80; public Test() {
super( \ ; // 设置JFrame的大小为300*300 show(); // }
public void paint( Graphics g ) {
for ( int i = 1; i <= 8; i++ ) {
int origin = screenOffset + 80 - i * 10; g.drawOval(origin, origin, i * 20, i * 20); } }
public static void main( String args[] ) {
Test application = new Test();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } }
18、请写出下面程序的运行结果。 public class Test extends TT{ public void main(String args[]){ Test t = new Test(\}
public Test(String s){ super(s);
System.out.println(\}
public Test(){ this(\} }
class TT{ public TT(){
System.out.println(\}
public TT(String s){ this();
System.out.println(\} }
结果: 19、给定下面的未完成的代码片断: public class Example{ int x,y;
public Example(int a){ ??.. x = a; }
public Example(int a, int b){
//和上面一个参数的构造方法做同样的操作,包括赋值 x=a y = b; } }
如果要用最简捷的一行代码实现\和上面一个参数的?\注释所指出的功能,请写出你认为最合适的一行代码:
20.构造方法在类中的作用是什么?
21.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样? 22.什么是方法的重载?
23. 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。 24.派生类构造方法可以通过关键字_______调用基类构造方法。
25.编写一个完整的Java Application 程序。包含类Circle,类Cylinder, 类Test,具体要求如下: ?类Circle ① 属性
radius: double型,表示圆的半径。 ② 方法
Cirle( double r):构造函数,将半径初始化为r。 double findArea():返回圆的面积。
double getRadius ():返回圆的半径。
?类Cylinder
继承Circle类,并有以下属性和方法:
① 属性
length: double型,表示圆柱体的高。 ② 方法
Cylinder(double r, double l ):构造函数,给圆柱体的半径和高赋初值。 double findVolume():返回圆柱体的体积。 toString():返回圆柱体的半径、高、体积等信息。 ?主类Test
① 生成Cylinder对象。
② 调用对象的toString方法,输出对象的描述信息。 (注:程序框架和部分源码已给出,请补充完整)
第五章 抽象类与接口
1、以下接口定义正确的是( )。 A.interface ATest
{ void t() { } ;}
B.public interface ATest
{ void t();}
C.abstract interface ATest
{ void t() ;}
D.abstract interface ATest extends ATest 1, ATest 2
// ATest1,ATest 2为已定义的接口
{ abstract void t(){ };}
2.以下哪个接口的定义是正确的?( ) A、interface B
{ void print() { } ;} B、abstract interface B { void print() ;}
C、abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} D、interface B