     1 

     Java 

    Java    -  ,  
        Internet. 
,         : "  
      ?"     
  ,      .   
  ,    C++.  , ,  
         
,   Perl, Shell scripts, Smalltalk  .. 
              
.           
 ,  Internet.         
 - .     Internet  
,          ,  
       ,   . 
        .    ,  
       .  
      .  ,   
     Internet.     
      ,    Internet  , 
   ,    .  , 
           
   .      
  Internet.      ,  
      Macintosh,   UNIX  
 Windows,  . 
           , Java   
  .      ,  .  
  "",      -. 
        Java      C++,  
      .   
  ,        C++,     

    11 

  Java,      .   
Smalltalk    ""    
,   Objective-C   ,   
   Java/.  , Java   , , 
  , - - ,  
       Internet. 
         ,     
-   C++,    ,  
     Java.   
 Java            
 "Learn Java now",      Visual J++.  
         Java  C++,   
    -  . 

     Java 

        Java,      . 
-,   Java,      , -  
  Java (Java virtual machine).    Java- 
  -,   Java- 
   .   Java   
 Windows/Intel x86,     ,    
   Macintosh    UNIX.     
 ,    ,    
Java (BMJ   ).   Java-,    
    ,     
.  Microsoft  Macintosh     
Java,         . 
    ,      Java-   
 Windows,       Java  
Microsoft.          
Windows   .  ,  Java     
   Internet,       Windows. 

    -  - 

     Java       Java,    
      ,  .     
Java  C++,          ,  
       .  Java     
  JAVA. 

    12	Visual 1++:   

        Java     
JV CCompiler,   Visual J++,    Sun javac, 
  Java Developers Kit.   -   
CLASS       .   - 
 - (byte-code)    Java,  
   .  -      
      ,     . 

     

           - 
.          : 
         .    .   
   ( ) ,   
  . ,   Point,    
  ,       ,  
    . 
         .   ,     
.    ,  -     
 .  ,   Point,     
 ,    magnitude(),    
    (0, 0). 
         .       .  
 C++,   Java   .     
Java  ,   ,   ,   
    . 

      

      , Java-    - 
 : 

    class Bar { 
         //    . 
     } 

    class Foo extends Bar { 
         //    . 
    } 

     ,    Foo     , 
   ,     .  
      Door,    
.      , 

     1.  Java	13 

          Door  
  ,    (   ): 

    class  Door   ( 
       boolean isOpen; 

       void open() { isOpen = true; } 
       void close () { isOpen = false; } 
    } 

    Door    .     
   ,   ,   ..     
   ?   , ,  
  .          
 LockingDoor.       ,    Door,  
- ,  ,   Locking-Door   
  Door: 

    class LockingDoor extends Door { 
       //    isOpen  
       //  open()  close()   Door. 

       boolean isLocked; 

      void lock() { isLocked = true; } 
      void unlock) { isLocked = false; } 
    } 

        ,    
LockingDoor  LockingAlarmedDoor,   .  
   LockingAlarmedSecretDoor,   
