Java2实用教程(第二版)程序代码——第四章 类、对象、和接口

  1 None.gif // 例子1
  2 None.gif class  XiyoujiRenwu   
  3 ExpandedBlockStart.gifContractedBlock.gif dot.gif {   float height,weight;
  4InBlock.gif    String head, ear,hand,foot, mouth;
  5InBlock.gif    void speak(String s) 
  6ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{  System.out.println(s);
  7ExpandedSubBlockEnd.gif    }

  8ExpandedBlockEnd.gif}

  9 None.gif class  A
 10 ExpandedBlockStart.gifContractedBlock.gif dot.gif {   public static void main(String args[])
 11ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ XiyoujiRenwu  zhubajie;       //声明对象。
 12InBlock.gif     zhubajie=new  XiyoujiRenwu(); //为对象分配内存,使用new 运算符和默认的构造方法。
 13ExpandedSubBlockEnd.gif   }

 14ExpandedBlockEnd.gif}

 15 None.gif
 16 None.gif // 例子2
 17 None.gif class  Point 
 18 ExpandedBlockStart.gifContractedBlock.gif dot.gif int x,y;
 19InBlock.gif  Point(int a,int b)
 20ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{ x=a;
 21InBlock.gif   y=b;
 22ExpandedSubBlockEnd.gif  }

 23ExpandedBlockEnd.gif}

 24 None.gif public   class  A 
 25 ExpandedBlockStart.gifContractedBlock.gif dot.gif public static void main(String args[])
 26ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{ Point p1,p2;                 //声明对象p1和p2。
 27InBlock.gif    p1=new Point(10,10);   //为对象分配内存,使用 new 和类中的构造方法。
 28InBlock.gif    p2=new Point(23,35);   //为对象分配内存,使用 new 和类中的构造方法。
 29ExpandedSubBlockEnd.gif  }

 30ExpandedBlockEnd.gif}

 31 None.gif
 32 None.gif // 例子3
 33 None.gif class  XiyoujiRenwu
 34 ExpandedBlockStart.gifContractedBlock.gif dot.gif float height,weight;
 35InBlock.gif       String head, ear,hand,foot, mouth;
 36InBlock.gif       void speak(String s)
 37ExpandedSubBlockStart.gifContractedSubBlock.gif       dot.gif{ head="歪着头";
 38InBlock.gif         System.out.println(s);
 39ExpandedSubBlockEnd.gif       }

 40ExpandedBlockEnd.gif    }

 41 None.gif    class  Example4_3
 42 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[]) 
 43ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ XiyoujiRenwu  zhubajie,sunwukong;//声明对象。
 44InBlock.gif         zhubajie=new  XiyoujiRenwu();  //为对象分配内存,使用new 运算符和默认的构造方法。
 45InBlock.gif         sunwukong=new  XiyoujiRenwu();
 46InBlock.gif         zhubajie.height=1.80f;     //对象给自己的变量赋值。
 47InBlock.gif         zhubajie.weight=160f;      zhubajie.hand="两只黑手";
 48InBlock.gif         zhubajie.foot="两只大脚";  zhubajie.head="大头"
 49InBlock.gif         zhubajie.ear="一双大耳朵"; zhubajie.mouth="一只大嘴"
 50InBlock.gif         sunwukong.height=1.62f;    //对象给自己的变量赋值。
 51InBlock.gif         sunwukong.weight=1000f;    sunwukong.hand="白嫩小手";
 52InBlock.gif         sunwukong.foot="两只绣脚"; sunwukong.head="绣发飘飘"
 53InBlock.gif         sunwukong.ear="一对小耳";  sunwukong.mouth="樱头小嘴";
 54InBlock.gif         System.out.println("zhubajie的身高:"+zhubajie.height);
 55InBlock.gif         System.out.println("zhubajie的头:"+zhubajie.head);
 56InBlock.gif         System.out.println("sunwukong的重量:"+sunwukong.weight);
 57InBlock.gif         System.out.println("sunwukong的头:"+sunwukong.head);
 58InBlock.gif         zhubajie.speak("俺老猪我想娶媳妇");      //对象调用方法。
 59InBlock.gif         System.out.println("zhubajie现在的头:"+zhubajie.head);
 60InBlock.gif        sunwukong.speak("老孙我重1000斤,我想骗八戒背我"); //对象调用方法。
 61InBlock.gif        System.out.println("sunwukong现在的头:"+sunwukong.head);
 62ExpandedSubBlockEnd.gif       }

 63ExpandedBlockEnd.gif    }

 64 None.gif
 65 None.gif // 例子4
 66 None.gif import java.applet. * ;
 67 None.gifimport java.awt. * ;
 68 None.gif class  Student 
 69 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  float math,english,sum;
 70InBlock.gif   float f(float k1,float k2)
 71ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ sum=k1*math+k2*english;
 72InBlock.gif     return sum;
 73ExpandedSubBlockEnd.gif   }
 
 74ExpandedBlockEnd.gif}

 75 None.gif public   class  Example4_4 extends Applet 
 76 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  Student wanghong,lihong;
 77InBlock.gif   public void init() 
 78ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ wanghong=new Student();  lihong  =new Student();
 79InBlock.gif     wanghong.math=60.0f;     wanghong.english=80f;
 80InBlock.gif     lihong.math=70.0f;       lihong.english=90.0f;
 81InBlock.gif     wanghong.sum=wanghong.f(2.0f,2.0f);
 82InBlock.gif     lihong.sum=lihong.f(2.0f,2.0f); 
 83ExpandedSubBlockEnd.gif   }

 84InBlock.gif   public void paint(Graphics g)
 85ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ g.drawString("lihong sum= "+lihong.sum,12,45);
 86InBlock.gif     g.drawString("wanghong sum="+wanghong.sum,12,60);
 87ExpandedSubBlockEnd.gif   }

 88ExpandedBlockEnd.gif}
  
 89 None.gif
 90 None.gif // 例子5
 91 None.gif class  梯形 
 92 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  float 上底,下底,高;
 93InBlock.gif    梯形()
 94ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{ 上底=60;
 95InBlock.gif     下底=40;
 96InBlock.gif      高=20;
 97ExpandedSubBlockEnd.gif    }

 98InBlock.gif    梯形(float x,float y,float h) 
 99ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{ 上底=x;
100InBlock.gif     下底=y;
101InBlock.gif       高=h;
102ExpandedSubBlockEnd.gif    }

