ÀóÔ°ÔÚÏß

ÀóÔ°Ö®ÃÀ£¬ÔÚ´ºÖ®ÃÈÑ¿£¬ÔÚÏÄÖ®ÕÀ·Å£¬ÔÚÇïÖ®ÊÕ»ñ£¬ÔÚ¶¬Ö®³Áµí

[»Øµ½¿ªÊ¼] [ÉÏһƪ][ÏÂһƪ]


·¢ÐÅÈË: icefire (±ù»ð), ÐÅÇø: Java
±ê  Ìâ: [תÔØ] java½Ì³Ì(¾Å) (תÔØ)                    DLW (ת¼Ä)
·¢ÐÅÕ¾: Éî´óÀóÔ°³¿·çÕ¾ (Sun Mar  1 14:47:45 1998), ×ªÐÅ

¡¾ ÒÔÏÂÎÄ×ÖתÔØ×Ô icefire µÄÐÅÏä ¡¿
¡¾ Ô­ÎÄÓÉ icefire.bbs@bbs.sjtu.edu.cn Ëù·¢±í ¡¿
·¢ÐÅÈË: DLW (·ÉÄñ), ÐÅÇø: program
±ê  Ìâ: java½Ì³Ì(¾Å) (תÔØ)
·¢ÐÅÕ¾: Òûˮ˼Դվ (Wed Aug 27 15:56:38 1997) , ×ªÐÅ



JAVA³ÌÐòÉè¼ÆÓïÑÔ½²×ù(µÚ11½²)



                     ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓôÐÀ¡¡ËïÔª¡¡Íõêض«¡¡Íõ¿Ëºê



                                  µÚ Ò» ²¿ ·Ö JavaÈë ÃÅ

                             µÚ Áù Õ ¡¡ ¶Ô Ïó ¡¢ Àà ¡¢ °ü ºÍ ½Ó ¿Ú

     6.2.6 ¹¹ Ôì ·½ ·¨

     ¹¹ Ôì ·½ ·¨ ÊÇ Ò» ÖÖ ÌØ Ê⠵Ġ·½ ·¨ ¡£ JavaÖРµÄ Ã¿ ¸ö Àà ¶¼ ÓР¹¹ Ôì ·½ ·¨
 ,ÓàÀ´ ³õ Ê¼ »¯ ¸Ã À࠵Ġһ ¸ö
РµÄ ¶Ô Ïó ¡£ ¹¹ Ôì ·½ ·¨ ¾ß ÓРºÍ Àà Ãû Ïà Í¬ µÄ Ãû ³Æ ,¶ø ÇÒ ²» ·µ »Ø ÈΠºÎ
Êý ¾Ý Àà ÐÍ ,ÔÚ ¹¹ Ôì ·½ ·¨ µÄ Êµ
ÏÖ ÖР,Ò² ¿É ÒÔ ½ø ÐР·½ ·¨ Öؠд ¡£

    Àý6.5
    class point {
    int x,y;
    point (){
    x=0;        y=0;
    }
    point (int x, int y){
    this.x=x;         this.y=y;
    }
    }


     ÉÏ Àý ÖР,ÎÒ ÃÇ ¶Ô Àà Pointʵ ÏÖ ÁË Á½ ¸ö ¹¹ Ôì ·½ ·¨ ,·½ ·¨ Ãû ¾ù Îª Poin
t,Óë Àà Ãû Ïà Í¬ ¡£ ¶ø ÇÒ ÎÒ ÃǠʹ
ÓàÁË ·½ ·¨ Öؠд ,¸ù ¾Ý ²» Í¬ µÄ ²Î Êý ·Ö ±ð ¶Ô µã µÄ x¡¢ y×ø ±ê ¸³ Óë ²» Í¬ µÄ
 ³õ Öµ ¡£

     »Ø Òä ÔÚ Àý 6.2ÖР,ÎÒ ÃÇ Ôø Óàinit()·½ ·¨ ¶Ô µã µÄ x¡¢ y×ø ±ê ½ø ÐР³õ Ê¼
 »¯ ¡£ ¶þ Õß Í꠳ɠÏà Í¬ µÄ ¹¦ ÄÜ