LockingAlarmedDoor,       (  
 )    ( ,     hideQ  unhide(). 
              
 ,     :   
 .     Door  ( ()  
close())        LockingDoor, 
LockingAlarmedDoor, LockingAlarmedSecretDoor  ,   
 .  ,     - 
,         
   . 
       C++  Java    .  
C++   ,     , 
         "". 
    "",     
   .   Java ,   
,    C++, 

    14   Visual 1++-.   

       (      
 ).    Java-    
   ,    extends,    
   .     
,    ,   Java. 

     Object 

       Java (  )    
Object.    ,    - 
 ,       extends Object. 
    .     -: 

    class Point { 
	int x; 
	int ; 
    }
    class Point extends Object ( 
    	int x; 
    	int y; 
    } 

          Object?      
    ,  Object    Java. 
    Object ;       
  .       
          . 

     1.1.   Object 

      Object      

    getClass()	     . 
        . 

    hashCode()	   -   
  . ( Hashtable    11.) 

    equals()	,     .  
     .    true,  
     .  String  true    
,     . 

    clone()	  ,    . 

    toString()	 ,    . 
     .

     1.  Java 15 

      Object	 

    notify(), notifyAll(), wait() 	   
 . 
    finalize()	  . 


     

       ,      (fields). 
,     ,  
     .   
    .  ,  
   ,       , 
,   . 
     Java-     : 

    class Point { 
    	int x; 
    	int ; 
    } 

         Point     .    
 int,  32- (4-) .    . 
     Java  (. 1.2)      
,   int,      
 . ,      C++,   . 

     1.2.   Java 

           

    char	16-  Unicode. (Unicode    
 ,       
. Unicode      32-  Windows.) 

    byte	8-    .     
    -128  127. 

    short	16-    .     
    -32768  32767. 

    int	32-    .     
    -2147483648  2147483647. 

    long	64-    .     
   ,  ,    
,       , . . 
   2**(-63)  2**(63)( ). 

    boolean	 .      
 Jav  true  false. 

    16 Visual J++:   

     	 

    float 	      IEEE 754. 
    double	        IEEE 754. 

             C++,    
   . -,    char, 
short, int  long   .   ,   ANSI 
         , . 
,  16-   Windows (Windows 3.x)   
 16 ,   32-  (Windows 95  Windows NT)  32 
.  ,      -    
 -.         
     ! Java     
" "      
  ,          
 . -,  Java  . ,   
        C++.  Java  
 ,       C++ (   ).   
     ,     
          
   C++. 

         

       Point        
  32- :   .    Point  
   .  ,     
Point       ,  32  . 
    . 
        ,       
.         
static, : 

    class Point2 { 
	int x; 
	int ; 
    	static int x_origin = 0; 
	static int  origin = 0; 
    }

     1.  Java      	17 

        Point2         
 ,  x_origin  y_origin.  ,     
  Point2   x_origin,     
    .   ,   -  
  ,       .    
  ,   x_origin    . 

         

         ,  ,   
         . 
,   ,        
.   LockingDoor    .   
      isLocked. , 
         .  
        !   
,      lock()  unlock().  
 LockingDoor     isLocked 
 lock()  unlock().    , ,   
isLocked   ; ,    
  . 
     Java    ,   
   .   public ,  
            
  .      Point   , 
   public: 

    class Point { 
    	public int x; 
	public int y; 
    } 

     public    private.  , 
         . 
        . 
 isLocked  LockingDoor     
private.          
,            private: 

    class LockingDoor extends Door { 
	private boolean isLocked; 
    	void lock() { isLocked = true; } 
	void unlock() { isLocked = false; } 
    }

    18	Visual J++:   

          lock()  unlock()  
,      .  ,  
     ,    lock()  
unlock().    ,   , 
,       private   
 . 

    class PasswordLockingDoor extends LockingDoor { 
	private String m_strPassword; 
    	void unlockWithPassword (String strPossiblePassword) { 
	    if(m_strPassword == strPossiblePassword) 
		    isLocked = false; // !    isLocked  . 
      }	
    }

      PasswordLockingDoor    LockingDoor, o   
    isLocked,     private. 
    Public  private    .    
    .     
  ,    .     
       ,  , 
  LockingDoor,    (    
PasswordLockingDoor).    isOpen  Door,  
   LockingDoor.  ,     
   LockingDoor.  ,     
-   ,    .   
   ,  isOpen public-  Door: 
     isOpen  LockingDoor  true. 
          
   protected: 

    public class Door { 
	    protected boolean isOpen; 
	    //        
	    //    , 
	    void open() { 
	    	isOpen = true; 
	    } 
	    void close() { 
		isOpen = false; 
	    } 
    }

    public class LockingDoor extends Door {
	private isLocked; 

     1.  Java	19 

      void lock() { 
   	  //     . 
	  if(isOpen) {return;} 
         //   isOpen . 
	   isLocked = true 
      } 
      void unlock () { 
          //     .. 
          isLocked = false; 
	} 
    }

     lock()  LockingDoor      
isOpen,      (Door)    
protected.  ,     Door,    
   .    ,    
,  private to package.       
    Java.    
  . 1.3. 

     1.3.   

              

    private	      
    ,    . 

    protected	     ,   
 ,  ,   ,    . 

    public	       . 

    <default>	  private to package.   
        ,   ,    . 
         . 

    ,   -  - Java    
 ,  private protected.   , 
-  ,    ,  
. ,   ,  ,   
  ,        . 

    20 Visual J++:   

     

       Java     .  
    .     Java    
C++,         (scope),   
   - .  Java      
 ,      . 

        Java 

    Java-      C++,     .  
   C++     Java.  
  ++-: 

    for( int ii = 0; (anVals[++ii]  (ii & 0xF0)) > anThreshholds[ii]; ii++) 

          Java: 

    for( int ii = 0; (anVals[++ii]  (ii & OxFO)) > anThreshholds[ii]; ii++) 

       ,   ..,   C++, 
   Java.   C++     , 
  ,      ,  
      C++   Java. 
      ,    Java   C++,  
  . -,   ,   Java  
     . ,   
        
.   C++ ':'  Java    extends:

    class LockingDoor extends Door { 
	...
    }


         Java 

          ,   Java   
  .   C++,     
      ,     
  private, protected  public,   lava  
       . poe ,  Java  
        
.        , 
   : private, protected  public.    
    ,     . Private-  
     , protected-     ,  
      ,     
,  public-     . 

     1.  Java	21 

     ,     Door   : ()  
close().     public, ,     
    : 

    class Door { 
	    protected boolean isOpen; 
		    public void open() { isOpen = true; 
		    public void close () { 
	    isOpen = false; } 
    }


      

       C++,  Java   ,   
 (class constructors).  ,    
,    .     
           
 ,     . :   Door  
LockingDoor  ,      
 Door  LockingDoor. ,      
 isOpen   false    isLocked  
     false: 

    class Door { 
	    protected boolean isOpen; 
	    public Door() { 
		    isOpen = false; 
	    }
	    .......
    }

    class LockingDoor extends Door { 
	private boolean isLocked; 
      public LockingDoor() { 
		isLocked = false; 
	}
	...
    }

      ,     ,    
   .        
      .      
      .  , 
      . 

    22 Visual J++:   

     ,    ?  Java   
.       public   
  .    

    class Point ( 
	int x; 
	int ; 
    }

     

    class Point { 
	int x; 
	int y; 

      public Point() { 
	} 
    ) 

         .      
.        ,    
   ,     C++: 

    class Point { 
	int m_x; 
	int m_y; 
    	public Point (int x, int y) { 
		m_x = x; 
		m_y = y; 
    	) 
    ) 

       ,      
.       
  Point  m_  m_. 
          . ,  
        
 .     .  

    class Door { 
	    public Door() { 
		    System.out.println("Door being created!"); 
		} 
    ) 

    class LockingDoor ( 
	    public LockingDoor(} { 
		    System.out.println("LockingDoor being created!"}; 
    	    } 
    } 


     1.  Java	23 

            LockingDoor: 

    Door being created! 
    LockingDoor being created! 

       (Door)     
LockingDoor.       ,    
 LockingDoor       "Door being created!" 
         ,   
  this.    C++,   this    
 ,   .  this     
 : 

    class Point { 
	private int m_x; 
	private int m_y; 

      public Point() { 
  	  this(0, 0); 
	} 

      public Point(int x, int y) { 
  	  m_x = x; 
	  m_y = y; 
	} 
   } 

            
 (  ),   0. 
      super      
  .     
        . 
,     ,     
 : 

    class Door { 
	    private boolean isOpen;        
	    public Door() { 
		this (true) ;
	    }
	    public Door( boolean isInitiallyOpen) { 
		    isOpen = isInitiallyOpen; 
    	    } 
   } 

   class LockingDoor extends Door { 
	private boolean isLocked; 


    24 Visual J++:   


      public LockingDoor()    { 
          //      Door    
          //   , 
          super (false) ; 
          isLocked =  false; 

       super    ,    
  ,       
  .      , 
        
   . 

    class  LockingDoor extends  Door   { private boolean  isLocked; 
	    public  LockingDoor()    { 
	    isLocked =  false;   // !     
			       	    //   , 
	    super(false); 


        

     Java       .    , 
   new.      Door   
   Door: 

    Door  d =  new  Door(); 

           .  
 ,      .   
,    ,      
    ,      
Java    .  Java     
.      (garbage collection)   
     Java. 
      Java       
 .   ,      . 
 ,      Java  : 

    public void MyMetod() { 
	    Door d = new Door(); //    Door. 
	    d = new Door();     /*    Door.   
					 *  ,   
                               *      Door. 


     1.  Java	25 


				    *	  Door  
				    *	. */ 
    }                      /*	    Door , 
				    *	  d   
				    *	 .   Door  
				    *	 . */ 

    ,   Java  ,     C++.   
    .  ,   
 Java     C++. ,    
  .        
 ,     ,   
 ,     C++     
      .  Java      
     ,      
  . ,     new, 
,        : 

    class Point { 
	int m_x; 
	int m_y; 
    	public Point() { 
		this(0, 0) ; 
      } 
      public Point(int x, int y) { 
		m_x = x; 
		m_y = y; 
	}

    class MyProgram { 
	    public void static main (String astrArgs[] ) { 
    	        Point origin = new Point();  //  Point(0, 0). 
		  Point p = new Point(5, 5);   /*   
      				          *  Point. 
       					    *  Point(5, 5). */ 
	    }
    }

       Java,    ,  
   ,    (garbage collector). 
   ,        
,   .      
 ,      .    
        .   
      ,  .   
   

    26 Visual J++-.   

,         
    .   ,   
        . 
        
System.gc(). 

     

       C++,   Java   .   
 ,       .    
Java     ,   , 
   , -,  ,   C++. 
       Java   finalize.     
 Object,        Java. 
   finalize()  ,   
  ,      . 

       

      (dot)     .  
  : 

    class Point { 
	    public int m_x; 
	    public int m_y; 
          public String toString() { 
		    return "Point (" + m_x + "," + m_y + ")"; 
          }
    }

    class MyProgram { 
          public static void main(String astrArgs[]) ( 
		Point p = new Point(); 
		p.m_x = 5; 
		p.m_y = 6; 
	      System.out.println(p.toString()); 
	    } 
    } 

         ,     : 

    Point   (5,    6) 

     ,      ()      
 ,     .  .m_   
 m_    ,  p.toString()   
toString()  . 

     1.  Java        27 


      

       ,     
   .      
 .      
   ,     .    
      static: 

    class School { 
	    private static String m_strPrincipal; 
	    private static String m_strSecretary; 

	    static ( 
		    m_strPrincipal = "Ms. Doherty"; 
		    m strSecretary = "Mr. Svenson"; 
	    }

	    private static String m_strFirstGradeTeacherl; 
	    private static String m_strFirstGradeTeacher2; 

	    static { 
		    m_strFirstGradeTeacherl = "Mrs. Danielson", 
		    m_strFirstGradeTeacher2 = "Mr. York"; 
	    }
    }

          ,    
  : m_strPrincipal, m_strSecretary, 
m_strFirstGradeTeacherl, m_strFirstGradeTeacher2.    
 ,       
,   .
    ,         
 .     ,  
     .    
      ,     - . 

     this 

      Java  ,   this   
  ,   .  this    
 this  C++.     ,     
 .     ,  this 
  ,    (  isOrigin()):

    class Point { 
	    private	int m_x; 
	    private	int m_y; 


    28	Visual J++:   


	    private static Point m_origin; 

	    static { 
		    m_origin = new Point (0, 0); 
	    } 

	    public Point(int x, int y) { 
		    m_x = x; 
		    m_y = y; 
	    } 

	    public Point getOrigin() { 
		    return m_origin; 
	    } 

	    public boolean isOrigin() { 
	    	return (this == m_origin); 
	    } 
    ) 

     ,  isOrigin()    ,   
,    (,      
 this),      Point. 

     

      ,    Java     
  new.       .   
     :  String  .  
  . 
    -,  ,    String  
,    Java   ,   
.      Java,     
        String. 

    String s = "This is a string object. "; 
    int len = "You can call my methods! ".length(); 

    -,         
    String.  '+'   , 
    ,   .  Java   
    : 

    String strConcat = "The time" + "is now!"; 

          '+'   ,  
     ,     
.     Java   ,    
 C++. 

    int nHours = 5; 
    int nMinutes = 22; 


     1.  Java	29 


    int nSeconds = 45; 
    ...
    String strMessage="The time is" + nHours + ":"+nMinutes+" : "+ nSeconds; 

      

    "The   time   is   5:22:45" 

       Java (,   )  
  .     .    
   toStringO,      
   ,        . 
     equals(),    Object   
String,     String.     
 true,             
  .   equals()   String   
true,      String     
.     fEquals  false: 

    Point p1 = new Point(1, 1); 
    Point p2 = new Point(1, 1); 
    boolean fEquals = p1.equals(p2); 

         fEquals  true,     : 

    String strl = "Marvy! "; 
    String str2 = "Mar" + "vy! "; // =="Marvy!" 
    boolean fEquals = strl.equals(str2); 


     

     Java    -,   C++.   
Java    ,       Object.  
    Object,      ,    
.   ,     "" 
,     C++. 
       .     ,    
C++.       : 

    int aArray[5]; 

       , ,   String,    
  .  ,      
   new,      . 
,    : 

    int  aArray[]   =  new  int[5]; 


    3O	Visual J++:   

      Java       . 
, ,      ,   : 

    <type> <var-name>[<length>]; 

               
Array   <var-name>.   <var->   
    .  <var-name>  <type>[]. ,  


    int aArray[10]; 

     aArray   int[].  aObjects   Object[] 
  : 

    Object aObjects[15]; 

            Array, 
   : 

    int aArray[5];        //    . 
    ...
    aArray = new int[15];  //	    , 
				    //	    . 
				    //	  ,  aArray  
				    //	  . 

         Java  C++,    
 .  ,   ,    
,       .     <type>[]. 

      

         ,     
 ,      . ,  
  : 

    Point aPoints[5];    //     Point. 
    aPoints[0].m_x = 10; /* !  it  
			       /* Point[0]   ! 

          : 

    Point aPoints [5];    //     Points. 
				    // ,  Points,   
				    //  , 
     for(int ii=0; ii<5; ii++)    
	   aPoint[ii] = new Point() 

    aPoints[0].m_x = 10; //  Point   Points[0] 
				    // . 


     1.  Java	31 

            
    for.  ,     
   ,        ,   
,   . 

      

         ,    C++,  
   : 

    int   an[]   =   {5,    7,    9,    10,   5,   2,   1,   8,    13}; 

             
(  ,    C++). 

      

     Java        .   
   : 

    int  n[10][10] ; 

         ,     
    . ,    
  : 

    Point aap[10][10] ; 
    for(int ii=0; ii<10; ii++) 
	    for(int jj=0; jj<10; jj++) 
		    aap[ii][jj] = new Point(); 


        

           Java,  
    C++.   []   
    ,     . 
      main() . 
        
 []   .      -: 

    public static void main(String astrArgs[]) { 

     

    public static void main(String[] astrArgs) ( 


    32 Visual J++:   

           an. : 

	int  an[10];

     :

      int[10]   an; 

      

           , 
       .    
   .     
  ,      
 ,           
.       : 

    class  Point	{ 
	    private	int m_x; 
	    private	int m_y; 
	    public Point() { 
		    this(0, 0); 
	   } 
         //  :     
         //    ,    , 
	  public Point (int x, int ) { 
  	    m_x = x; 
	    m  = ; 
	  }
    }

             
,           
.      C++:   
       ,    
.     ,     
  distance()  Point.   distance(),   
   ,       
 (0, 0),        . 

    class   Point   { 
	    public int m_x; 
	    public int m_y; 
	    public Point() { 
		    m_x = m_y = 0; 
	    } 


     1.  Java	33 


	   //     , 
	   public double distance () { 
            return Math.sqrt((ma_x*m_x) + (m_y*m_y)); 
         }
        //     , 
	  public double distance(Point p) { 
 		int dx = this.m_x - p.m_x; 
		int dy = this.m_y - p.m_y; 
	      return Math.sqrt((dx*dx) + (dy*dy)); 
	  }
    }

            distance()  Point 
BM  ,     .   
   ,   .     
,      distance();    
 Point (  ,    Point),   
  . 

      

           
 ,   ,   , 
.  ++       
virtual,         
 .      Java  . : 
 toString(),    Object (   
    Java),      
   . 
       ,  NamedPoint,    
Point.     public-,      
   .       
 lookupNamedPoint()  NamedPoint,   ,  
 .     ,    
      NamedPoint.   
    Java.     
    ,     . (  
         Hashtable, 
     11  .   
    ,    
,      .) 

    class NamedPoint extends Point { 
	    private static Hashtable s__hash; 
	    // Private-    
	    //  new   NamedPoint   
	    //  . 

    34	Visual J++:   


	    private NamedPoint () { 
		    //    , 
		    super (); 
	    }
	    //     NamedPoints.   
	    //  ,    NamedPoints.   
	    //      NamedPoint,   
	    //  private-,   new. 
	    //  ,     
	    //  . 
	    public static NamedPoint lookupNamedPoint(String strName) { 
		    Object objReturn; 
		    //    - 
		    if (null == (objReturn = s_hash.get(strName)) { 
			objReturn = new NamedPoint(); 
			s_hash.put(strName, objReturn); 
		    } 
		    return objReturn; 
	    }
    }


      

     C++,      .  , 
    ,   .    
 ,   ,   . 
       
. 
     Java   .       
   Java       
 abstract 

    abstract class Shape { 
       //   getArea()   
       // , 
       public abstract double getArea(); 
	 .....
    }

    ,   Shape     abstract, 
,           
 ( ) .  ,     
     Shape,     
,      getArea(). 
     : 

    class Rect extends Shape { 
	    public int m x, my, m_width, m height; 


     1.  Java	35 


	    public Rect() { 
		    m_x = m_y = m_width = m_height = 0; 
	    } 
          //    Shape.getArea() 
          // ,     Rect. 
         public double getArea() { 
		    return (m_width * m_height); 
	   ) 

	    class MyProgram { 
		    public static void main(String astrArgs[]) { 
			    Shape s = new Shape ();  /* ! , . 
							    *   . 
							    *   . 
			    s = new Rect();   /*  Rect    
						    *     Shape. 
						    *     
						    *       Shape.
			    System.out.println("Area of shapeis:"+s.getArea()); 
	    }
     }

      s  Shape      Rect.  
   ,  Rect    
Shape.   s.getShape()   , 
   Rect. 

      

       C++,  ,     
      . ,  
  ,    Shape  Rect,  
 Rect    Shape.  ,   Rect 
   Shape    Rect    Shape. 
    Java    C++  .  ,    
       ,  
 (  ),   .  
     .     
  Rect    Parallelogram     
 .  Rect     Shape, 
  .       
 . 

    class Rect extends Shape { 
	    public int m_x, m_y, m_width, m_height; 


    36	Visual J++:   


	    public Rect() { 
		    m x = m  = m width = m_height = 0; 
	    }

	    public double getArea() { 
		    return (m width * m height); 
          } 
    }

    class Parallelogram extends Shape { 
	    public Point m_vertexl, m_vertex2, m_vertex3, m_vertex4;
	    public Parallelogram() ( 
		    m_vertexl = new Point 0; 
		    m_vertex2 = new Point(); 
		    m_vertex3 = new Point 0; 
		    m_vertex4 = new Point(); 
          } 
	    public double getAreaO { 
 		    return (<calculate area of parallelogram here>); 
  	    }
    }

    class MyProgram { 
	    public static void main(String astrArgs[]) { 
			Rect r = new Rect 0 ; 
			r = new Parallelogram();  /* !  
				           	       *     . */ 
	    }
    }

            
 :       , 
    ;       
 ,    . 
        : 

    Shape s = new Rect(); 

             
 .     ,   
   .     
   : 

    Rect r = new Rect(); 
    Shape s = new Rect();	
    r = (Rect)s;

       Rect  nepe  Shape.   
 s   Shape,     r  
Rect   s     .  

     1.  Java	37 

    .     : 

    Rect r; 
    Shape s = new Parallelogram(); // Parallelogram   Shape, 
     = (Rect)s; /* !  ,  
                  *   .*/ 

           .    
,     ClassCastException. 
(     .) 

        

          . 
        ,  
  .     int  
  double,    ,  ,   
  . 
      ,    double  int,  
 .   ,      
           , 
       . 
           . 
 , ,       
.      C++  Java      
.      .    
  char   .       
   ,      
: byte, short, int, float, double. 

         

         ++  Java   
    .       
   .   instanceof ,   
   : 

    Shape s = new Rect(); 
    Shape s2 = new Parallelogram(); 
    if(s instanceof Rect) { // true,   Rect. 
    if(s instanceof Shape) { // true,   Rect   Shape. 


    38 Visual J++:   


    if(s2 instanceof Rect) { // false, Parallelogram   Rect. 

     ,  instanceof   true,   
   ,   ,    
.  ,    true,    
    . 

     

       ,  Java    
Objectiv-; C++   a.    OLE/COM,   
  . 
      ,  ,    .  
   ,      . 
   Advisable    :

    interface Advisable {
	    public void advise(Object obj); 
    } 

     Java     C++.   
 ,   .      
  . 
     ,    Java     
,    implements: 

    class Advisee implements Advisable { 
	public void advise(0bject obj) { 
	    System.out.println("Advisee advised about " + obj); 
       } 
    } 

     Java        . 
          
.      
   C++.   , ,   
  .        
     .      : 

    interface Advisable ( 
    	public void advise(Object obj); 
    } 
    interface WarmAdvisable extends Advisable { 
	    public void warmAdvise(); 
    }

     1.  Java	39 


    interface Moveable { 
	    public void move(int x, int y) ; 
    } 

    class Thing implements WarmAdvisable, Moveable { 
        private int m_x, m_y;
        public Thing() { 
	    m_x = m_y = 0; 
        } 
        //   WarmAdvisable. 
        public void advise(Object obj) { 
	    System.out.println("Thing advised about " + ob j ) ; 
        } 
        public void warmAdvise() { 
	    System.out.println("Thing given a warm advise."}; 
        }
        //   Moveable. 
        public void move(int x, int y) {
	    m_x = x; 
	    m__y = y; 
        }  
     }


              : 

    class myProgram { 
	    public static void MoveHalfwayTo(int x, int y, Moveable m) { 
             /* m  ,    Moveable, 
              *     move(). */ 
             m.move(x/2, /2); 
          } 
	    public static void AdviseAboutMove(int x, int y, Advisable a) { 
		/* a  ,   Advisable, 
 	       *     advise(). */ 
             a.advise(new Point(x,)); 
          } 

          public static void main(String astrArgs[]) { 
              Thing = new Thing(); 
              MoveHalfwayTo(10, 10, thing);  //  thing  Moveable. 
              AdviseAboutMove(5, 5, thing);  //  thing  Advisable. } } 


    40 Visual J++:   


     ,       . 
     , , ,  
WarmAdvisable    Advisable.  ,    
WarmAdvisable    ,     Advisable,  - 
.  ,    WarmAdvisable,   
 Advisable,      .  Thing  
    Advisable,   Thing   
 WarmAdviseable. 
       Microsoft       Java 
 -.   Java/COM,    Java, 
    .       
,    -  Java!  , 
        Java. C  
   Java    l  
 Word,     -.  
,    -    
Java   Visual Basic  C++.    "";   
        . 
         Java/COM ,    
.   6      Java/COM. 
    Java     
       . 

     

     Java     CLASS     
   ,   (packages).   package 
,      .   
 -    ,    
        ,    . 
            package. 

    package com.osborne.VJ-Handbook; 
    class MyDemoClass { 
    ...
    }

      MyDemoClass   ,  
com.osborne.VJ-Handbook.       
  Java,   . 
          : 
<word>[.<word>\[.<word>\.         , 
     . 

     1.  Java	41 


        CLASS 

       ,    -.  
       .  ,  
  ,   MyDemoClass.class    
      com/osborne/VJ-Handbook.  - 
 ,      . 
          com/osborne/VJ-Hand-book? 
    ,     CLASSPATH.  
   ,     -.  
    ,     
    . -    
  ,   ,      
     ,   CLASSPATH. 
 CLASSPATH    : 

    set CLASSPATH=" .;:\Java\Classes;:\Windows\java\classes" 

     ,      CLASSPATH:  
(  '.'), C:\Java\Classes  C:\Windows\Java\Classes. 
         Internet ( ,     
WWW-)         
URL. ,   WWW-   , 
  URL http://www.my.do-main.com/java/demo/index.html. 
     MyDemo-Class.    
MyDemoClass.class, Web-   URL 
http://www.my.domain.com/java/demo/com/osborne/VJ-Hand-book/MyDemoClass.class 
    . 

          

                
  ,         , 
      public, protected  public. 
,   fFlag    : 

    package com.osborne.VJ-Handbook; 
    class Stuff { 
	    boolean fFlag; // He   . 
    } 

     fFlag  ,     (private to 
package).     fFlag  Stuff    
,     com.osborne.VJ-Handbook. 

    42	Visual J++:   

     "   "   " 
" (friend)  C++.     " 
        private.   
 friend  C++  ,     , 
       protected  private. 

     Java- 

      Java-   acca Java.  
Java-  ,         
  ,    -. 
      -  Java-?       
  HelloWorld.    ,    
    HelloWorld,    
   HelloUniverse.       
,  HelloUniverse.java: 

    public class HelloUniverse { 
	    public static void main(String astrArgs[]) { 
		System.out.println("Hello, Universe! "); 
	    } 
    ) 

          ,  HelloUniverse.  
 Java-      .
     HelloUniverse     main().   
  Java-   ,   main()   
  ,    .     .   
    .   Java-  
 ,        main(), 
   . 
         "Hello, Universe!"   
  Java-.      System, 
    Java.  out    
 System,   private,    , 
    . ( WWW-an   
 System.out   Java- Web-,   .) 

     1.  Java	43 