103InBlock.gif    float 计算面积() 
104ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.giffloat 面积;
105InBlock.gif      面积=(上底+下底)*/2.0f;
106InBlock.gif      return 面积;
107ExpandedSubBlockEnd.gif    }

108InBlock.gif    void 修改高(float height) 
109ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{  高=height;
110ExpandedSubBlockEnd.gif    }

111InBlock.gif    float 获取高() 
112ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gifreturn 高;
113ExpandedSubBlockEnd.gif    }

114ExpandedBlockEnd.gif}

115 None.gif class  Example4_5  
116 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    public static void main(String args[]) 
117ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{ 梯形 laderOne=new 梯形(),laderTwo=new 梯形(2.0f,3.0f,10);
118InBlock.gif      System.out.println("laderOne的高是:"+laderOne.获取高());
119InBlock.gif      System.out.println("laderTwo的高是:"+laderTwo.获取高());
120InBlock.gif      System.out.println("laderOne的面积是:"+laderOne.计算面积());
121InBlock.gif      System.out.println("laderTwo的面积是:"+laderTwo.计算面积());
122InBlock.gif      laderOne.修改高(10);
123InBlock.gif      float h=laderOne.获取高();
124InBlock.gif      laderTwo.修改高(h*2);
125InBlock.gif      System.out.println("laderOne现在的高是:"+laderOne.获取高());
126InBlock.gif      System.out.println("laderTwo现在的高是:"+laderTwo.获取高());
127InBlock.gif      System.out.println("laderOne现在的面积是:"+laderOne.计算面积());
128InBlock.gif      System.out.println("laderTwo现在的面积是:"+laderTwo.计算面积());
129ExpandedSubBlockEnd.gif    }
 
130ExpandedBlockEnd.gif}
 
131 None.gif
132 None.gif // 例子6
133 None.gif class  圆 
134 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  double 半径;
135InBlock.gif   圆(double r)
136ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ 半径=r;
137ExpandedSubBlockEnd.gif   }

138InBlock.gif  double 计算面积() 
139ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  return 3.14*半径*半径;
140ExpandedSubBlockEnd.gif  }

141InBlock.gif  void 修改半径(double 新半径)
142ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  半径=新半径;
143ExpandedSubBlockEnd.gif  }

144InBlock.gif  double 获取半径() 
145ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gifreturn 半径;
146ExpandedSubBlockEnd.gif  }

147ExpandedBlockEnd.gif}

148 None.gif class  圆锥 
149 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  圆 底圆;
150InBlock.gif  double 高;
151InBlock.gif  圆锥(圆 circle,double h) 
152ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  this.底圆=circle;
153InBlock.gif    this.高=h;
154ExpandedSubBlockEnd.gif  }

155InBlock.gif  double 计算体积() 
156ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  double volume;
157InBlock.gif    volume=底圆.计算面积()*/3.0;
158InBlock.gif    return  volume;
159ExpandedSubBlockEnd.gif  }

160InBlock.gif  void 修改底圆半径(double r) 
161ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  底圆.修改半径(r);
162ExpandedSubBlockEnd.gif  }

163InBlock.gif  double 获取底圆半径() 
164ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  return 底圆.获取半径();
165ExpandedSubBlockEnd.gif  }

166ExpandedBlockEnd.gif}

167 None.gif class  Example4_6 
168 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[])
169ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ 圆 circle=new 圆(10);
170InBlock.gif     圆锥 circular=new 圆锥(circle,20);
171InBlock.gif     System.out.println("圆锥底圆半径:"+circular.获取底圆半径()); 
172InBlock.gif     System.out.println("圆锥的体积:"+circular.计算体积());
173InBlock.gif     circular.修改底圆半径(100);
174InBlock.gif     System.out.println("圆锥底圆半径:"+circular.获取底圆半径());
175InBlock.gif     System.out.println("圆锥的体积:"+circular.计算体积());  
176ExpandedSubBlockEnd.gif   }