,ÄǠô Ó๹ Ôì ·½ ·¨ µÄ ºÃ ´¦ ÔÚ ÄÄ Àï ÄØ ?

     µ± ÓàÔË Ëã ·û newΪ Ò» ¸ö ¶Ô Ïó ·Ö Åä ÄÚ ´æ Ê± ,Òª µ÷ Óà¶Ô Ïó µÄ ¹¹ Ôì ·½
 ·¨ ,¶ø µ± ´´ ½¨ Ò» ¸ö ¶Ô Ïó Ê±
,±Ø Ðë ÓànewΪ Ëü ·Ö Åä ÄÚ ´æ ¡£ Òò ´Ë Ó๹ Ôì ·½ ·¨ ½ø ÐР³õ Ê¼ »¯ ±Ü Ãâ ÁË
ÔÚ Éú ³É ¶Ô Ïó ºó Ã¿ ´Î ¶¼ Òª µ÷
Óà¶Ô Ïó µÄ ³õ Ê¼ »¯ ·½ ·¨ ¡£ Èç ¹û Ã» ÓРʵ ÏÖ À࠵Ġ¹¹ Ôì ·½ ·¨ ,Ôò JavaÔË ÐÐ
 Ê± Ïµ Í³ »á ×Ô ¶¯ Ìá ¹© È± Ê¡ µÄ
¹¹ Ôì ·½ ·¨ ,Ëü Ã» ÓРÈΠºÎ ²Î Êý ¡£

     Áí Íâ ,¹¹ Ôì ·½ ·¨ Ö» ÄÜ ÓÉ newÔË Ëã ·û µ÷ Óà¡£ ÎÒ ÃÇ ½« ÔÚ ¡ì 6.3ÖР½ø ÐÐ
 Ïê Ï¸ ½é ÉÜ ¡£ ¶Ô ¹¹ Ôì ·½ ·¨ Í¬
Ñù Ò² ÓР·Ã ÎʠȨ ÏÞ µÄ ÏÞ ÖÆ (¼û ¡ì 6.6)¡£

     6.2.7 finalize()·½ ·¨

     ÔÚ ¶Ô ¶Ô Ïó ½ø ÐРÀ¬ »ø ÊÕ ¼¯ Ç° ,JavaÔË ÐРʱ Ïµ Í³ »Ø ×Ô ¶¯ µ÷ Óà¶Ô Ïó
µÄ finalize()·½ ·¨ À´ ÊÍ ·Å Ïµ Í³ ×Ê
Ô´ ,Èç ´ò ¿ª µÄ ÎÄ ¼þ »ò socket¡£ ¸Ã ·½ ·¨ µÄ Éù Ã÷ ±Ø Ðë Èç Ï Ëù Ê¾ :

     protected void finalize() throws throwable

     finalize()·½ ·¨ ÔÚ Àà java.lang.ObjectÖРʵ ÏÖ ¡£ Èç ¹û Òª ÔÚ Ò» ¸ö Ëù ¶¨
Ò堵ĠÀà ÖРʵ ÏÖ ¸Ã ·½ ·¨ ÒÔ ÊÍ ·Å
¸Ã Àà Ëù Õ¼ ÓàµÄ ×Ê Ô´ (¼´ Òª ÖØ ÔØ ¸¸ À࠵Ġfinalize()·½ ·¨ ),Ôò ÔÚ ¶Ô ¸Ã Àà
Ëù Ê¹ ÓàµÄ ×Ê Ô´ ½ø ÐР·­ Òë ºó ,Ò»
°ã Òª µ÷ Óุ À࠵Ġfinalize()·½ ·¨ ÒÔ Çå ³ý ¶Ô Ïó Ê¹ ÓàµÄ Ëù ÓР×Ê Ô´ ,°ü À¨
 ÓÉ ÓÚ ¼Ì ³Ð ¹Ø Ïµ ¶ø »ñ µÃ µÄ ×Ê Ô´
