【代码6-1】
class Circle (1)
private (2) pxc;
public Circle()pxc=new (3) ;
public void display()
pxc. (4) ;
【代码6-2】
public class Factory
public (5) getShapeInstance(int type) //生成特定类实例
switch(type)
case 0: return new Point ( );
case 1: return new Rectangle ( ) ;
case 2: return new Line ( ) ;
case 3: return new Circle ( ) ;
default: return null;
public class App
public static void main (String argv[] )
if (argv. length != l)
System. out.println ("error parameters !");
return;
inttype= (new Integer (argv[0])) .intValue (
Factory factory = new Factory ( ) ;
Shape s;
s=factory, (6)
if (s==null)
System.out.println ( "Error get instance !" )
return;
s.display () ;
return;
参考答案:(1)implements Shape
(2)XCircle
(3)Xcircle()
(4)displayIt()
(5)Shape
(6)getShapeInstance(type)
解析:
[分析]:
题目中明确要求Circle具有Shape接口,所以,第1空应填上implements Shape。因为要重用XCircle类而不用从头开发一个新的Circle类,所以,凡是Circle类实现Shape的接口时都调用相应的XCircle类提供的方法。因此第2空应填上Xcircle,第3空应填上Xcircle()生成相应的XCircle的一个实例,第4空调用displaylt()来实现Shape接口中的display方法。阅读主程序,第6空调用factory对象的方法,而类Factory类只有一个方法为getShapeInstance,所以第6空为应填入getShapeinstance(type),参数为用户运行程序时指定的参数,程序中为type参数,表明需要生成哪一种类型的对象。同样,因为s是Shape类型的引用,所以,getShapeInstance的返回值类型为Shape,因此第5空应填入Shape。