177ExpandedBlockEnd.gif}

178 None.gif
179 None.gif // 例子7
180 None.gif class  梯形 
181 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    float 上底,高;
182InBlock.gif    static float 下底;
183InBlock.gif    梯形(float x,float y,float h) 
184ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{ 上底=x; 下底=y; 高=h;
185ExpandedSubBlockEnd.gif    }

186InBlock.gif    float 获取下底()
187ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{   return 下底;
188ExpandedSubBlockEnd.gif    }

189InBlock.gif    void 修改下底(float b)
190ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{  下底=b; 
191ExpandedSubBlockEnd.gif    }

192ExpandedBlockEnd.gif}

193 None.gif class  Example4_7 
194 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    public static void main(String args[]) 
195ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{ 梯形 laderOne=new 梯形(3.0f,10.0f,20),laderTwo=new 梯形(2.0f,3.0f,10);
196InBlock.gif       System.out.println("laderOne的下底:"+laderOne.获取下底());
197InBlock.gif       System.out.println("laderTwo的下底:"+laderTwo.获取下底());
198InBlock.gif       laderTwo.修改下底(60);
199InBlock.gif       System.out.println("laderOne的下底:"+laderOne.获取下底());
200InBlock.gif       System.out.println("laderTwo的下底:"+laderTwo.获取下底());
201ExpandedSubBlockEnd.gif    }
 
202ExpandedBlockEnd.gif}
 
203 None.gif
204 None.gif // 例子8
205 None.gif import java.applet. * ;
206 None.gifimport java.awt. * ;
207 None.gif class  Family 
208 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  static String familyname;
209InBlock.gif       String name; 
210InBlock.gif  int age;     
211ExpandedBlockEnd.gif}

212 None.gif public   class  Example4_8 extends Applet 
213 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  Family father,son1,son2;
214InBlock.gif   public void init() 
215ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ father=new Family();
216InBlock.gif     son1=new Family();son2=new Family();
217InBlock.gif     Family.familyname=""; father.name="鬼子";
218InBlock.gif     son1.name="汉奸"; son2.name="恶霸";
219ExpandedSubBlockEnd.gif   }

220InBlock.gif   public void paint(Graphics g) 
221ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  g.drawString("father: "+father.familyname+father.name,5,10);
222InBlock.gif      g.drawString("son1: "+son1.familyname+son1.name,5,20);
223InBlock.gif      g.drawString("son2: "+son2.familyname+son2.name,5,30);
224InBlock.gif      Family.familyname="";
225InBlock.gif      g.drawString("father:"+father.familyname+father.name,5,40);
226InBlock.gif      g.drawString("son1: "+son1.familyname+son1.name,5,50);
227InBlock.gif      g.drawString("son2: "+son2.familyname+son2.name,5,65);
228ExpandedSubBlockEnd.gif   }

229ExpandedBlockEnd.gif}

230 None.gif
231 None.gif // 例子9
232 None.gif class  Fibi 
233 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public long  fibinacii(int n)
234ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{        long c=0;
235InBlock.gif           if(n==1||n==2)
236InBlock.gif                c=1;
237InBlock.gif           else
238InBlock.gif                c=fibinacii(n-1)+fibinacii(n-2); 
239InBlock.gif           return c;
240ExpandedSubBlockEnd.gif    }

241ExpandedBlockEnd.gif}

242 None.gif public   class  Example4_9 
243 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[])
244ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ Fibi a=new Fibi(); 
245InBlock.gif     for(int i=1;i<=10;i++
246ExpandedSubBlockStart.gifContractedSubBlock.gif       dot.gif{ System.out.print(" "+a.fibinacii(i));
247ExpandedSubBlockEnd.gif       }

248ExpandedSubBlockEnd.gif   }

249ExpandedBlockEnd.gif}

250 None.gif
251 None.gif // 例子10
252 None.gif class  三角形 
253 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  double a,b,c;
254InBlock.gif   三角形(double a,double b,double c) 
255ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ setABC(this,a,b,c);
256ExpandedSubBlockEnd.gif   }

257InBlock.gif  void setABC(三角形 trangle,double a,double b,double c) 
258ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ trangle.a=a;
259InBlock.gif     trangle.b=b;
260InBlock.gif     trangle.c=c;
261ExpandedSubBlockEnd.gif   }

262ExpandedBlockEnd.gif}

263 None.gif class  Example4_10 
264 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[])
265ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{三角形 tra=new 三角形(3,4,5);
266InBlock.gif     System.out.print("三角形型的三边是:"+tra.a+","+tra.b+","+tra.c+","); 
267ExpandedSubBlockEnd.gif     }

268ExpandedBlockEnd.gif}

269 None.gif
270 None.gif // 例子11
271 None.gif package tom.jiafei;
272 None.gif public   class   PrimNumber 
273 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    public static void main(String args[])
274ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{  int sum=0,i,j;
275InBlock.gif        for( i=1;i<=10;i++)  //找出10以内的素数。
276ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{  for(j=2;j<=i/2;j++)
277ExpandedSubBlockStart.gifContractedSubBlock.gif             dot.gif{   if(i%j==0)
278InBlock.gif                   break;
279ExpandedSubBlockEnd.gif             }

280InBlock.gif           if(j>i/2) System.out.print(" 素数:"+i);
281ExpandedSubBlockEnd.gif         }

282ExpandedSubBlockEnd.gif    }