¡£ Í¨ ³£ µÄ ¸ñ Ê½ Ó¦ Îª :

    protected void finalize () throws throwable{
    ¡­¡­        // clean up code for this class
    super. finalize();
    }



     ¸Ã Àý ÖР,ͨ ¹ý superÀ´ µ÷ ÓàÆä ¸¸ À࠵Ġfinalize()·½ ·¨ ,ÓР¹Ø superÎÒ ÃÇ
 ½« ÔÚ ¡ì 6.4ÖР½² Êö ,¶Ô Àà
java.lang.Ob-ject,ÎÒ ÃÇ Ò² ½« ÔÚ ¡ì 6.4ÖР½² Êö ¡£

                                           ¡ì 6.3 ¶Ô Ïó

     °Ñ Àà Êµ Àý »¯ ,ÎÒ ÃÇ ¿É ÒÔ Éú ³É ¶à ¸ö ¶Ô Ïó ,Õâ Ð© ¶Ô Ïó Í¨ ¹ý Ïû Ï¢ ´«
µÝ À´ ½ø ÐР½» »¥ (Ïû Ï¢ ´« µÝ ¼´
¼¤ »î Ö¸ ¶¨ µÄ Ä³ ¸ö ¶Ô Ïó µÄ ·½ ·¨ ÒÔ ¸Ä ±ä Æä ×´ Ì¬ »ò ÈàËü ²ú Éú Ò» ¶¨ µÄ ÐÐ
 Îª ),×î ÖÕ Í꠳ɠ¸´ ÔÓ µÄ ÈΠÎñ
¡£

     Ò» ¸ö ¶Ô Ïó µÄ Éú Ãü ÆÚ °ü À¨ Èý ¸ö ½× ¶Î :Éú ³É ¡¢ Ê¹ ÓàºÍ Çå ³ý ¡£ Ï Ãæ
 ÎÒ ÃÇ ·Ö ±ð ½² Êö :

     6.3.1 ¶Ô Ïó µÄ Éú ³É

     ¶Ô Ïó µÄ Éú ³É °ü À¨ Éù Ã÷ ¡¢ Êµ Àý »¯ ºÍ ³õ Ê¼ »¯ Èý ·½ Ã栵ĠÄÚ ÈÝ ¡£ Í¨
 ³£ µÄ ¸ñ Ê½ Îª :

     type objectName = new type ( [paramlist] );

     1. type objectName; Éù Ã÷ ÁË Ò» ¸ö Àà Ð͠Ϊ typeµÄ ¶Ô Ïó ¡£ Æä ÖРtypeÊÇ ×é
 ºÏ Àà ÐÍ (°ü À¨ À࠺͠½Ó ¿Ú )¡£
¶Ô Ïó µÄ Éù Ã÷ ²¢ ²» Îª ¶Ô Ïó ·Ö Åä ÄÚ ´æ ¿Õ ¼ä ¡£

     2. ÔË Ëã ·û newΪ ¶Ô Ïó ·Ö Åä ÄÚ ´æ ¿Õ ¼ä ,ʵ Àý »¯ Ò» ¸ö ¶Ô Ïó ¡£ newµ÷ ÓÃ
 ¶Ô Ïó µÄ ¹¹ Ôì ·½ ·¨ ,·µ »Ø ¶Ô
¸Ã ¶Ô Ïó µÄ Ò» ¸ö Òý Óà(¼´ ¸Ã ¶Ô Ïó Ëù ÔÚ µÄ ÄÚ ´æ µØ Ö· )¡£ Óànew¿É ÒԠΪ Ò»
 ¸ö Àà Êµ Àý »¯ ¶à ¸ö ²» Í¬ µÄ ¶Ô
