隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網(wǎng)站

          搜索

          •  

          最新評論

          Shape Example

          1. Point.java

          ?public class Point
          {
          ??? private float mfX, mfY;

          ??? public Point() {
          ??????? mfX = mfY = 0.0f;
          ??? }

          ??? public Point(float fX, float fY) {
          ??????? mfX = fX;
          ??????? mfY = fY;
          ??? }

          ??? public Point(Point p) {
          ??????? mfX = p.mfX;
          ??????? mfY = p.mfY;
          ??? }

          ??? // You will generally not need to write a finalizer. Member variables that
          ??? // are of reference type will be automatically garbage collected once they
          ??? // are no longer in use. Finalizers are only for cleaning up system resources,
          ??? // e.g. closing files.
          ??? protected void finalize() throws Throwable {
          ??????? System.out.print("In Point finalizer: ");
          ??????? print();
          ??????? super.finalize();? // If you have to write a finalizer, be sure to do this.
          ??? }

          ??? public void print() {
          ??????? System.out.println("Point print: (" + mfX + "," + mfY + ")");
          ??? }
          }

          2. Shape.java

          ?public abstract class Shape
          {
          ??? private Point mCenter;
          ??? protected static int miCount = 0;? // An example of a static member variable.

          ??? public Shape() {
          ??????? mCenter = new Point();
          ??? }

          ??? public Shape(Point p) {
          ??????? mCenter = new Point(p);
          ??? }

          ??? // You will generally not need to write a finalizer.?Member variables that
          ??? // are of reference type (i.e. mCenter) will be automatically garbage collected
          ??? // once they are no longer in use. Finalizers are only for cleaning up system
          ??? // resources, e.g. closing files.
          ??? protected void finalize() throws Throwable {
          ??????? System.out.print("In Shape finalizer: ");
          ??????? print();
          ??????? super.finalize();? // If you have to write a finalizer, be sure to do this.
          ??? }

          ??? public void print() {
          ??????? System.out.print("Shape print: mCenter = ");
          ??????? mCenter.print();
          ??? }

          ??? // An example of a static member function.
          ??? public static int getCount() {
          ??????? return miCount;? // Can only access static members in static functions.
          ??? }
          }

          3. Circle.java

          ?public class Circle extends Shape
          {
          ??? private float mfRadius;

          ??? public Circle() {
          ??????? super();? // Call the base class constructer.
          ??????? mfRadius = 0.0f;
          ??????? miCount++;? // Can access this because it is protected in base class.
          ??? }

          ??? public Circle(float fX, float fY, float fRadius) {
          ??????? super(new Point(fX, fY));? // Call the base class constructer.
          ??????? mfRadius = fRadius;
          ??????? miCount++;
          ??? }

          ??? public Circle(Point p, float fRadius) {
          ??????? super(p);? // Call the base class constructer.
          ??????? mfRadius = fRadius;
          ??????? miCount++;
          ??? }

          ??? // You will generally not need to write a finalizer. Member variables that
          ??? // are of reference type (i.e. mCenter) will be automatically garbage collected
          ??? // once they are no longer in use.?Finalizers are only for cleaning up system
          ??? // resources, e.g. closing files.
          ??? protected void finalize() throws Throwable {
          ??????? System.out.print("In Circle finalizer: ");
          ??????? print();
          ??????? super.finalize();? // If you have to write a finalizer, be sure to do this.
          ??? }

          ??? public void print() {
          ??????? System.out.print("Circle print: mfRadius = " + mfRadius + " ");
          ??????? super.print();
          ??? }
          }

          4. Square.java

          ?public class Square extends Shape
          {
          ??? private float mfLength;

          ??? public Square() {
          ??????? super();? // Call the base class constructer.
          ??????? mfLength = 0.0f;
          ??????? miCount++;? // Can access this because it is protected in base class.
          ??? }

          ??? public Square(float fX, float fY, float fLength) {
          ??????? super(new Point(fX, fY));? // Call the base class constructer.
          ??????? mfLength = fLength;
          ??????? miCount++;
          ??? }

          ??? public Square(Point p, float fLength) {
          ??????? super(p);? // Call the base class constructer.
          ??????? mfLength = fLength;
          ??????? miCount++;
          ??? }

          ??? // You will generally not need to write a finalizer.?Member variables that
          ??? // are of reference type (i.e. mCenter) will be automatically garbage collected
          ??? // once they are no longer in use.?Finalizers are only for cleaning up system
          ??? // resources, e.g. closing files.
          ??? protected void finalize() throws Throwable {
          ??????? System.out.print("In Square finalizer: ");
          ??????? print();
          ??????? super.finalize();? // If you have to write a finalizer, be sure to do this.
          ??? }

          ??? public void print() {
          ??????? System.out.print("Square print: mfLength = " + mfLength + " ");
          ??????? super.print();
          ??? }
          }

          5. Main.java

          ?public class Main
          {
          ??? final static int MAX = 3;? // An example of a constant class member variable.

          ??? public static void main(String[] args)
          ??? {
          ??????? // Create some Point objects.
          ??????? Point a;
          ??????? a = new Point();
          ??????? a.print();

          ??????? Point b;
          ??????? b = new Point(2,3);
          ??????? b.print();

          ??????? Point c = new Point(b);
          ??????? c.print();

          ??????? // Print out the total number of Shapes created so far.?At this point,
          ??????? // no Shapes have been created, however, we can still access static member
          ??????? // function Shape.getCount().
          ??????? System.out.println("Total number of Shapes = " + Shape.getCount());

          ??????? // Create a Circle object and hold on to it using a Shape reference.
          ??????? Shape s;
          ??????? s = new Circle(a,1);
          ??????? s.print(); // This will call the print method in Circle.

          ??????? // Create an array of Shapes.
          ??????? Shape[] shapeArray;
          ??????? shapeArray = new Shape[MAX];? // An array of Shape references.

          ??????? shapeArray[0] = new Square();
          ??????? shapeArray[1] = new Circle(4,5,2);
          ??????? shapeArray[2] = new Square(3,3,1);

          ??????? // Print out the array of Shapes. The length member gives the array size.
          ??????? for (int i = 0; i < shapeArray.length; i++) {
          ??????????? shapeArray[i].print();
          ??????? }

          ??????? // Print out the total number of Shapes created so far. At this point,
          ??????? // 4 Shapes have been created.
          ??????? System.out.println("Total number of Shapes = " + Shape.getCount());

          ??????? // We can mark the objects for destruction by removing all references to
          ??????? // them.?Normally, we do not need to call the garbage collector explicitly.
          ??????? // Note: here we have not provided a way to decrement the Shape counter.
          ??????? a = b = c = null;
          ??????? s = null;
          ??????? for (int i = 0; i < shapeArray.length; i++) {
          ??????????? shapeArray[i] = null;
          ??????? }
          ??????? shapeArray = null;
          ??? }
          }



          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-02-25 15:39 小尋 閱讀(252) 評論(0)  編輯  收藏 所屬分類: j2se/j2ee/j2me
          主站蜘蛛池模板: 富顺县| 来安县| 肃宁县| 邻水| 高平市| 荣昌县| 万州区| 广西| 离岛区| 萨迦县| 武冈市| 宁德市| 吴江市| 浪卡子县| 神木县| 湘潭县| 永清县| 广东省| 琼中| 武隆县| 洮南市| 石屏县| 锡林浩特市| 赞皇县| 花莲县| 怀远县| 饶平县| 阿图什市| 正蓝旗| 石门县| 牟定县| 陆良县| 读书| 邢台市| 新晃| 宕昌县| 灵山县| 金门县| 梅河口市| 内丘县| 雷山县|