283ExpandedBlockEnd.gif}

284 None.gif
285 None.gif // 例子12
286 None.gif import java.applet.Applet;import java.awt. * ;
287 None.gif public   class  Example4_12 extends Applet 
288 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  Button redbutton;
289InBlock.gif    public void init()
290ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{   redbutton=new Button("我是一个红色的按钮"); 
291InBlock.gif         redbutton.setBackground(Color.red);
292InBlock.gif         add(redbutton);
293ExpandedSubBlockEnd.gif     }

294InBlock.gif    public void  paint(Graphics g) 
295ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{  g.drawString("it is a button",30,50);
296ExpandedSubBlockEnd.gif     }

297ExpandedBlockEnd.gif}

298 None.gif
299 None.gif // 例子13
300 None.gif import tom.jiafei. * // 引入包tom.jiafei中的类。
301 None.gif public   class  Example4_13
302 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    public static void main(String args[]) 
303ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{  PrimNumber num=new PrimNumber();//用包tom.jiafei中的类创建对象。
304ExpandedSubBlockStart.gifContractedSubBlock.gif        String a[]=dot.gif{"ok"};
305InBlock.gif        System.out.println(a[0]);
306InBlock.gif        num.main(a);
307ExpandedSubBlockEnd.gif     }

308ExpandedBlockEnd.gif}

309 None.gif
310 None.gif // 例子14
311 None.gif public   class  Example4_14 
312 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[]) 
313ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ PrimNumber num=new PrimNumber();//要保证PrimNuber类和Example4_14类在同一目录中
314ExpandedSubBlockStart.gifContractedSubBlock.gif     String a[]=dot.gif{"ok"};
315InBlock.gif     System.out.println(a[0]);
316InBlock.gif     num.main(a);
317ExpandedSubBlockEnd.gif  }

318ExpandedBlockEnd.gif     }

319 None.gif
320 None.gif // 例子15
321 None.gif Trangel.java:
322 None.gifpackage tom.jiafei;
323 None.gif public   class  Trangle  
324 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  double sideA,sideB,sideC;
325InBlock.gif   boolean boo;
326InBlock.gif   public  Trangle(double a,double b,double c) 
327ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ sideA=a;sideB=b;sideC=c;
328InBlock.gif    if(a+b>c&&a+c>b&&c+b>a)
329ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{  System.out.println("我是一个三角形");
330InBlock.gif       boo=true;
331ExpandedSubBlockEnd.gif     }
    
332InBlock.gif    else
333ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{ System.out.println("我不是一个三角形");
334InBlock.gif       boo=false;
335ExpandedSubBlockEnd.gif     }

336ExpandedSubBlockEnd.gif   }

337InBlock.gif public void  计算面积() 
338ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{    if(boo)
339ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gifdouble p=(sideA+sideB+sideC)/2.0;
340InBlock.gif          double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;
341InBlock.gif          System.out.println("面积是:"+area);
342ExpandedSubBlockEnd.gif        }

343InBlock.gif      else
344ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{ System.out.println("不是一个三角形,不能计算面积");
345ExpandedSubBlockEnd.gif        }

346ExpandedSubBlockEnd.gif   }
 
347InBlock.gif public void 修改三边(double a,double b,double c)
348ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ sideA=a;sideB=b;sideC=c;
349InBlock.gif     if(a+b>c&&a+c>b&&c+b>a)
350ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{ boo=true;
351ExpandedSubBlockEnd.gif     }
    
352InBlock.gif    else
353ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif{ boo=false;
354ExpandedSubBlockEnd.gif     }

355ExpandedSubBlockEnd.gif   }

356ExpandedBlockEnd.gif}

357 None.gif
358 None.gifExample4_15.java:
359 None.gifimport tom.jiafei. * ;
360 None.gif class  Example4_15 
361 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  public static void main(String args[])
362ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{  Trangle trangle=new Trangle(12,3,1);
363InBlock.gif            trangle.计算面积();
364InBlock.gif            trangle.修改三边(3,4,5);
365InBlock.gif            trangle.计算面积();
366ExpandedSubBlockEnd.gif  }

367ExpandedBlockEnd.gif}

368 None.gif
369 None.gif // 例子16
370 None.gif class  Example4_16 
371 ExpandedBlockStart.gifContractedBlock.gif dot.gif {    private int money;
372InBlock.gif    Example4_16() 
373ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{  money=2000;
374ExpandedSubBlockEnd.gif    }
  
375InBlock.gif    private int getMoney() 
376ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{  return money;
377ExpandedSubBlockEnd.gif    }
 
378InBlock.gif    public static void main(String args[]) 
379ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{ Example4_16 exa=new Example4_16();
380InBlock.gif      exa.money=3000;int m=exa.getMoney();
381InBlock.gif      System.out.println("money="+m);
382ExpandedSubBlockEnd.gif    }

383ExpandedBlockEnd.gif}