Ïó ¡£ Õâ Ð© ¶Ô Ïó ·Ö ±ð Õ¼ Ó಻ Í¬ µÄ ÄÚ ´æ ¿Õ ¼ä ,Òò ´Ë ¸Ä ±ä Æä ÖРһ ¸ö ¶Ô
Ïó µÄ ×´ Ì¬ ²» »á Ó° Ïì Æä Ëü ¶Ô Ïó
µÄ ×´ Ì¬ ¡£

     3. Éú ³É ¶Ô Ïó µÄ ×î ºó Ò» ²½ ÊÇ Ö´ ÐР¹¹ Ôì ·½ ·¨ ,½ø ÐР³õ Ê¼ »¯ ¡£ ÓÉ ÓÚ
 ¶Ô ¹¹ Ôì ·½ ·¨ ¿É ÒÔ ½ø ÐРÖؠд
,Ëù ÒԠͨ ¹ý ¸ø ³ö ²» Í¬ ¸ö Êý »ò Àà ÐÍ µÄ ²Î Êý »á ·Ö ±ð µ÷ Ó಻ Í¬ µÄ ¹¹ Ôì
·½ ·¨ ¡£

     ÒÔ Àý 6.5ÖРËù ¶¨ Ò堵ĠÀà Point Îª Àý ,ÎÒ ÃÇ Éú ³É Àà PointµÄ ¶Ô Ïó :

     Point p1 = new Point();

     Point p2 = new Point(5,10);

     Õâ Àï ,ÎÒ ÃǠΪ Àà PointÉú ³É ÁË Á½ ¸ö ¶Ô Ïó p1¡¢ p2,Ëü ÃÇ ·Ö ±ð µ÷ Ó಻
ͬ µÄ ¹¹ Ôì ·½ ·¨ ,p1µ÷ Óàȱ Ê¡
µÄ ¹¹ Ôì ·½ ·¨ (¼´ Ã» ÓР²Î Êý ),p2Ôò µ÷ Óà´ø ²Î Êý µÄ ¹¹ Ôì ·½ ·¨ ¡£ p1¡¢ p2
·Ö ±ð ¶Ô Ó¦ ÓÚ ²» Í¬ µÄ ÄÚ ´æ ¿Õ ¼ä
, Ëü ÃÇ µÄ Öµ ÊÇ ²» Í¬ µÄ ,¿É ÒÔ Íê È« ¶À Á¢ µØ ·Ö ±ð ¶Ô Ëü ÃÇ ½ø ÐР²Ù ×÷ ¡£

     Ëä È» newÔË Ëã ·û ·µ »Ø ¶Ô Ò» ¸ö ¶Ô Ïó µÄ Òý Óà,µ« Óë C¡¢ C++ÖРµÄ Ö¸ Õë
²» Í¬ ,¶Ô Ïó µÄ Òý ÓàÊÇ Ö¸ Ïò
Ò» ¸ö ÖР¼ä µÄ Êý ¾Ý ½á ¹¹ ,Ëü ´æ ´¢ ÓР¹Ø Êý ¾Ý Àà ÐÍ µÄ ÐŠϢ ÒÔ ¼° µ± Ç° ¶Ô
Ïó Ëù ÔÚ µÄ ¶Ñ µÄ µØ Ö· ,¶ø ¶Ô ÓÚ
¶Ô Ïó Ëù ÔÚ µÄ Êµ ¼Ê µÄ ÄÚ ´æ µØ Ö· ÊÇ ²» ¿É ²Ù ×÷ µÄ ,Õ⠾͠±£ Ö¤ ÁË °² È« ÐÔ
¡£

     6.3.2 ¶Ô Ïó µÄ Ê¹ ÓÃ

     ¶Ô Ïó µÄ Ê¹ Óà°ü À¨ Òý Óà¶Ô Ïó µÄ ³É Ô± ±ä Á¿ ºÍ ·½ ·¨ ,ͨ ¹ý ÔË Ëã ·û ¡¤
 ¿É ÒԠʵ ÏÖ ¶Ô ±ä Á¿ µÄ ·Ã ÎÊ ºÍ