384 None.gif
385 None.gif // 例子17
386 None.gif import java.applet. * ;
387 None.gifimport java.awt. * ;
388 None.gif class  Father 
389 ExpandedBlockStart.gifContractedBlock.gif dot.gif {  private int money;
390InBlock.gif   float weight,height;
391InBlock.gif   String head;
392InBlock.gif   String speak(String s) 
393ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gifreturn s ;
394ExpandedSubBlockEnd.gif   }

395ExpandedBlockEnd.gif}

396 None.gif class  Son extends Father 
397 ExpandedBlockStart.gifContractedBlock.gif dot.gif {   String hand ,foot;
398ExpandedBlockEnd.gif}
 
399 None.gif public   class  Example4_17 extends Applet 
400 ExpandedBlockStart.gifContractedBlock.gif dot.gif {   Son boy;
401InBlock.gif    public void init() 
402ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ boy=new Son();
403InBlock.gif    boy.weight=1.80f;  boy.height=120f;
404InBlock.gif    boy.head="一个头"; boy.hand="两只手 ";
405InBlock.gif    boy.foot="两只脚";
406ExpandedSubBlockEnd.gif   }

407InBlock.gif   public void paint(Graphics g) 
408ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  g.drawString(boy.speak("我是儿子"),5,20);
409InBlock.gif     g.drawString(boy.hand+boy.foot+boy.head+boy.weight+boy.height,5,40);
410ExpandedSubBlockEnd.gif   }

411ExpandedBlockEnd.gif}
    
412 None.gif
413 None.gif // 例子18
414 None.gif Father.java:
415 None.gifpackage tom.jiafei;
416 None.gif public   class   Father 
417 ExpandedBlockStart.gifContractedBlock.gif dot.gif {   int  height;
418InBlock.gif   protected int money;
419InBlock.gif   public   int weight;
420ExpandedSubBlockStart.gifContractedSubBlock.gif   public Father(int m) dot.gif{
421ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  money=m;
422ExpandedSubBlockEnd.gif   }

423InBlock.gif   protected int getMoney() 
424ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return money;
425ExpandedSubBlockEnd.gif   }

426InBlock.gif    void setMoney(int newMoney) 
427ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  money=newMoney;
428ExpandedSubBlockEnd.gif   }
 
429ExpandedSubBlockEnd.gif}

430InBlock.gifJerry.java:
431InBlock.gifpackage sun.com;
432InBlock.gifimport tom.jiafei.Father;
433InBlock.gifpublic class Jerry extends Father   //Jerry和Father在不同的包中.
434ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public Jerry() 
435ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{   super(20);
436ExpandedSubBlockEnd.gif   }

437InBlock.gif   public static void main(String args[]) 
438ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  Jerry  jerry=new Jerry();
439InBlock.gif      jerry.height=12;         //非法,因为Jerry没有继承友好的height。
440InBlock.gif      jerry.weight=200;        //合法。
441InBlock.gif      jerry.money=800;         //合法。
442InBlock.gif      int m=jerry.getMoney(); //合法。.
443InBlock.gif      jerry.setMoney(300);    //非法,因为Jerry没有继承友好的方法setMoney。
444InBlock.gif      System.out.println("m="+m); 
445ExpandedSubBlockEnd.gif   }

446ExpandedSubBlockEnd.gif}

447InBlock.gif
448InBlock.gif//例子19
449InBlock.gifimport java.applet.*;
450InBlock.gifimport java.awt.*;
451InBlock.gifclass Chengji 
452ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  float f(float x,float y) 
453ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return x*y;
454ExpandedSubBlockEnd.gif   }

455ExpandedSubBlockEnd.gif}

456InBlock.gifclass Xiangjia  extends Chengji 
457ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  float f(float x,float y) 
458ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gifreturn x+y ;
459ExpandedSubBlockEnd.gif   }

460ExpandedSubBlockEnd.gif}

461InBlock.gifpublic class Example4_19 extends Applet 
462ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  Xiangjia sum;
463InBlock.gif   public void init() 
464ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  sum=new Xiangjia();
465ExpandedSubBlockEnd.gif   }

466InBlock.gif   public void paint(Graphics g) 
467ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ g.drawString("sum="+sum.f(4,6),100,40);
468ExpandedSubBlockEnd.gif   }

469ExpandedSubBlockEnd.gif}
 
470InBlock.gif
471InBlock.gif//例子20
472InBlock.gifimport java.applet.*;
473InBlock.gifimport java.awt.*;
474InBlock.gifclass Area 
475ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  float f(float r ) 
476ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return 3.14159f*r*r;
477ExpandedSubBlockEnd.gif   }

478InBlock.gif   float g(float x,float y) 
479ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return x+y;
480ExpandedSubBlockEnd.gif   }

481ExpandedSubBlockEnd.gif}

482InBlock.gifclass Circle extends Area  
483ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{   float f(float r)
484ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return 3.14159f*2.0f*r;
485ExpandedSubBlockEnd.gif   }
  
486ExpandedSubBlockEnd.gif}

487InBlock.gifpublic class Example4_20 extends Applet 
488ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  Circle yuan;
489InBlock.gif   public void init() 
490ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  yuan=new Circle();
491ExpandedSubBlockEnd.gif   }
 
492InBlock.gif   public void paint(Graphics g) 
493ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ g.drawString("yuan= "+yuan.f(5.0f),5,20);  //调用子类重写的方法f。
494InBlock.gif    g.drawString(" "+yuan.g(2.0f,8.0f),5,40);  //调用继承父类的方法g。
495ExpandedSubBlockEnd.gif   }

496ExpandedSubBlockEnd.gif}
  
497InBlock.gif
498InBlock.gif//例子21
499InBlock.gifclass  类人猿 
500ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  private int n=100;
501InBlock.gif   void crySpeak(String s) 
502ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println(s); 
503ExpandedSubBlockEnd.gif   }
  
504ExpandedSubBlockEnd.gif}

505InBlock.gifclass People extends 类人猿 
506ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  void computer(int a,int b)
507ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  int c=a*b;
508InBlock.gif      System.out.println(c); 
509ExpandedSubBlockEnd.gif   }

510InBlock.gif void crySpeak(String s) 
511ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ System.out.println("**"+s+"**"); 
512ExpandedSubBlockEnd.gif   }
  
513ExpandedSubBlockEnd.gif}

514InBlock.gifclass Example4_21 
515ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[]) 
516ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  类人猿 monkey=new People();   //monkey是People对象的上转型对象。
517InBlock.gif      monkey.crySpeak("I love this game");
518InBlock.gif      People people=(People)monkey; //把上转型对象强制转化为子类的对象。
519InBlock.gif      people.computer(10,10);
520ExpandedSubBlockEnd.gif   }

521ExpandedSubBlockEnd.gif}

522InBlock.gif
523InBlock.gif//例子22
524InBlock.gifclass  动物 
525ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  void cry() 
526ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{
527ExpandedSubBlockEnd.gif   }
  
528ExpandedSubBlockEnd.gif}

529ExpandedSubBlockStart.gifContractedSubBlock.gifclass 狗 extends 动物 dot.gif
530ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  void cry() 
531ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println("汪汪dot.gif.."); 
532ExpandedSubBlockEnd.gif   }
  
533ExpandedSubBlockEnd.gif}

534InBlock.gifclass 猫 extends 动物 
535ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  void cry() 
536ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println("喵喵dot.gif.."); 
537ExpandedSubBlockEnd.gif   }
  
538ExpandedSubBlockEnd.gif}

539InBlock.gifclass Example4_22 
540ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[]) 
541ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  动物 dongwu;
542InBlock.gif      if(Math.random()>=0.5)     
543ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{
544InBlock.gif           dongwu=new 狗();
545InBlock.gif           dongwu.cry(); 
546ExpandedSubBlockEnd.gif         }

547InBlock.gif       else
548ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{
549InBlock.gif           dongwu=new 猫();
550InBlock.gif           ongwu.cry();
551ExpandedSubBlockEnd.gif         }

552ExpandedSubBlockEnd.gif   }

553ExpandedSubBlockEnd.gif}

554InBlock.gif
555InBlock.gif//例子23
556InBlock.gifabstract class 图形 
557ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public abstract double 求面积();
558ExpandedSubBlockEnd.gif}

559InBlock.gifclass 梯形 extends 图形 
560ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  double a,b,h;
561InBlock.gif   梯形(double a,double b,double h)
562ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.a=a;this.b=b;this.h=h;
563ExpandedSubBlockEnd.gif   }

564InBlock.gif   public double 求面积() 
565ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return((1/2.0)*(a+b)*h);
566ExpandedSubBlockEnd.gif   }

567ExpandedSubBlockEnd.gif}

568InBlock.gifclass 圆形 extends 图形 
569ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  double r;
570InBlock.gif   圆形(double r)
571ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  his.r=r;
572ExpandedSubBlockEnd.gif   }

573InBlock.gif   public double 求面积()
574ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return(3.14*r*r);
575ExpandedSubBlockEnd.gif   }

576ExpandedSubBlockEnd.gif}

577InBlock.gifclass 堆 
578ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  图形 底;
579InBlock.gif      double 高;
580InBlock.gif    堆(图形 底,double 高) 
581ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.底=底;
582InBlock.gif      this.高=高;
583ExpandedSubBlockEnd.gif   }

584InBlock.gif    void 换底(图形 底) 
585ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.底=底;
586ExpandedSubBlockEnd.gif   }

587InBlock.gif    public double 求体积() 
588ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{   return (底.求面积()*高)/3.0;
589ExpandedSubBlockEnd.gif   }

590ExpandedSubBlockEnd.gif}

591InBlock.gifpublic class Example4_23
592ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[]) 
593ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  堆 zui;
594InBlock.gif      图形 tuxing;
595InBlock.gif      tuxing=new 梯形(2.0,7.0,10.7);
596InBlock.gif      System.out.println("梯形的面积"+tuxing.求面积());
597InBlock.gif      zui=new  堆(tuxing,30);
598InBlock.gif      System.out.println("梯形底的堆的体积"+zui.求体积());
599InBlock.gif      tuxing=new 圆形(10);
600InBlock.gif      System.out.println("半径是10的圆的面积"+tuxing.求面积());
601InBlock.gif      zui.换底(tuxing);
602InBlock.gif      System.out.println("圆形底的堆的体积"+zui.求体积());
603ExpandedSubBlockEnd.gif   }