·½ ·¨ µÄ µ÷ Óà,±ä Á¿ ºÍ ·½ ·¨ ¿É ÒԠͨ ¹ý Éè ¶¨ Ò» ¶¨ µÄ ·Ã ÎʠȨ ÏÞ (¼û ¡ì
6.6) À´ ÔÊ Ðí »ò ½û Ö¹ Æä Ëü ¶Ô Ïó ¶Ô
Ëü µÄ ·Ã ÎÊ ¡£

     ÎÒ ÃÇ ÏÈ ¶¨ Òå Ò» ¸ö Àà Point,Ëü ÔÚ Àý 6.5µÄ ¶¨ Òå ÖРÌí ¼Ó ÁË Ò» Ð© ÄÚ ÈÝ
 ¡£

    Àý6.6
    class Point{
          int x,y;
          String name = "a point";
          Point(){
                x = 0;
                y = 0;
          }
          Point( int x, int y, String name ){
                this.x = x;
                this.y = y;
                this.name = name;
          }
          int getX(){
                return x;
          }
          int getY(){
                return y;
          }
          void move( int newX, int newY ){
                x = newX;
                y = newY;
          }
          Point newPoint( String name ){
                Point newP = new Point( -x, -y, name );
                return newP;
          }
          boolean equal( int x, int y ){
                if( this.x==x && this.y==y )
                      return true;
                else
                      return false;
          }
          void print(){
                System.out.println(name+" :  x = "+x+"  y = "+y);
          }
    }
    public class UsingObject{
          public static void main( String args[] ){
                Point p = new Point();
                p.print();        //call method of an object
                p.move( 50, 50 );
                System.out.println("** after moving **");
                System.out.println("Get x and y directly");
                System.out.println("x = "+p.x+"  y = "+p.y);    //access variabl

es of an object
                System.out.println("or Get x and y by calling method");
                System.out.println("x = "+p.getY()+"  y = "+p.getY());
                if( p.equal(50,50) )
                      System.out.println("I like this point!!!! ");
                else
                      System.out.println("I hate it!!!!! ");
                p.newPoint( "a new point" ).print();
                new Point( 10, 15, "another new point" ).print();
                      }
    }
    ÔËÐнá¹ûΪ:
    C:\java UsingObject
    a point :  x = 0  y = 0
    **** after moving *****
    Get x and y directly
    x = 50  y = 50
    or Get x and y by calling method
    x = 50  y = 50
    I like this point!!!!
    a new point :  x = -50  y = -50
    another new point :  x = 10  y = 15


     1. Òý Óà¶Ô Ïó µÄ ±ä Á¿

     Òª ·Ã ÎÊ ¶Ô Ïó µÄ Ä³ ¸ö ±ä Á¿ ,Æä ¸ñ Ê½ Îª :

     objectReference.variable

     Æä ÖРobjectReferenceÊÇ ¶Ô Ïó µÄ Ò» ¸ö Òý Óà,Ëü ¿É ÒÔ ÊÇ Ò» ¸ö ÒÑ Éú ³É µÄ
 ¶Ô Ïó ,Ò² ¿É ÒÔ ÊÇ ÄÜ ¹» Éú ³É ¶Ô
Ïó Òý ÓàµÄ ±í ´ï Ê½ ¡£

     Àý Èç :ÎÒ ÃÇ ÓàPoint p=new Point();Éú ³É ÁË Àà PointµÄ ¶Ô Ïó pºó ,¿É ÒÔ ÓÃ
 p.x,p.yÀ´ ·Ã ÎÊ ¸Ã µã µÄ x¡¢ y×ø