604ExpandedSubBlockEnd.gif}

605InBlock.gif
606InBlock.gif//例子24
607InBlock.gifclass Student 
608ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  int number;String name;
609InBlock.gif   Student(int number,String name) 
610ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.number=number;this.name=name;
611InBlock.gif      System.out.println("I am "+name+ "my number is "+number);
612ExpandedSubBlockEnd.gif   }

613ExpandedSubBlockEnd.gif }

614InBlock.gifclass Univer_Student extends Student 
615ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  boolean 婚否;
616InBlock.gif   Univer_Student(int number,String name,boolean b) 
617ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  super(number,name);
618InBlock.gif      婚否=b;
619InBlock.gif      System.out.println("婚否="+婚否);
620ExpandedSubBlockEnd.gif   }

621ExpandedSubBlockEnd.gif }

622InBlock.gifpublic class Example4_24 
623ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[]) 
624ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  Univer_Student zhang=new Univer_Student(9901,"和晓林",false);
625ExpandedSubBlockEnd.gif   }

626ExpandedSubBlockEnd.gif}

627InBlock.gif
628InBlock.gif//例子25
629InBlock.gifclass Sum 
630ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  int n;
631InBlock.gif   float f() 
632ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  float sum=0;
633InBlock.gif      for(int i=1;i<=n;i++)
634InBlock.gif          sum=sum+i;
635InBlock.gif     return sum;  
636ExpandedSubBlockEnd.gif   }

637ExpandedSubBlockEnd.gif }

638InBlock.gifclass Average extends Sum 
639ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  int n;  
640InBlock.gif   float f() 
641ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  float c;
642InBlock.gif      super.n=n;
643InBlock.gif      c=super.f();
644InBlock.gif      return c/n; 
645ExpandedSubBlockEnd.gif   }

646InBlock.gif   float g() 
647ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  float c;
648InBlock.gif     c=super.f();
649InBlock.gif      return c/2
650ExpandedSubBlockEnd.gif   }

651ExpandedSubBlockEnd.gif }

652InBlock.gifpublic class Example4_25 
653ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[]) 
654ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  Average aver=new Average();
655InBlock.gif      aver.n=100;
656InBlock.gif      float result_1=aver.f();
657InBlock.gif      float result_2=aver.g();
658InBlock.gif      System.out.println("result_1="+result_1);
659InBlock.gif      System.out.println("result_2="+result_2);
660ExpandedSubBlockEnd.gif   }

661ExpandedSubBlockEnd.gif}

662InBlock.gif
663InBlock.gif//例子26
664InBlock.gifimport java.applet.*;import java.awt.*;
665InBlock.gifinterface Computable 
666ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  final int MAX=100;
667InBlock.gif   void speak(String s);
668InBlock.gif   int f(int x);
669InBlock.gif    float g(float x,float y);
670ExpandedSubBlockEnd.gif}

671InBlock.gifclass China implements Computable 
672ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  int xuehao;
673InBlock.gif   public  int f(int x)   //不要忘记public关键字。
674ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  int sum=0;
675InBlock.gif      for(int i=1;i<=x;i++)
676ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{ sum=sum+i;
677ExpandedSubBlockEnd.gif         }

678InBlock.gif       return sum;
679ExpandedSubBlockEnd.gif   }

680InBlock.gif   public float g(float x,float y)
681ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return 6;                   //至少有return语句。  
682ExpandedSubBlockEnd.gif   }

683InBlock.gif   public void speak(String s) 
684ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif
685ExpandedSubBlockEnd.gif   }

686ExpandedSubBlockEnd.gif}

687InBlock.gifclass Japan implements Computable 
688ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  int xuehao;
689InBlock.gif   public int f(int x) 
690ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return 68
691ExpandedSubBlockEnd.gif   }

692InBlock.gif    public  float g(float x,float y) 
693ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return x+y;
694ExpandedSubBlockEnd.gif   }

695InBlock.gif public void speak(String s) 
696ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{                            //必须有方法体,但体内可以没有任何语句。
697ExpandedSubBlockEnd.gif   }

698ExpandedSubBlockEnd.gif}

699InBlock.gifpublic class Example4_26 extends Applet 
700ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  China Li; Japan Henlu;
701InBlock.gif   public void init() 
702ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  Li=new China();   Henlu=new Japan();  
703InBlock.gif      Li.xuehao=991898; Henlu.xuehao=941448;
704ExpandedSubBlockEnd.gif   }

705InBlock.gif   public void paint(Graphics g) 
706ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  g.drawString("xuehao:"+Li.MAX+Li.xuehao+"从1到100求和"+Li.f(100),10,20);
707InBlock.gif      g.drawString("xuehao:"+Henlu.MAX+Henlu.xuehao+"加法"+Henlu.g(2.0f,3.0f),10,40);
708ExpandedSubBlockEnd.gif   }

709ExpandedSubBlockEnd.gif}
   
710InBlock.gif
711InBlock.gif//例子27
712InBlock.gifinterface  收费 
713ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gifpublic void  收取费用();
714ExpandedSubBlockEnd.gif}