±ê ,Èç

    p.x = 10;         p.y = 20;


     »ò Õß ÓànewÉú ³É ¶Ô Ïó µÄ Òý Óà,È» ºó Ö± ½Ó ·Ã ÎÊ ,Èç :

     tx = new point().x;

     2. µ÷ Óà¶Ô Ïó µÄ ·½ ·¨

     Òª µ÷ Óà¶Ô Ïó µÄ Ä³ ¸ö ·½ ·¨ ,Æä ¸ñ Ê½ Îª :

     objectReference.methodName ( [paramlist] );

     Àý Èç ÎÒ ÃÇ Òª ÒÆ ¶¯ Àà PointµÄ ¶Ô Ïó p,¿É ÒÔ ÓÃ

     p.move(30,20);

     Ëä È» ÎÒ ÃÇ ¿É ÒÔ Ö± ½Ó ·Ã ÎÊ ¶Ô Ïó µÄ ±ä Á¿ p.x¡¢ p.yÀ´ ¸Ä ±ä µã pµÄ ×ø ±ê
 ,µ« ÊǠͨ ¹ý ·½ ·¨ µ÷ ÓàµÄ ·½
ʽ À´ Êµ ÏÖ ÄÜ ¸ü ºÃ µØ Ìå ÏÖ Ãæ Ïò ¶Ô Ïó µÄ ÌØ µã ,½¨ Òé ÔÚ ¿É ÄÜ µÄ Çé ¿ö ÏÂ
¾¡ ¿É Äܠʹ Óà·½ ·¨ µ÷ Óà¡£

     Í¬ Ñù ,Ò² ¿É ÒÔ ÓànewÉú ³É ¶Ô Ïó µÄ Òý Óà,È» ºó Ö± ½Ó µ÷ ÓàËü µÄ ·½ ·¨
,Èç

    new  point(). move (30,20);


     Ç° Ãæ ÒÑ ¾­ ½² ¹ý ,ÔÚ ¶Ô Ïó µÄ ·½ ·¨ Ö´ ÐРÍê ºó ,ͨ ³£ »á ·µ »Ø Ö¸ ¶¨ Àà
ÐÍ µÄ Öµ ,ÎÒ ÃÇ ¿É ÒÔ ºÏ ·¨ µØ Ê¹
ÓàÕâ ¸ö Öµ ,Èç :Àý 6.6ÖРÀà PointµÄ ·½ ·¨ equal·µ »Ø ²¼ ¶û Öµ ,ÎÒ ÃÇ ¿É ÒÔ ÓÃ
Ëü À´ ×÷ Îª ÅР¶Ï Ìõ ¼þ ·Ö ±ð Ö´ ÐÐ
²» Í¬ µÄ ·Ö Ö§ ¡£ Èç :

    if (p.equal (20,30)){
          ¡­¡­  //statements when equal
    }else {
          ¡­¡­  //statements when unequal
    }


     Áí Íâ ,Àà PointµÄ ·½ ·¨ newPoint·µ »Ø ¸Ã µã ¹Ø ÓÚ Ô­ µã µÄ ¶Ô ³Æ µã ,·µ »Ø
 Öµ Ò² ÊÇ Ò» ¸ö PointÀà ÐÍ , ÎÒ ÃÇ
¿É ÒÔ ·Ã ÎÊ Ëü µÄ ±ä Á¿ »ò µ÷ ÓàËü µÄ ·½ ·¨ ,Èç :

    px = p.newPoint().x           »ò
    px = p.newPoint(). getX();


     (δ Íê ´ý Ðø )



--
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?
?           You are the Only one                  ?
?<a href=//www.shnet.edu.cn/~sryang1/Only>Only</a>?
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?

¡ù À´Ô´:£®Òûˮ˼Դ bbs.sjtu.edu.cn£®[FROM: 202.120.3.150]
--
¡ù ×ªÔØ:£®Éî´óÀóÔ°³¿·çÕ¾ bbs.szu.edu.cn£®[FROM: bbs.szu.edu.cn]


[»Øµ½¿ªÊ¼] [ÉÏһƪ][ÏÂһƪ]

ÀóÔ°ÔÚÏßÊ×Ò³ ÓÑÇéÁ´½Ó£ºÉîÛÚ´óѧ Éî´óÕÐÉú ÀóÔ°³¿·çBBS S-TermÈí¼þ ÍøÂçÊéµê