715InBlock.gifclass 公共汽车 implements 收费 
716ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public  void 收取费用() 
717ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println("公共汽车:一元/张,不计算公里数");
718ExpandedSubBlockEnd.gif   }

719ExpandedSubBlockEnd.gif }
 
720InBlock.gifclass 出租车 implements 收费 
721ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public void 收取费用() 
722ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println("出租车:1.60元/公里,起价3公里");
723ExpandedSubBlockEnd.gif   }

724ExpandedSubBlockEnd.gif }

725InBlock.gifclass 电影院 implements 收费 
726ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public void 收取费用()
727ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println("电影院:门票,十元/张");
728ExpandedSubBlockEnd.gif   }

729ExpandedSubBlockEnd.gif}

730InBlock.gifclass Example4_27 
731ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[])
732ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  公共汽车 七路=new 公共汽车();
733InBlock.gif      出租车   天宇=new 出租车();
734InBlock.gif      电影院   红星=new 电影院();
735InBlock.gif      七路.收取费用();天宇.收取费用();
736InBlock.gif      红星.收取费用();
737ExpandedSubBlockEnd.gif   }

738ExpandedSubBlockEnd.gif}

739InBlock.gif
740InBlock.gif//例子28
741InBlock.gifinterface  ShowMessage 
742ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{   void 显示商标(String s);
743ExpandedSubBlockEnd.gif}

744InBlock.gifclass TV implements ShowMessage 
745ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public void 显示商标(String s) 
746ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println(s);
747ExpandedSubBlockEnd.gif   }

748ExpandedSubBlockEnd.gif}

749InBlock.gifclass PC implements ShowMessage 
750ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public void 显示商标(String s) 
751ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  System.out.println(s);
752ExpandedSubBlockEnd.gif   }

753ExpandedSubBlockEnd.gif}

754InBlock.gifpublic class Example4_28 
755ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[])
756ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  ShowMessage sm;                  //声明接口变量。
757InBlock.gif      sm=new TV();                     //接口变量中存放对象的引用。
758InBlock.gif      sm.显示商标("长城牌电视机");      //接口回调。
759InBlock.gif      sm=new PC();                     //接口变量中存放对象的引用。
760InBlock.gif      sm.显示商标("联想奔月5008PC机"); //接口回调。
761ExpandedSubBlockEnd.gif   }
 
762ExpandedSubBlockEnd.gif}

763InBlock.gif
764InBlock.gif//例子29
765InBlock.gifinterface  Computerable
766ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public  double 求面积();
767ExpandedSubBlockEnd.gif}

768InBlock.gifclass 梯形 implements Computerable 
769ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  double a,b,h;
770InBlock.gif    梯形(double a,double b,double h) 
771ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.a=a;this.b=b;this.h=h;
772ExpandedSubBlockEnd.gif   }

773InBlock.gif    public double 求面积() 
774ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return((1/2.0)*(a+b)*h);
775ExpandedSubBlockEnd.gif   }

776ExpandedSubBlockEnd.gif}

777InBlock.gifclass 圆形 implements Computerable 
778ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  double r;
779InBlock.gif   圆形(double r) 
780ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.r=r;
781ExpandedSubBlockEnd.gif   }

782InBlock.gif   public double 求面积() 
783ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{ eturn(3.14*r*r);
784ExpandedSubBlockEnd.gif   }

785ExpandedSubBlockEnd.gif}

786InBlock.gifclass 堆 
787ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  Computerable 底;           //声明一个接口变量,可以回调"求面积"方法。
788InBlock.gif   double 高;
789InBlock.gif   堆(Computerable 底,double 高) 
790ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.底=底;
791InBlock.gif      this.高=高;
792ExpandedSubBlockEnd.gif   }

793InBlock.gif    void 换底(Computerable 底) 
794ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  this.底=底;
795ExpandedSubBlockEnd.gif   }

796InBlock.gif    public double 求体积()
797ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  return (底.求面积()*高)/3.0;
798ExpandedSubBlockEnd.gif   }

799ExpandedSubBlockEnd.gif}

800InBlock.gifpublic class Example4_29 
801ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{  public static void main(String args[])
802ExpandedSubBlockStart.gifContractedSubBlock.gif   dot.gif{  堆 zui;
803InBlock.gif      Computerable bottom;
804InBlock.gif      bottom=new 梯形(2.0,7.0,10.7); //接口变量中存放对象的引用。
805InBlock.gif      System.out.println("梯形的面积"+bottom.求面积()); //bottom接口回调,求面积。
806InBlock.gif      zui=new  堆(bottom,30);
807InBlock.gif      System.out.println("梯形底的堆的体积"+zui.求体积());
808InBlock.gif      bottom=new 圆形(10);  //接口变量中存放对象的引用。
809InBlock.gif  System.out.println("半径是10的圆的面积"+bottom.求面积());
810InBlock.gif  zui.换底(bottom);
811InBlock.gif      System.out.println("圆形底的堆的体积"+zui.求体积());
812ExpandedSubBlockEnd.gif   }

813ExpandedSubBlockEnd.gif}

814InBlock.gif

转载于:https://www.cnblogs.com/rookieport/archive/2005/05/27/163334.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值