ÝßË Ĺ›‹– - Á͘ ˙Œ ނƒÎ ÜߍÁ

‚Ë…› ß ‚Ë™Ÿ• ŕƒ ˙‹Í…‹Ë ß ŘŸÍ…

Jeff Friesen ŕ…Œßœ
JavaWorld
͕Îß͟„ ΂œžŒ :݇ͅ›


ŕšŠ
˙é™é‰é› ˙‚éÍ韟“…› ß ‚Í…›Á͂„ ‚Ë™Ÿ• ɟ͌… ŕƒ ŢΟ͕ ؇ ŕ™‚–› ޟÁ ÍË
.Ë韃‚Ÿ˙› ÍË ÁÍ ‚Ë…› ß ‚Ë™Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ß ŘŸÍ… ŕ߉œ ‚›Œ ß ËÎÁË̈́˙›
ß ‚éÍé…é›ÁÍ‚é„ ‚Ë™Ÿ• :Ëߛœ ݟ‹–… ŕ…‹Ë ŕ‹ ŕƒ ŢÁ߅˙› ÁÍ Á߂‡ ˙‚ÍŸŸ“…›
.˙™‰› ˙‚ÍŸŸ“…›



‚Ë™Ÿ• ؟͐…
ĹéŸéŽß ÎÁ ˙ŒŠƒ К— ŕœËƒ .Ëߌ ˙› ؟͐… К— ŕœËƒ ÍË ŕ— Ĺ‹Á á͟Ÿ“…› ˙Ÿ•
Ź˙™Á ˗ ÍË Ë™Ÿ• ؟͐… ˙Á̓ .ËÍÁË˙› ŕ‚˜œ ÁÍ Đš— şŽß ÎÁ ˙ŒŠƒ ‚Ÿ ŗ‡ƒŔ
.Ëߌ˙› ŕ˂•…‹Á ͟ΠÍ߅‹Ë ÎÁ

[ ( 'public' | 'private' | 'protected' ) ]
  [ ( 'final' | 'volatile' ) ]
    [ 'static' ] [ 'transient' ]
      data_type field_name [ '=' expression ] ';'

˙éË ÍÁËé–é› ÁÍ Ë陟• ŕ— ˙…Í‚ƒ) á͂Ÿ…ŠÁ Ĺ͂ƒ Ź˙ÁŕËÁË Öߜ ˙Ÿ• ؟͐…
˙Á̓ ÁÍ ˙Ÿ‚ŕ‹‚œŒ .˜—˙› ҊŒ› ÁÍ ‚modifer ß ˙ƒ‚Ÿ…‹Ë ˙‚ ŕŠŒ› .(˜—˙›
.˟Ÿ‚›œ Š…œÁ ˙ÁŕËÁË Öߜ

:܂†›

class Employee
{
   String name; // The employee's name.
   double salary; // The employee's salary.
   int jobID; // The employee's job identification code (e.g., accountant, payroll clerk, manager, and so on).
}

ŕé—韛‚˜œ .name ß Źsalary ŹJobid :˜—˙› ؟͐… ÁÍ Ë™Ÿ• ŕ‹ Employee К—
ŗ‡ƒŔ .ËÍÁË˙› ŕ‚˜œ ÁÍ String ŗ‡ƒŔ ŕƒ Öß‡Í Ý‚œ ŹËŸÎ‚‹˙› ÁÍ Employee ˙Œ
˙鉟‰ Ëˏ JobID ß Ëœ›Í‚— Ůߖ‰ Salary ˙Ÿ• .ŋÁ ˜›Í‚— ݂œ ˙߂‰ String
.ˌ‚ƒ˙› ˙™“Œ ŕ…ŒÍ ŕ–ƒÔ Í˜œ‚Ÿƒ ŕ— Ĺ‹Á



‚ŕŠŒ› ŕƒ ˙ƒ‚Ÿ…‹Ë
.ËéŸéŸ‚›œ ˙•͐› protected ‚Ÿ public Źprivate ĹÍߍ ŕƒ ÁÍ á˙Ÿ• ˟œÁ߅˙›
.Ë韂é›éœ˙› ޟŸ… ‚Đš— ͟‚‹ ÍË ÁÍ Ë™Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ŕ߉œ ˙ƒ‚Ÿ…‹Ë ŕŠŒ›
.ˌ‚ƒ˙› ˙ƒ‚Ÿ…‹Ë ܃‚– ͟’ ‚… ܛ‚— ˙ƒ‚Ÿ…‹Ë ÎÁ ˙ƒ‚Ÿ…‹Ë ŕËßˉ›

ŕéƒ Ó͕ џ„ ˙ƒ‚Ÿ…‹Ë Éԋ ڟ Á߂‡ ˟œ—œ ؟͐… ÁÍ Ë™Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë Öߜ ͘Á
Üéƒ‚é– ŕé…é‹éƒ ނ雝 ˙‚ž‹š— ŕ› ß Ëߊ К— ÍË Ë™Ÿ• ˙œŸ ˝Ë˙› ҂…ŠÁ ŢŔ
ÍéŸÎ ܂é†é› ŕƒ .(˜…‹ ‚ž‹š— ÎÁ ˙Ÿ‚ŕœ‚Šƒ‚…— ‚ŕ…‹ƒ) Ë߃ ˝Áߊ ˙ƒ‚Ÿ…‹Ë
:˟œ— ŕ‡ß…

class MyClass
{
   int fred;
}

˜ÍÁË ÍÁ͖ ŕ…‹ƒ ނ› ÍË ŕˌ ؟͐… ˙‚ž‹š— ͟‚‹ ß MyClass ÍË ŕ— á˗ Ԗ•
private ĹÍßé ŕéƒ ÁÍ á˙Ÿ• ŕˆœ‚œˆ .˜Œ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë fred ŕƒ ËœœÁ߅˙›
ŢéŸÁ .Ë錂ƒ ŕ…ŒÁË ˙‹Í…‹Ë ˙Ÿ• ŕƒ ËœÁ߅˙› К— ނ› ˗ Ԗ• ˟Ÿ‚›œ ؟͐…
ÁÍ ÍéŸÎ ܂é†é› .Ĺé‹Á ˙ƒ‚Ÿ…‹Ë ܃‚– ͟’ ͘ŸË ˙‚ŕ…‹ƒ ˙‚ž‹š— ͟‚‹ ÍË Ë™Ÿ•
:ݟœ—˙› ˙‹Í̓

class Employee
{
   private double salary;
}

.ˌ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë Salary ŕƒ ËœÁ߅˙› Employee ÍË Ë߇ߛ ˗ ‚žœ…

ÍéŸ‚é‹ ˙‚éžé‹š— ß ŢŔ К— ÍË Ë߇ߛ ˗ ŹËŸŸ‚›œ ˙•͐› public ÁÍ á˙Ÿ• ͘Á
:ŌÁË ËœÁߊ ˙‹Í…‹Ë ˙Ÿ• ŢŔ ŕƒ ‚ŕ…‹ƒ

public class Employee
{
   public String name;
}

ËéœÍÁË ˙é‹Íé…é‹Ë Name ŕéƒ ‚éŕ酋ƒ ͟‚‹ ˙‚ž‹š— ß Employee ÍË Ë߇ߛ ˗
.(Ëߌ ˙•͐› public ˟‚ƒ Employee

ÓÍé• .˜Î˙› ŕ›Ô™ łšÔÁ á΂‹ ނžœ„ Ýߞ•› ŕƒ public ĹÍߍƒ ˙Ÿ• ͝ ؟͐…
ÁÍ Eye ŹHeart ŹLung ˙‚éĐš— ß Ţ‚‹œÁ Ţ˃ á΂‹ ܲ ˙Á̓ ÁÍ Body К— ˟œ—
ŹHeart ŕ͂éŒÁ ˙‚Ë™Ÿ• Body К— .˟…Š‚‹ ‚ŕŸÍ ß Ă™– ނ›Œˆ á΂‹ ܲ ˙Á̓
:˜—˙› ؟͐… ÁÍ Lung ŹEye

public class Body
{
   public Eye leftEye, rightEye;
   private Heart heart;
   private Lung leftLung, rightLung;
}

Íé ˙Á̓ ˟‚ƒ ނ›Œˆ Á͟Π˜…‹ public ßË Í LeftEye ß RightEye ˙‚Ë™Ÿ•
Ë霅‹ private ˙™ß Heart leftlungß Ź rightlung .˜Œ‚ƒ şßÍ Üƒ‚– áÍՂœ
ß leftlung Źrightlung ËéŸéœ— Ó͕ .˜ÍÁË ÍÁ͖ Ţ˃ ŢßÍË ‚ž›Á˜Á ޟÁ Á͟Î
Ă陖 ŕ— Ĺ‹Ÿœ Ýߞ•› ޟ˃ ͂— ޟÁ ‚ŸŔ .˜ˌ˙› ˙•͐› private ŢÁߜƒ heart
.˜ˌ şßÍ Üƒ‚– ‚ŕŸÍ ß

ß private ŢéŸéƒ Ĺ߂é•é… .ŋÁ protected Ó͕ џ„ Íßԃ ‚Ë™Ÿ• ˙ƒ‚Ÿ…‹Ë Éԋ
protected Ëé™éŸé• ŕéƒ ËœœÁ߅˙› ŕ…‹ƒ ͝ ˙‚ž‹š— ÍŸÎ ŕ— Ĺ‹Á ޟÁ protected
.ˌ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë

public class Employee
{
   protected String name;
}

ŕé— ˙Áŕ…‹ƒ ނ› ÍË ŕˌ ؟͐… ˙‚ž‹š— ͟‚‹ ŹEmployee К— ÍË Ë߇ߛ ˗ Ԗ•
name ŕéƒ ËéœéœÁ߅˙› Employee ˙‚ž‹š— ÍŸÎ ŕ› ß ËÍÁË ÍÁ͖ ŢŔ ÍË Employee
.˜Œ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë



‚Í˜ ɚÁ
ß volatile ‚éŸ final ĹÍß鍃 á˟™— ł›™— ÎÁ ˙—Ÿ ‚ƒ ÁÍ á˙Ÿ• ͝ ˟œÁ߅˙›
ŹË韜— ˙•͐› final ÁÍ á˙Ÿ• ͘Á .˟Ÿ‚›œ ؟͐… transient ‚Ÿ ß static ‚Ÿ
Ô閕 ͟Ÿ“…› ˙œŸ т† ÁÍ ŢŔ ß ŕˌ ˙Ë ÍÁ˖› ˙Ÿ• ŕ— Ĺ‹Á Ţě›Ô› ͙Ÿ‚„›‚—
Ëé— ˙ßÍ Íéƒ ÁÍ ˙é™éŠÁË ˙‚éáÎ‚é‹ ŕœŸžƒ ˜Á߅˙› ß Ë͟˜˙› Í՜ ÍË ˙œËœÁߊ
.˃‚Ÿ˙›œ ͟Ÿ“… т† ŹÍŸŸ“…› ˜ÁË˙› ÁÍŸÎ ËË Ý‚‡œÁ ŕ›‚œÍƒ ˙‚ĹŸ‚ƒ

class Employee
{
   final int ACCOUNTANT = 1;
   final int PAYROLL_CLERK = 2;
   final int MANAGER = 3;

   int jobID = ACCOUNTANT;
}

ŹACCOUNTANT :Ë韂é›éœ˙é› ŘéŸÍ… ÁÍ final_int ĹÍߍƒ ÁÍ Ë™Ÿ• ŕ‹ Ůߕ ܂†›
.MANAGER ß PAYROLLCLERK

ŕ˂é•é…é‹Á ŕÍéŸé… ÔéŠ ß ŰÍÎéƒ Řß͉ ÎÁ т† ˙‚ÍŸŸ“…› ؟͐… ݂˜œ :ŕ…—œ
ނ‹Ŕ ޅŒßœ/Ţ˜Áߊ ˙‚ÍŸŸ“…› ÎÁ т† ˙‚ÍŸŸ“…› ҟŠŒ… ߅ͅ ޟ˃ .ݟœ—˙›
.Ëߌ˙›

˜Áߊ ˙‹Í…‹Ë ˙Ÿ• ŕƒ thread ޟ˜ˆ ŹËŸŸ‚›œ ˙•͐› volatile ÁÍ á˙Ÿ• ͘Á
.Ĺé‹Á á͂鍉œÁ ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë Á̙ ŹËÍÁ˜ Ëß‡ß á΂‹ ŕœŸžƒ ނ—›Á ß ĹŒÁË
ŹËŸŸ‚›œ ˙•͐› static ÁÍ á˙Ÿ• ͘Á .(ݝË˙› ɟŽß… ÁÍ thread áːƒ ś‹–ÍË)
˙Ÿ• ŕƒ ÁÍ á˟ˇ ÍÁ˖› ˙…–ß .ŌÁË ËœÁߊ ÁÍ Ë™Ÿ• ÎÁ ˙„— ڟ ‚Ĺ—‡ƒŔ ŕ›
Ëß錜 ҊŒ› static ͘Á ß ËœœŸƒ˙› ÁÍ ËŸË‡ ÍÁ˖› ‚Ĺ—‡ƒŔ ŕ› ŹËŸœ— ‹…œÁ
.ËÍÁË˙› ŕ‚ŸÍË ÁÍ Ëߊ ŕƒ Ô߃͛ ˙„— ŗ‡ƒŔ ͝ ß ŕˌ ŕ˟›‚œ instance ˙Ÿ•

ŕÍéŸéŠĚ Ĺé—釃Ŕ á΂‹ ܂ŸÍ‹ ݂˜œ ÍË transient ˙Ÿ• ÍÁ˖› ŕ—œŸÁ ݂‡œÁ͋
.(ݟÎÁË̈́˙› á΂‹ ܂ŸÍ‹ Ýߞ•› ˙‹Í̓ ŕƒ áːƒ ś‹– ÍË .Ëߌ˙›œ





instance ˙‚Ë™Ÿ•
‚éƒ ‚éË™Ÿ• ޟÁ .Ëߌ ؟͐… static ŕ›™— Ţß˃ ŕ— Ĺ‹Á á˙Ÿ• instance ˙Ÿ•
ÍéŸéŸé“é… ˙é…é—釃Ŕ ˗ ‚ƒ ŕ— ˙›‚˜œ ß ‚ž‹š— ŕœ Ëœ…‹ Ԃƒ…ÍÁ ÍË ‚Ĺ—‡ƒŔ
ŘĚé‰ ‚ƒ ß ŕ…Š‚‹ ˙Œ ˂‡ŸÁ ‚ƒ ˙Ÿ• ޟÁ .˜Ÿƒ˙› ÁÍ ÍŸŸ“… ˙Œ ‚žœ… ŹËœƒ‚Ÿ˙›
.Ëߌ˙› Ř̉ ˙Œ

class SomeClass1
{
   int i = 5;

   void print ()
   {
      System.out.println (i);
   }

   public static void main (String [] args)
   {
      SomeClass1 sc1 = new SomeClass1 ();
      System.out.println (sc1.i);
   }
}

˙é‹Íé…‹Ë ˙Á̓ ŕÁÍ ßË .˜—˙› ؟͐… ÁÍ i ݂œ ‚ƒ instance ˙Ÿ• SomeClass1
:ËÍÁË Ëß‡ß Ë™Ÿ• ޟÁ ŕƒ

instance ˅› ٟÍÔ ÎÁ -ą
Class ˅› ٟÍÔ ÎÁ -˛

.ËÍÁË ÍÁ͖ instance ˙Ÿ• ŕ— Ëœ…‹ ˙‹š— ނ› ÍË Ë…› ßË Í

ËéŸ‚éƒ ŹÍé˜éŸË Đšé— instance ˅› ٟÍÔ ÎÁ instance ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓
ŕˌ ŕ…Š‚‹ ŗ‡ƒŔ ĐÍËŔ ˙߂‰ ͟Ÿ“…› ޟÁ .˟Œ‚ƒ ŕ…ŒÁË Ĺ—‡ƒŔ ŕƒ Öß‡Í ÍŸŸ“…›
˙ÁÍéƒ .Ëéœé— ˙é› ŘéŸÍéé… ÁÍ ‚›Œ Í՜ ËÍߛ instance ˙Ÿ• ŕ— Ĺ‹Á ˙‹š— ÎÁ
Đšé— ÎÁ ÁÍ ˙é…é—é‡éƒŔ ŹĐš— ނ› ÍË Đš— ˅› ÎÁ instance ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë
ŕéƒ ÁÍ Í韟“…› ŕ— á˜ߌŸ„ ß Ĺ—‡ƒŔ ŕƒ Öß‡Í ÍŸŸ“…› ÁÍ ŢŔ ŕƒ Öß‡Í .˟΂‹ƒ
.˟œ— ‹…œÁ ŹËŸ‚›œ Ô߃͛ instance ˙Ÿ• ݂œ

ÍË Íßé—Ěé› Ü‰Á͛ ŹÍ˜ŸË К— ڟ К— ˅› ÎÁ instance ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓
.˟œ— ܂ƒœË ÁÍ (К— ނ› ÍË Đš— ˅› ÎÁ ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë) ÁÍ Ůߕ

҂…ŠÁ instance ˙Ÿ• ͝ ˙Á̓ ÁÍ ˙ÁŕՕ‚‰ ŹË΂‹˙› ÁÍ ˙…—‡ƒŔ JVM ŕ—Ÿ›‚˜œ
Ëé™éŸé• ÓÍé• Ń韄 ˙Ë ÍÁ˖›) ˜—˙› ͕ ÁÍ Ë™Ÿ• ŕՕ‚‰ ŢŔ ւ…› ß ËË˙›
.ËÍÁË ˙é˜é…鋃 ˙Ÿ• ˙ÁŕËÁË Öߜ ŕƒ Ó͕ џ„ ÍÁ˖› ͟‹•… ŕ–ŸÍÔ .(instance
ŕƒ Boolean ˙Ÿ• Ź0.0 ‚Ÿ 0 ŕƒ áËˏ ˙Ÿ• null ŕƒ Öß‡Í Ë™Ÿ• Ó͕ џ„ ÍÁ˖›
.Ëߌ˙› ͟‹•… \u0000 ŕƒ áͅ—Á͂— ˙Ÿ• ß false



К— ˙‚Ë™Ÿ•
‚ƒ ‚Ë™Ÿ• ޟÁ .Ëߌ˙› ؟͐… static á˟™— ŕ›™— ‚ƒ ŕ— Ĺ‹Á á˙Ÿ• ŹĐš— ˙Ÿ•
К— .˜ƒ‚Ÿ˙› ͟Ÿ“… К— ڟ ˗ ‚ƒ ˙…–ß .‚Ĺ—‡ƒŔ ŕœ Ëœ…‹ Ԃƒ…ÍÁ ÍË ‚ž‹š—
Đšé— load ‚éƒ Đšé— Ë陟• .˜—˙› གŒ› ÁÍ ÍŸŸ“… (ŕˌ ŕ…Š‚‹ ŗ‡ƒŔ ͝ ß)
.ËË͘˙› Ř̉ К— unload ‚ƒ ß ŕ…Š‚‹



:˝Ë˙› ނŒœ ÁÍ Đš— ˙Ÿ• ڟ ͟Π܂†›

class SomeClass2
{
   static int i = 5;

   void print ()
   {
      System.out.println (i);
   }

   public static void main (String [] args)
   {
      System.out.println (i);
   }
}


ނéŒéœ ÁÍ i ŕéƒ ˙郂韅‹Ë ˙Á̓ ŃßÍ ßË ß ŘŸÍ… ÁÍ i К— ˙Ÿ• SomeClass2
ÍË Ëé…é› ßË Íé) К— ˅› ٟÍÔ ÎÁ á͘ŸË ß instance ٟÍÔ ÎÁ ˙—Ÿ .˝Ë˙›
.(˜ÍÁË ÍÁ͖ ÚͅŒ› К—

Ëé™éŸ• ݂œ ŋŸ•‚— ŹÚͅŒ› К— instance ٟÍÔ ÎÁ К— ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓
ŹÍé˜éŸË Đšé— instance Ë酛 ÎÁ К— ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓ .˟Ÿ‚›œ ҊŒ› ÁÍ
Ëé…é› ÎÁ ÁÍ SomeClass2.i ܂é†é› ˙Á̓ .˟Ÿ‚›œ Í—Ě ÁÍ Đš— ݂œ ß Đš— ˙Ÿ•
ŕé…鋃 ÍË ßË Í ŕ— ŹËŸŸ‚›œ ҊŒ› i ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓ ͘ŸË К— ÍË instance
.ŋÁ ŕˌœ ؟͐… public ĹÍߍ ŕƒ SomeClass2 Á͟ΠŹËœ…‹ ˙—Í…Œ›

ÁÍ Ëé™éŸé• ݂œ ŋŸ•‚— ŹĐš— ނ› ÍË Đš— ˅› ÎÁ К— ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓
Ůߕ ŕŸßÍ ŹÍ˜ŸË К— ڟ К— ˅› ÎÁ К— ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓ .˟Ÿ‚›œ ҊŒ›
܂éƒéœË ÁÍ Íé˜éŸË К— ÍË instance ˅› ٟÍÔ ÎÁ К— ˙Ÿ• ŕƒ ˙ƒ‚Ÿ…‹Ë ˙Á̓
.˟œ—

ß ËéË˙é› Ň‚…ŠÁ К— ˙Ÿ• ͝ ˙Á̓ ÁÍ ˙ÁŕՕ‚‰ JVM ŹĐš— áÍÁ̘ ͂ƒ Ӊ› ŕƒ
.˜—˙› ˙Ë ÍÁ˖› ÁÍ ŢŔ

class Global
{
   static String name;
}

class UseGlobal
{
   public static void main (String [] args)
   {
      Global.name = "UseGlobal";
      System.out.println (Global.name);
   }
}

ß UseGlobal .Ĺé‹Á ŕËßé›éœ ŘéŸÍéé… ˙降Á ܟ‚• ڟ ÍË ÁÍ Đš— ßË Ůߕ ܂†›
ÁÍ UseGlobalÁËé…éƒÁ JVM ŹË韟‚›œ Á͇Á ß ÜŸ‚„›‚— ÁÍ ŕ›‚œÍƒ ͘Á .Global
ŕË靂éŒé› ÎÁ Đé„ .Ëéœé—˙é› Á͇Á ÁÍ main() ˅› ˗ Є‹ ß ŕËߛœ áÍÁ̘ ͂ƒ
˙韂鋂éœéŒ Є‹ ß áÍÁ̘ ͂ƒ Źß‡…‹‡ ÁÍ Global К— JVM Á˅ƒÁ Global.Name
҂éé…ŠÁ ݂œ ˙Á̓ ÁÍ ˙ÁŕՕ‚‰ JVM ˌ ˙Ÿ‚‹‚œŒ Global ŕ—œŸÁ Ӊ› ŕƒ .˜—˙›
String ŗ‡ƒŔ JVM ͘ŸË ˙ߋ ÎÁ .˜—˙› ˙Ë ÍÁ˖› null ‚ƒ ÁÍ ŕՕ‚‰ ß ËË˙›
˙Ë ÍÁ˖› ŹËœ…•͘ ÍÁ͖ ŕ›ßŸ˜ ßË ŢŸƒ ŕ— ˙Ÿ‚Í…—Á͂— ‚ƒ ÁÍ ŢŔ ß ŕ…Š‚‹ ÁÍ
Global.name ŕéƒ ŕ雂éœÍéƒ Đ„‹ .(Ëߌ˙› ‹…œÁ ݂œ ŕƒ Öß‡Í :ŕ͂ŒÁ) ˜—˙›
ŕéƒ ß Ëéœé—˙é› ˙郂éŸÎ‚éƒ ÁÍ String Ĺé—釃Ŕ ŕƒ Öß‡Í ß ŕË͗ Á˟„ ˙‹Í…‹Ë
˙é‡ßÍéŠ ÍË String ŗ‡ƒŔ łŸß…‰› ނŸ‚„ ÍË .˅‹Í•˙› system.out.println()
.Ëߌ˙› ͝‚Ő

˙é›‚éœ Í ˟œÁ߅˙› ŹËœ…‹Ÿœ public ڟˆŸ Global ß UseGlobal ŕ—Ÿě‚‡œŔ ÎÁ
ÜéŸ‚é• Đšé— ßË ÍË ÜéŸ‚é• ŢéŸÁ Ü韂鄛‚— .˟œ— Š…œÁ ˙™Á ܟ‚• ˙Á̓ ÁÍ
˙߂‰ UseGlobal ŕ—œŸÁ ܟ™Ëƒ .˝Ë˙› ŕ‡Ÿ…œ Global.class ß UseGlobal.class
˙ÁÍé‡Á ˙ÁÍéƒ .ËéŸéœé— ŕ˂镅‹Á ŕ›‚œÍƒ ˙Á͇Á ˙Á̓ ŢŔ ÎÁ ŹĹ‹Á main() ˅›
.˟œ— ğ‚… ÁÍ java_UseGlobal ނ›Í• Ԋ ÍË ŕ›‚œÍƒ

.Ëߌ˙› ͝‚Ő ͟Π˙‚ÔŠ ݂Ÿ„ ˟œ— ğ‚… ÁÍ java_Global ͘Á

Exception in thread "main" java.lang.NoSuchMethodError: main


main() Ë酛 ˜Á߅˙›œ Á߂‡ ŕ— Ĺ‹œŸÁ ͘œ‚Ÿƒ Ůߕ Ĺ͂ƒ ނŸ‚„ ÍË main ŕ›™—
.˜— Á˟„ Global К— ÍË ÁÍ



‚ž…ƒ‚†
ŹËéœé— ˙éË ÍÁË閛 ÁÍ ŢŔ JVM ŕ—œŸÁ Ӊ› ŕƒ .ŋÁ ˙œËœÁߊ Ԗ• ͟Ÿ“…› т†
ĹÍßé final ˙ËéŸé™— ŕ›™— ‚ƒ ‚Ĺƒ‚† ؟͐… .ŋŸœ ͟Ÿ“… ܃‚– ͟Ÿ“…› ÍÁ˖›
class ß instance ŕß͘ ßË ÍË instance ß class ˜œ‚› Ϝ ‚Ĺƒ‚† .Ë͟˜˙›
:܂†› .˜ŸŔ˙›

class Constants
{
   final int FIRST = 1;
   final static int SECOND = 2;

   public static void main (String [] args)
   {
      int iteration = SECOND;

      if (iteration == FIRST) // Compiler error.
   System.out.println ("first iteration");
   else
   if (iteration == SECOND)
   System.out.println ("second iteration");
   }
}

FIRST .˜—˙› ؟͐… ÁÍ SECOND ß FIRST т† ßË Ůߕ ܂†› ÍË Constants К—
contants Ĺ闇ƒŔ ͝ ˙Á̓ ŢŔ ÎÁ ˙Áŕœ‚˜Áˇ ˙„— JVM Á͟ΠŋÁ instance т†
Ĺéƒ‚é† SECOND ŹË΂‹˙› SECOND ÎÁ ˙„— ڟ Ԗ• JVM ŕ—Ÿě‚‡œŔ ÎÁ ‚›Á .Ë΂‹˙›
˙é‹Íé…é‹Ë FIRST ŕƒ main() ٟÍÔ ÎÁ ‚›Ÿ–…‹› ˟Áߊƒ ͘Á :͗̅ .ŋÁ class
Ĺ闇ƒŔ ŕ— ËÍÁË Ëß‡ß ˙…–ß FIRST т† .˝Ë˙› ˙ßÍ Í™Ÿ‚„›‚— ˙‚ÔŠ ˟œ— Á˟„
.К— ŕœ Ĺ‹Á ˙‹Í…‹Ë ܃‚– ŗ‡ƒŔ ނ› ˙Á̓ Ԗ• ‚›Á Ëߌ˙› ŕ…Š‚‹



‚Ĺƒ‚† ÎÁ ŕ˂•…‹Á ܟšË
.Ë͟˜˙› ĹÍߍ ͅœ‚‹Ŕ ˙™Á ˗ ÍË Ĺƒ‚† ŕŸ™ßÁ ÍÁ˖› ŢËÁË ÍŸŸ“…

Ĺéƒ‚é† ŕéœßé›éœ ˙ÁÍéƒ .Ëéœéœé—˙é› Ü韞‹… ÁÍ ˙™Á ˗ ÚͲ Ţ˜Áߊ ‚ž…ƒ‚†
.ˌ‚ƒ˙› ą˛ Ëˏ ÎÁ ͅ‚œ› ‚ƒ NUM_ARRAY_ELEMENTS



áÍÁ̘ ŕ͂›Œ ÖÁߜÁ
ŹËœ—˙› á΂‹ ܲ ÁÍ Ú͟‹ łœÁߟ‰ ÎÁ ˙Œ‰ß ׂƒ ŕ— ÁÍ Zoo1 ŕ›‚œÍƒ ˟œ— Ó͕
.˟‹Ÿßœ˙›

Listing 1. Zoo1.java

// Zoo1.java

class CircusAnimal
{
   final static int TIGER = 1;
   final static int LION = 2;
   final static int ELEPHANT = 3;
   final static int MONKEY = 4;
}

class Zoo1
{
   private int animal;

   public static void main (String [] args)
   {
      Zoo1 z1 = new Zoo1 ();
      z1.animal = CircusAnimal.TIGER;

      // Some time later ...

      if (z1.animal == CircusAnimal.TIGER)
         System.out.println ("This circus animal is a tiger!");
      else
      if (z1.animal == CircusAnimal.MONKEY)
         System.out.println ("This circus animal is a monkey!");
      else
         System.out.println ("Don't know what this circus animal is!");
   }
}

Đšé— .Zoo1 ß CirsusAnimal : Ë韂é›éœ˙é› ŘéŸÍéé… ÁÍ Đšé— ßË Zoo1.java
˜…‹ łœÁߟ‰ ÖÁߜÁ ͘œ‚Ÿ‚›œ ŕ— ËÍÁË ÉŸ‰ Ëˏ т† á͋ ڟ CircusAnimal
ÁÍé‡Á ÁÍ Zooą ŕ雂éœÍéƒ ŢŔ ()niam Ëé…é› ß Ĺ‹Á á΂’Ŕ К— Zoo1 ŕ—Ÿ™‚‰ ÍË
.˜—˙›

Ëé™éŸé• ß ËéË˙é› ÍÁ͖ Z1 ÁÍ ŢŔ Öß‡Í ß Ë΂‹˙› ÁÍ Zoo1 ŗ‡ƒŔ main() ˅›
ÎÁ .Ëéœé—˙é› ˙Ë ÍÁ˖› CirsusAnimal.TIGER ŕƒ ÁÍ animal ݂œ ‚ƒ instance
ŕéƒ Ößé‡Í ͟Ÿ“…› ٟÍÔ ÎÁ main() ˅› ŹĹ‹Á private ĹÍߍƒ animal ŕ—Ÿě‚‡œÁ
ŕ— Ĺ‹Á ˙‹š— ނ› ÎÁ ˙ŒŠƒ main() Á͟ΠËÍÁË ˙‹Í…‹Ë ͟Ÿ“…› ŢŔ ŕƒ Z1 ŗ‡ƒŔ
ß ÜÍé…éœé— ÁÍ animal ˙™• ÍÁ˖› main() Є‹ .ŋÁ ŕˌ ؟͐… ŢŔ ÍË animal
.˜—˙› Í˂ Ëߊ ˙‚ŕ…•‚Ÿ ̓ ˙œ…ƒ› ÁÍ Ă‹‚œ› ݂Ÿ„

ŕé— ËéŸéœé— ÓÍé• .animal ÍË int ˙ÁŕËÁË Ößéœ á˟™— ŕ›™— :ËÍÁË Ü—Œ› Zoo1
ß animal ÁÍéŸÎ Ĺé‹Á ΂‡› ͂— ޟÁ .ݟŸ‚›œ ‹…œÁ 987324 ŕƒ ÁÍ Z1.animal
.Ĺ鋂éœéé›˙ƒ ‹…œÁ ř‚‰œŸÁ ÍË .˜…‹ integer ˙ÁŕËÁË Öߜ ßË Í 987324
ۂƒ ْÁ ŕ— Ëœ—˙› ˟™ß… á˗ animal ˙ÁŕËÁË Öߜ ĹÍߍƒ integer ÎÁ ŕ˂•…‹Á
҂éé…ŠÁ animal ŕƒ ˙ƒ‹‚œ› ˙ÁŕËÁË Öߜ ŕ— Ĺ‹œŸÁ Íߗ̛ ܗŒ› ͂— ŕÁÍ .ËÍÁË
Ößéœ ÎÁ ÍßéŐéœé› ޟ˃ .ݟŸ‚›œ Ëßˉ› Ë͟˜ƒ ˜Á߅˙› ŕ— ÁÍ á͟˂–› ß ÝŸË
ŹŕËéŒ áÍÁĚé˜ ŕ͂é›éŒ ˙ÁŕËÁË Ößéœ .Ëߌ˙› ŕ˂•…‹Á ŕˌ áÍÁ̘ ŕ͂›Œ ˙ÁŕËÁË
Ößéœ ÎÁ ͟ΠĹÍߍƒ ŕ— Ĺ‹Á ˙…—‡ƒŔ ŹÍÁ˖› ͝ ŕ— ËÍÁË áËßˉ› ͟˂–› ŕß›‡›
.Ëߌ˙› ŕ…Š‚‹ áÍÁ̘ ŕ͂›Œ ˙ÁŕËÁË

Listing 2. Zoo2.java

// Zoo2.java

class CircusAnimal
{
   static final CircusAnimal TIGER = new CircusAnimal ("Tiger");
   static final CircusAnimal LION = new CircusAnimal ("Lion");
   static final CircusAnimal ELEPHANT = new CircusAnimal ("Elephant");
   static final CircusAnimal MONKEY = new CircusAnimal ("Monkey");

   private String animalName;

   private CircusAnimal (String name)
   {
      animalName = name;
   }

   public String toString ()
   {
      return animalName;
   }
}

class Zoo2
{
   private CircusAnimal animal;

   public static void main (String [] args)
   {
      Zoo2 z2 = new Zoo2 ();
      z2.animal = CircusAnimal.TIGER;

      // Some time later ...

      if (z2.animal == CircusAnimal.TIGER)
         System.out.println ("This circus animal is a tiger!");
      else
      if (z2.animal == CircusAnimal.MONKEY)
         System.out.println ("This circus animal is a monkey!");
      else
         System.out.println ("Don't know what this circus animal is!");
   }
}

ÍéŸéŸé“… ˙›— ŢŔ ÍË animal ˙ÁŕËÁË Öߜ ŕ…ƒ™Á .ŋÁ Zoo1 К— ŕŸƒŒ Zoo2 К—
ß ËÍÁË ÁÍ CircusAnimal ˙ÁŕËÁË Ößéœ int ˙‚é‡ ŕéƒ animal ŹÚœŸÁ .ŋÁ ŕË͗
ŕéƒ ËéœéœÁßé…˙› ŹËœßŒ˙› ŕ…Š‚‹ CircusAnimal ÎÁ ŕ— ˙Ÿ‚Ĺ—‡ƒŔ ŕƒ Öß‡Í Ô–•
.˜ߌ ‹…œÁ animal

ŹTIGER ŹLION :Ëéœé—˙› ؟͐… ÁÍ CircusAnimal т† ͂žˆ CircusAnimal К—
.Ëߌ˙› ˙Ë ÍÁ˖› CircusAnimal ŗ‡ƒŔ ŕƒ Ĺƒ‚† ͝ .ELEPHANT ß MONKEY

ŹËÍéŸé˜˙é› String ނ›ß˜ÍŔ ڟ ŕ— CircusAnimal ŕĎŸß (ŕ˜΂‹) Constructor
animalName ˙Ÿ• ĹÍߍƒ Constructor ŕƒ ŕˌ ŕËÁË Í߃ String .Ëߌ˙› ؟͐…
.Ëߌ˙› ŕ͟ŠĚ private ß

CircusAnimal ˙‚Ĺ—‡ƒŔ Ŋ‚‹ ÎÁ ‚… Ëߌ˙› ؟͐… private ĹÍߍƒ Constructor
ŕéƒ Ĺééœ‚é›é› (ËéœËŒ ؟͐… т† ĹÍߍƒ ŕ— ˙…—‡ƒŔ ͂žˆ ÎÁ ͅŒŸƒ ) ˙•‚ŽÁ
987324 ‚éƒ Ü˂éé› CircusAnimal Ĺé—釃Ŕ áË͕ ‚… ˟Áߊ˙›œ ‚›Œ .ËÍßŔܛ
ÁÍéˆ .Ëéœé…‹ ΂‡› Zoo2 ŕ›‚œÍƒ ˙Á̓ CircusAnimal т† ͂žˆ Ԗ• .Ë΂‹ƒ
ÁÍ String ŗ‡ƒŔ ÍÁ˖› ˅› ޟÁ żËŒ ؟͐… CircusAnimal ÍË toString() ˅›
Ó͕ .˜ÁË͘˙› ΂ƒ ŹĹ‹Á ŕˌ ‹…œÁ animalName ŕƒ ŢŔ (‘‡Í›) reference ŕ—
ŕéƒ Z2.animal ˙Ë ÍÁ˖› ÎÁ Є ÁÍ system.out.println(Z2.animal) ŕ— ËŸœ—
ÍÁËé–é› ޟÁ ß ËŒ ˝Áߊ È Tiger ŕ‡Ÿ…œ .˟œÁߊƒ Á͕ CircusAnimal.TIGER
ŕËÁË Í߃ CircusAnimal ŕ˜΂‹ ŕƒ Ë߃ ŕˌ ŕ…Š‚‹ Tiger т† ŕ— ˙›‚˜œ ÍË
toString() Ëé…é› ˙éœÁßéŠÁ͕ ‚ƒ ÁÍ Tiger Źsystem.out.println() .ŋÁ ŕˌ
.ËÍßŔ˙› ŋ˃

Ë韜— Á˟„ ˙ƒ‚Ÿ…‹Ë ‚žœŔ ŕƒ ß ŘŸÍ… ÁÍ ‚Ë™Ÿ• ŕœß˜ˆ ŕ— ËŸœÁË˙› ‚›Œ ڜŸÁ
.˟͟˜ƒ Á͕ ÁÍ ‚Ë…› ŕƒ ˙ƒ‚Ÿ…‹Ë ß ŘŸÍ… ŕ߉œ ˟‚ƒ ß





‚Ë…› ؟͐…
Ĺé‹Á ‚éžé‹šé— ‚ƒ ԃ…Í› ŕ— á˗ ˙‚ŕœËƒ ŕƒ Öß‡Í ˙Á̓ method ŕ›™— ÎÁ Á߂‡
‚éŸ ËéœÍÁË˙é› ŕ‚˜œ ÁÍ Ĺ—‡ƒŔ şŽß ‚Ÿ ‚Ë™Ÿ• ŕ—ŸŸ‚‡œŔ ÎÁ .˜—˙› ŕ˂•…‹Á
ŕßšé ŕƒ .˜Ÿ‚›œ˙› ɟ͌… ÁÍ Đš— ‚Ÿ ŗ‡ƒŔ ˙‚Í‚…•Í ‚Ë…› ŹÁÍ Đš— ͟˂–›
Ëé— ÍË Ë…› ؟͐… ˙Á̓ .˜ߌ˙› ؟͐… ‚ž‹š— ŢßÍË Ü›‚— ÍßÔ ŕƒ Á߂‡ ˙‚Ë…›
.˟Ÿ‚›œ ŕ˂•…‹Á ͟ΠÍ߅‹Ë ÎÁ ˙™Á

[ ( 'public' | 'private' | 'protected' ) ]
  ( [ 'abstract' ] | [ 'final' ] [ 'static' ] [ 'native' ] [ 'synchronized' ] )
    return_data_type method_name '(' [ parameter_list ] ')'
    compound_statement

ËéŸéŸ‚é… .ŋÁ ŕˌ ܟ—Œ… compound Ĺ͂ƒ ŕÁ͛ ŕƒ Ë…› ˟삅 ÎÁ ˅› ؟͐…
˙‚éŕééŠŒ› ŹÍ…›Á͂„ ŋŸ™ Ź˙…Œ˜Î‚ƒ ˙ÁŕËÁË Öߜ ŹË…› ݂œ ŕ˜œ— ҊŒ› ŹË…›
ÎÁ ˙é—ßé™éƒ compound Ĺ͂郏 .ŋÁ ł삜†…‹Á ÖÁߜÁ ß ‚modifier Ź˙ƒ‚Ÿ…‹Ë
ÁÍé• ÁÍ Ëé…é› ŕé— áËé— .Ëߌ˙› Á͇Á ˅› ˙œÁߊÁ͕ ݂˜œ ÍË ŕ— Ĺ‹Á ĹÁ͂ƒ
.ËÍÁË Ý‚œ ˅› ŢÁߊ Á͕ ˜Áߊ˙›

ŕ˂é•é…é‹Á ßÍÎÍ Ĺ‚é›é™é— ÎÁ ˅› áÍÁ̘ ݂œ ˙Á̓ .ŋÁ ˅› ͘œ‚Ÿƒ ˅› ݂œ
.˟œ—œ

ËéœÁË͘˙› ΂ƒ ˅› ŕ— Ĺ‹Á ˙Ÿ‚ŕËÁË ÍŸË‚–› Öߜ ͘œ‚Ÿƒ returnŹ ˙ÁŕËÁË Öߜ
.˜ÁË͘˙›œ ΂ƒ ÁÍ áψ ˅› ŕ— Ëœ—˙› ҊŒ› ‚Ÿ

‚Ÿ Boolean Źbyte Źchar Źdoulde Źfloat Źint Źlong ˜œÁ߅˙› ˙ÁŕËÁË ÖÁߜÁ
.˜Œ‚ƒ short







‘‡Í› ˙ÁŕËÁË Öߜ ŕ‹‚œŒ
ÎÁ ŕËéŒ ŕé…銂‹ ŗ‡ƒŔ ŕƒ Öß‡Í Ë…› ŹËË͘ ҊŒ› ‘‡Í› ˙ÁŕËÁË Öߜ ŕ‹‚œŒ ͘Á
.˜ÁË͘˙› ΂ƒ ÁÍ ˙ÁŕËÁË Öߜ

˙…‹Ÿ™ ŕÁߊ™Ë ÍßÔ ŕƒ ËŸœÁ߅˙› ‚›Œ .ËÍÁË ÍÁ͖ ŗÁ̓ ŕ‡ ڟ ˅› ͝ ܂ƒœËƒ
ÍéŸéŸé“é…é› ͝ .˟Ÿ‚›œ ؟͐… ‚ ŗÁ̓ ޟƒ ÁÍ ‚ÍŸŸ“…› (‚›‚— ڛ— ŕƒ) ÎÁ
ŹËßéŒ ˙é› ŕ˜Áߊ Á͕ ˅› ŕ—Ÿ›‚˜œ .Ëߌ ˙› ŕ˟›‚œ ͅ›Á͂„ ڟ Źŕˌ ؟͐…
ß ‚éžœ‚›ß˜ÍŔ ËÁː… .Ëߌ˙› ŕËÁË Í߃ ˅› ŕƒ (‚žœ‚›ß˜ÍŔ) ĹÁ͂ƒ ÎÁ ˙…‹Ÿ™
ß ‚éÍ酛Á͂„ ËÁː… ‚ƒ ˟‚ƒ (ŋÁÍ ß Äˆ ߅ͅ ŕƒ) ނ›ß˜ÍŔ ͝ ˙ÁŕËÁË Öߜ
params Íßé…ÁÍé„Á ŹËé…é› Íé…é›Á͂„ ŋŸ™ .ˌ‚ƒ ˙—Ÿ ͅ›Á͂„ ͝ ˙ÁŕËÁË Öߜ
.Ëߌ˙› ŕ˟›‚œ

ŕéƒ Ëé…é› .ËéŸéË Í߃ ˅› ŕƒ ÁÍ Ţ‚›ß˜ÍŔ ˜ˆ ‚Ÿ ȟ ŹË…› ˙œÁߊÁ͕ ˙Á̓
ÁÍ ÍÁ˖› Є‹ ß ŃÎÁË̈́ ÁÍ ‚Í…›Á͂„ ͟˂–› .˜—˙› Á˟„ ˙‹Í…‹Ë ‚žœ‚›ß˜ÍŔ
ŕ郋‚‰› ˙Á̓ á˅› ŕ— ËŸœ— Ó͕ Źŕœß›œ ˙Á̓ .˜ÁË͘˙› ΂ƒ ˅› ŢÁߊÁ͕ ŕƒ
Đ鄋 ß ËË˙› Í߃ ˅› ޟÁ ŕƒ ÁÍ áÍÁ˖› ‚›Œ ŕ›‚œÍƒ ˗ ˟Áŕ…Š‚‹ Ëˏ ŕŒŸÍ
Є ß Ë͟˜˙› ŕÔ߃͛ ͅ›Á͂„ ٟÍÔ ÎÁ ÁÍ Ţ‚›ß˜ÍŔ ŹË…› .˜Áߊ˙› Á͕ ÁÍ Ë…›
.˜ÁË͘˙› ΂ƒ ŢÁߊÁ͕ ŕƒ ÁÍ Ëˏ ŕŒŸÍ ŃÎÁË̈́ ÎÁ

class MathUtilities
{
   int sum (int limit)
   {
      System.out.println ("limit = " + limit);

      System.out.println ("total = " + total); // Compiler error.

      int total;

      for (int i = 1; i <= limit; i++)
         total += i; // Compiler error.

      System.out.println ("i = " + i); // Compiler error.

      return total; // Compiler error.
   }
}

ŘéŸÍéé… limit ͅ›Á͂„ ‚ƒ Sum() ݂œ ŕƒ ÁÍ á˅› MathUtilities Ůߕ ˗ ÍË
ÁÍ Öߛ‡› ß ŕËߛœ ŕƒ‹‚‰› ÁÍ limit ‚… ą ÎÁ ɟ‰ ËÁˏÁ ‘›‡ ˅› ޟÁ .˜—˙›
.˜ÁË͘˙› ΂ƒ

ß ŕé…éŠ‚é‹ ÁÍ limit ͟Ÿ“…› JVM .ŋÁ Sum() ͅ›Á͂„ Limit ŕ— ËŸŸ‚›œ ŕ‡ß…
Ëé…é› ËéŸéŸ‚é… ŕÁ͛ ŕƒ Úߙƒ ŢßÍË Ĺ͂ƒ .˜—˙› ‹…œÁ ÁÍ Ţ‚›ß˜ÍŔ ÍÁ˖›
ŕéƒ .Ëéœé— ÁËéŸé„ ˙‹Í…‹Ë limit ÍË Ë߇ߛ ނ›ß˜ÍŔ ÍÁ˖› ŕƒ ËœÁ߅˙› Sum()
Íé…é›ÁÍ‚é„ Ü‚é‰Íéžéƒ .ŋÁ ˙™— Úߙƒ ÍË limit şßÍ ĹŸ™ƒ‚– ‚Ÿ ŕÎ߉ ˙…Í‚ƒ
ŕËéŒ ŘŸÍ… ͘ŸË ˅› ˙œŸ .Ë͟˜ ÍÁ͖ ˙ƒ‚Ÿ…‹Ë ËÍߛ Úߙƒ ÎÁ Ç͂Š ˜Á߅˙›œ
ޅ•‚Ÿ ނŸ‚„ Ӊ› ŕƒ .˜— Á˟„ ˙‹Í…‹Ë limit ŕƒ ËœÁ߅˙›œ MathUtilities ÍË
.˜—˙› Ř̉ ÁÍ Í…›Á͂„ JVM ŹË…› ˙Á͇Á

ŕéƒ ˙é™é‰› ͟Ÿ“…› ŹÍŸŸ“…› ؟͐… Ĺ͂ƒ .˟œ— ŕ‡ß… Total ؟͐… ŕƒ ŢŸœˆ›
˅› Úߙƒ ˙Á̓ ͅ›Á͂„ ˜œ‚› ˙™‰› ͟Ÿ“…› ޟÁ .˜—˙› ؟͐… ÁÍ Total ݂œ
ͅ›Á͂„ ؚŠÍƒ ß Ĺ‹Ÿœ ˙ƒ‚Ÿ…‹Ë ܃‚– Úߙƒ ÎÁ Ç͂Š ÎÁ ͟Ÿ“…› ޟÁ .ŋÁ ˙™‰›
˙‚ž…œÁ ‚… ŕˌ ؟͐… ŕ— ˙Ÿ‚‡ ÎÁ ŢŔ ŕËßˉ› Óߏ ÍË .ŋŸœ ˙™— Úߙƒ ŢŔ ŕÎ߉
ÁËéŸé„ ˙‹Í…‹Ë ŢŔ ؟͐… ÎÁ ܃– ͟Ÿ“…› ŕƒ ËŸÁߊ˙› ŕ— ËŸœ— Ó͕ .ŋÁ Úߙƒ
żËË˙› ˙ßÍ ŕˆ ËŸœ—

// Compiler error
System.out.println ("total = " + total);

.˟œ— Á˟„ ˙‹Í…‹Ë ŢŔ ŕƒ ÍŸŸ“…› ؟͐… ÎÁ џ„ ˟œ—œ ˙‹ ŕ‚˜ˆŸ

Ĺ͂ƒ total+=i; .ˌ‚ƒ ߅ ÍË ß… ˜Á߅˙› Úߙƒ ŕ— ËË˙› ނŒœ Ůߕ ˗ ŕߚƒ
ÍÁÍé– Ë酛 Úߙƒ ŢßÍË Úߙƒ ޟÁ .ŋÁ (++I;timil=>i ;ą=i )int ˙Á̓ ˙Áŕ˂‹
ÎÁ Ë韝Áߊƒ ͘Á .ŋÁ ˙™‰› total+=i; Úߙƒ ˙Á̓ i ˙™‰› ͟Ÿ“…› .ŋÁ ŕ…•Í˜
ŕ‚é˜éˆŸ .˝Ë˙› ˙ßÍ Í™Ÿ‚„›‚— ˙‚ÔŠ ŹËŸœ— Á˟„ ˙‹Í…‹Ë i ŕƒ Ë…› Úߙƒ ٟÍÔ
Úßé™éƒ ÍË ŕËéŒ ŘéŸÍ… ˙™‰› ͟Ÿ“…› ŕƒ Í…˙‡Í‚Š Úߙƒ ٟÍÔ ÎÁ ‚… ˟œ—œ ˙‹
.˟œ— Á˟„ ˙‹Í…‹Ë ͅ˙™ŠÁË

ËÍߛ ÎÁ џ„ ÁÍ ‚žœŔ ˟‚ƒ .˜ÍßŔ˙› џ„ Ϝ ÁÍ á͘ŸË ܗŒ› ˙™‰› ˙‚ÍŸŸ“…›
Ë韝Áߊ ͙Ÿ‚„›‚— ˙‚ÔŠ ĹÍߍœŸÁ ͟’ ÍË .Ëߛœ ˙Ë ÍÁ˖› ŢËÁË ÍÁ͖ ˙ƒ‚Ÿ…‹Ë
ÁÍ Íé™éŸ‚é„é›‚é— ˙‚ÔŠ total ß total+=i ŹËߌœ ˙Ë ÍÁ˖› total ͘Á .ŌÁË
ÍéŸéŸé“é… int_total=0; ŕéƒ ÁÍ total Ź‚‚ÔŠ ޟÁ ɚÁ ˙Á̓ .˜Ë˙› ŕ‡Ÿ…œ
.˟œ— ˙Ë ÍÁ˖› ÁÍ ˙™‰› ˙‚ÍŸŸ“…› ŕÍÁߛ .˟Ë

ŕƒ ÁÍ áÍÁ˖› return ŕ›™— .ݟË˙› ÍÁ͖ ˙‹Í̓ ËÍߛ ÁÍ total return Ĺ͂ƒ
͟ΠÍ߅‹Ë ˙™Á ˗ ÍË return Ĺ͂ƒ ɟ͌… ˙Á̓ .˜ÁË͘˙› ΂ƒ ˅› ŢÁߊÁ͕
áËéŸé™é— ŕé›é™é— ÎÁ return Ĺ͂ƒ return [expression] .˟̓ƒ ͂— ŕƒ ÁÍ
Ĺ͂éƒé Ź˙ÁŕËÁË Ößéœ Ĺé™‚é‰ Î‡ ŕƒ .ŋÁ ŕˌ ܟ—Œ… Ĺ͂ƒ ŕÁ͛ ŕƒ return
Ößéœ ŢŔ ÍË ß ËÍéŸé˜ ÍÁÍé– return ܂éƒéœËƒ Ĺ͂ƒ ˟‚ƒ ŕÍÁߛ ˅› return
˙ÁŕËÁË Ößéœ ÎÁ Íé˜Á ŕߚééƒ .Ĺé‹Á ˙闟 ˅› return ˙ÁŕËÁË Öߜ ‚ƒ ˙ÁŕËÁË
ß Ë郂Ÿ˙› ŕ›…‚Š return Ĺ͂ƒ ٟÍÔ ÎÁ ß Ë…› ÎÁ Á͇Á ŹËߌœ œ…‡Á return
Ëé— Í™Ÿ‚„›‚— ˙‚ÔŠ ͂žˆ ŕ— ÚœŸÁ .˝Ë˙› ˙ßÍ Í™Ÿ‚„›‚— ˙‚ÔŠ ĹÍߍœŸÁ ͟’ ÍË
˙é‹Í̓ ÁÍ ÍŸÎ Ë— ˙˜Ëœ—Á̈́ żËŸœÁߊ˙› Á͕ ÁÍ Sum() ŕœß˜ˆ ŹËŸË͘ ɚÁ Ůߕ
:˟Ÿ‚›œ

MathUtilities mu = new MathUtilities (); int sumTotal = mu.sum (10);

ÎÁ ÁÍ Sum() Đé„é‹ ß Ë΂‹˙› MathUtilities К— ÎÁ ÁÍ ˙…—‡ƒŔ ˙˜Ëœ—Á̈́ ޟÁ
ą ËÁˏÁ ‘›‡ Sum() .˜Áߊ˙› Á͕ ą° Ţ‚›ß˜ÍŔ ‚ƒ mu ŗ‡ƒŔ ‘‡Í› ͟Ÿ“…› ٟÍÔ
˙é› Ă‚é‹…œÁ total ŕƒ Đ„‹ .˜ÁË͘˙› ΂ƒ ÁÍ ŕ‡Ÿ…œ ß ŕË͗ ŕƒ‹‚‰› ÁÍ ą° ‚…
Íé˜Á żËƒ‚Ÿ˙› ŕ›ÁËÁ ˙œ‚—› ŕˆ ÎÁ ŕ›‚œÍƒ ˙Á͇Á return Ĺ͂ƒ ˙Á͇Á ‚ƒ .Ëߌ
Ëé…é› ˙éœÁߊÁ͕ ÎÁ ːƒ Ĺ͂ƒ ÎÁ Á͇Á ŹËŒ‚ƒœ Ĺ͂ƒ ÎÁ ˙ŒŠƒ ˅› ˙œÁߊÁ͕
˙‚éÍßé…Á̈́Á ÎÁ ˙ސƒ ˜̈́Á ˅› ˙œÁߊÁ͕ ͘Á ŹŢŸÁ Ëß‡ß ‚ƒ .˃‚Ÿ˙› ŕ›ÁËÁ
ŕé›ÁËÁ ŹËœ— ˙› ˙ƒ‚ŸÎÍÁ ÁÍ ‚ËœÍ„Á ͟‚‹ ŕ— áÍ߅Á̈́Á ‚ƒ Á͇Á ŹËŒ‚ƒ Ĺ͂ƒ
.˃‚Ÿ˙›

ŕé›ÁËÁ ˙霂—› ŕˆ ÎÁ return ÎÁ Є ŕ›‚œÍƒ ˙Á͇Á ŕ— Ëߌ˙› ŕ‡ß…› JVM ŕœß˜ˆ
Ëé…é› ˙œÁߊÁ͕ ĐÍËŔ stack ݂œ ŕƒ ˙ÁŕËÁË Í‚…Š‚‹ ÎÁ ŕ˂•…‹Á ‚ƒ JVM żËƒ‚Ÿ
Íßé…é‹Ë ĐÍËŔ ŹËéœÁßéŠéƒ Á͕ ÁÍ Ë…› JVM ŕ—œŸÁ ÎÁ џ„ .˜— ˙› áÍÁ˞˜œ ÁÍ
Úßé™éƒ ˙Á͇Á ŕ— ˙›‚˜œ .˜— ˙› push ˅› ˙œÁߊÁ͕ ŕ…Œ„ ÍË ÁÍ áːƒ ܛ™Á
ÁÍ ĐÍËŔ ŢéŸÁ JVM Ë酛 ˙‚ž…œÁ ÎÁ ‚Ÿ return Ĺ͂ƒ ÎÁ ‚Ÿ ˜—˙› Úͅ ÁÍ Ë…›
.˜—˙› POP ˅› ˙œÁߊÁ͕ ŕ…Œ„ ÎÁ



˙ƒ‚Ÿ…‹Ë ˙‚ŕŠŒ›
.ËéŸéŸ‚雜 ؟͐… protected ‚Ÿ public Źprivate ĹÍߍƒ ÁÍ Ë…› ڟ ˟œÁ߅˙›
.Ëéœé— ˙é› ŢŸŸ… ÁÍ ‚ž‹š— ͟‚‹ ‚Ÿ ˗ ÍË Ë…› ˙ƒ‚Ÿ…‹Ë ŕ߉œ ˙ƒ‚Ÿ…‹Ë ŕŠŒ›
.ˌ‚ƒ˙› ˙œÁߊÁ͕ ܃‚– ͟’ 𛂗 ‚… ˙œÁߊÁ͕ ܃‚– 𛂗 ÎÁ ˙ƒ‚Ÿ…‹Ë ŕËßˉ›

˙郂Ÿ…‹Ë Éԋ Á߂‡ ŹËŸœ—œ ؟͐… ˙ƒ‚Ÿ…‹Ë ŕŠŒ› á˟™— ŕ›™— ‚ƒ ÁÍ á˅› ͘Á
Üéƒ‚é– ŕé…é‹éƒ ނ雝 ŢßÍË ˙‚ž‹š— ŕ› ß Ëߊ К— ÍË Ë…› ŢŔ ÍË ŕ— Ó͕ џ„
ŕé…鋃 ނ› ÍË ŹĐš— ͝ ÍË Ë߇ߛ ˅› ͝ .˜—˙› ‹…œÁ ÁÍ ŹËŒ‚ƒ ˙œÁߊÁ͕
ÁÍé• ÁÍ Ëé…é› ŢŔ ˜Á߅˙›œ ŕˌ ˙œÁߊÁ͕ ˅› ˙߂‰ К— Á͟ΠŹËߌ˙›œ ؟͐…
.˜Áߊƒ

class Temperature
{
   private int degrees;

   void setDegrees (int d)
   {
      degrees = d;
   }

   int getDegrees ()
   {
      return degrees;
   }
}

ŕéƒ ŹËéœËéŒ ŘéŸÍ鐅 ŕ…‹ƒ ނ› ÍË ‚ž‹š— ͟‚‹ ß Temperature ÍË ‚Ë…› Ԗ•
ÁÍé• ÁÍ setDegrees() ŹgetDegrees() ËéœÁßé…˙é› Temperature ŕé— ˙Áŕéœßé˜
.˜Áߊƒ

ËéœÁßé…˙é› ŢŔ К— ÍË ŕˌ Ղ‰™ ˗ Ԗ• ŹËŸŸ‚›œ ؟͐… private ÁÍ á˅› ͘Á
Üéƒ‚é– ÍéŸé’ ‚éŕé…鋃 ͟‚‹ ÍË ‚ž‹š— ͟‚‹ ˙Á̓ ˅› ß ËœÁߊƒ Á͕ ÁÍ Ë…›
.ŋÁ ˙ƒ‚Ÿ…‹Ë

class MathUtilities
{
   private int factorial (int n)
   {
      if (n == 0)
         return 1; // 0! (0 factorial) returns 1

      int product = 1;

      for (int i = 2; i <= n; i++)
         product *= i;

      return product;
   }

   int permutation (int n, int r)
   {
      return factorial (n) / factorial (n - r);
   }
}

ÁÍé• ÁÍ factorial() ËéœÁßé…˙› Ůߕ MathUtilities К— ÍË ŕˌ Ղ‰™ ˗ Ԗ•
factorial() .Ĺé‹Á Permutation() ˙ÁÍéƒ ˙—›— ˅› factorial() ˅› .˜Áߊƒ
á˅› ˙…–ß .˜Áߊƒ Á͕ К— ÎÁ Ç͂Š ÁÍ ŢŔ ŢÁ߅˙›œ ŕ— ŕˌ ˙‰ÁÍÔ ˙Áŕœß˜ ŕƒ
.ËßéŒ ŘéŸÍ鐅 private ˟‚ƒ ˙—›— ˅› ŹËÍÁË Ëß‡ß Đš— ‚Ë…› ͟‚‹ ˙Á̓ Ԗ•
.˜œ—˙› ڛ— К— ˂œ› ˙‰ÁÍÔ ß Ĺ‚šÔÁ á΂‹ ނžœ„ ŕƒ ˙—›— ˙‚Ë…›

˙‚éžé‹šé— Í韂‹ ß Đš— ŢŔ ÍË ŕˌ Ղ‰™ ˗ ŹËŸŸ‚›œ ؟͐… public ÁÍ Ë…›Í˜Á
:˜œÁߊƒ Á͕ ÁÍ Ë…› ˜œÁ߅˙› ŕ…‹ƒ

public class Color
{
   private int color;

   public int getColor () { return color; }
}

Üéƒ‚é– ‚éŕé…é‹éƒ ŕ› ˙Á̓ color ‚… Ëߌ˙› Ë public ĹÍߍƒ color ؟͐…
˙‹Í…‹Ë ܃‚– ‚ŕ…‹ƒ ŢŔ ÍË ˙…Íߍ ÍË getColor() ޟÁ Ëß‡ß ‚ƒ .ˌ‚ƒ ˙ƒ‚Ÿ…‹Ë
ŹËéŸéŸ‚›œ ؟͐… protected ÁÍ á˅› ͘Á ݂‡œÁ͋ .Ëߌ ؟͐… public ŕ— Ĺ‹Á
Ĺ߂•… ޟÁ ‚ƒ .˜—˙› á΂‹ ŕŸƒŒ Ó͕ џ„ ˙ƒ‚Ÿ…‹Ë Éԋ ‚ƒ ÁÍ á˅› Íߗ̛ ˅›
.˜Œ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë protected ˙‚Ë…› ŕƒ ËœœÁ߅˙› ŕ…‹ƒ ͝ ˙‚ž‹š— ͟Πŕ—

class Employee
{
   // Several fields are declared but not shown in this example.

   protected double computeSalary ()
   {
      return hoursWorked * hourlyRate;
   }
}

ŕé›é ß ŕ酋ƒ ނ› ÍË ŕˌ ؟͐… ‚ž‹š— ͟‚‹ Employee ÍË ŕˌ Ղ‰™ ˗ Ԗ•
.˜œÁߊƒ Á͕ ÁÍ computeSalary() ˜œÁ߅˙› Employee ˙‚ž‹š— ͟Î





‚Modifire
‚Ÿ static ‚Ÿ ß abstract Źfinal á˟™— ł›™— ÎÁ ˙—Ÿ ‚ƒ ÁÍ ‚Ë…› ˟œÁ߅˙›
.˟œ— ؟͐… synchronized ‚Ÿ ß native

ß Ëßéƒ ËÁߊ ˅› signature ܛ‚Œ Ԗ• ŹËŸŸ‚›œ ؟͐… abstract ÁÍ á˅› ͘Á
ËéŸ‚éƒ ËßéŒ˙é› ŘéŸÍéé… abstract Ë酛 ŢŔ ÍË ŕ— ˙‹š— ŕߚƒ .ËÍÁ˜ ˙—ß™ƒ
Źnative Źsynchronized ނ›Î› ˜Á߅˙›œ abstract ˅› .Ëߌ ؟͐… abstract
ŹËéŸéŸ‚雜 ؟͐… final ÁÍ á˅› ͘Á .Ëߌ ؟͐… private ‚Ÿ final Źstatic
ËÍßé› Ź‚éžé‹šé— ÍéŸÎ Ôé‹ß… ˜Á߅˙›œ ˅› ŕ— Ëœ—˙› ܍‚‰ ނœŸ›ÔÁ ͙Ÿ‚„›‚—
.Ë͟˜ ÍÁ͖ ˙ƒ‚Ÿ…‹Ë

ËßéŒ˙é› ŕé…銂œŒ ˅› К— ĹÍߍ ŕƒ Ë…› ŢŔ żËŸœ— ؟͐… static ÁÍ á˅› ͘Á
ŕéˆéœ‚éœéˆ ܂é‰Í鞃 .ˌ‚ƒ ŕ…ŒÁË ˙‹Í…‹Ë К— ˙‚Ë™Ÿ• ŕƒ ËœÁ߅˙› Ԗ• Á͟Î
˙‚éË陟• ŕƒ ËœÁ߅˙› Á͟ΠŹËߌ˙› ŕ˟›‚œ instance ˅› ŹËߌœ ҊŒ› static
.˜— Á˟„ ˙‹Í…‹Ë К— ß instance

ŕéœËéƒ ŹËßéŒ˙› ŕěÁÍÁ ˅› signature Ԗ• ˟Ÿ‚›œ ؟͐… native ÁÍ á˅› ͘Á
.Ëߌ˙› ŕ͟ŠĚ Ý͕Ś„ ŕĎŸß ŕœ‚Šƒ‚…— ÍË ß ŕˌ ŕ…Œßœ C++ ŕƒ Ë…›

ËéœÁßé…˙› thread ڟ ŕՉ™ ͝ ÍË Ô–• ˟œ— ؟͐… synchronized ÁÍ á˅› ͘Á
.˟‚›œ Á͇Á ÁÍ Ë…› ˗





Instance ˙‚Ë…›
؟͐… ˙Á̓ .ËÍÁË ˙‹Í…‹Ë К— ˙‚Ë™Ÿ• ß instance ˙‚Ë™Ÿ• ŕƒ instance ˅›
ŇéŠéŒé› instance Ëé…é› signature ÍË ÁÍ statice á˟™— ŕ›™— instance ˅›
.˟œ—œ

class Employee
{
   private double salary;

   void setSalary (double s)
   {
      salary = s;
   }
}

Ë錂éƒ˙é› instance ŕé— Salary Ë陟• ŕƒ ŕ— Ĺ‹Á instance ˅› setSalary()
Ëé™éŸ• ݂œ› ŕ— ËÍÁË áͅ›Á͂„ ‚ƒ instance ˅› ڟ ˟œ— Ó͕ .ËÍÁË ˙‹Í…‹Ë
˙ÁÍéƒ żĹé‹Á Í鋟› ݂œ› ˙Ÿ• ŕƒ Í…›Á͂„ ÍÁ˖› ‹…œÁ ‚ŸŔ .ŋÁ instance
.ݟœ—˙› ˙‹Í̓ ÁÍ ÍŸÎ Ü‚†› ӹ́ ޟÁ ŕƒ Ę‹‚„

class Employee
{
   private double salary;

   void setSalary (double salary)
   {
      this.salary = salary;
   }
}

Ëé…é› ŕéœËéƒ .Ëéœé—˙é› ŘŸÍ… ÁÍ salary ݂œ ŕƒ áͅ›Á͂„ setSalary() ˅›
ÍßéŐéœé› ŢéŸÁ ˙ÁÍéƒ .Ëéœé—˙é› Ă‚é‹…œÁ salary ˙Ÿ• ŕƒ ÁÍ salary ͅ›Á͂„
.˜—˙› ŕ˂•…‹Á this á˟™— ŕ›™— ÎÁ setSalary()

ŗ‡ƒŔ ß Ĺ‹Á Á͘ ˙Œ ˙‚žœ‚ƒÎ ͟‚‹ ß Á߂‡ ÍË ĂŸ‡ á˟™— ł›™— ÎÁ ˙—Ÿ this
this ÎÁ Đé„ ÁÍ Ëé™éŸé• Ý‚éœ ˙é…é–ß .Ë霗˙› ҊŒ› ˙™Á ˗ Éԋ ÍË ÁÍ ˙™•
.ޗ Á˟„ ˙‹Í…‹Ë ŗ‡ƒŔ ޟÁ ŕƒ Ů™…› ˙Ÿ• ŕƒ ŕ— Ĺ‹‚œ› ޟÁ ŕƒ ŹËŸÍ߂Ÿƒ

ŕƒ Ë…› ˙œÁߊÁ͕ ŕ߉œ .˟œÁߊƒ Á͕ ÁÍ instance ˅› ˟Áߊ˙› ŕ— ËŸœ— Ó͕
Ëé…é› ÎÁ ŹĐšé— ނ› ÍË á͘ŸË instance ˅› ÎÁ ˅› ‚ŸŔ ŕ— ËÍÁË ˙˜…‹ƒ ޟÁ
ÍË Đšé— Ë…› ÎÁ ‚Ÿ ß Đš— ނ› ÍË Đš— ˅› ÎÁ ŹÍ˜ŸË К— ÍË á͘ŸË instance
.Ëߌ ŕ˜Áߊ Á͕ á͘ŸË К—

ß Ý‚éœ ŢËß雜 ҊŒ› ‚ƒ К— ނ› ÍË Í˜ŸË instance ˅› ÎÁ ÁÍ instance ˅›
.˟œÁߊƒ Á͕ ˅› ނ›ß˜ÍŔ ŋŸ™

class MyClass
{
   void first () { second (true); }

   void second (boolean firstFlag)
   {
      if (firstFlag)
         System.out.println ("First flag.");
      else
         System.out.println ("Second flag.");
   }
}

ÓÍé• Ń韄 ނ›ß˜ÍŔ ÍÁ˖› ‚ƒ ÁÍ second() ˅› first() ݂œ ‚ƒ instance ˅›
‘é‡Íé› ÍéŸéŸ“…› ‚ƒ ÁÍ Ë…› ˙œÁߊ Á͕ ˟…‹Ÿœ Í߃‡› ‚›Œ .˜Áߊ˙› Á͕ true
.˟Ÿ‚›œ ŕÁ͛ ŗ‡ƒŔ

݂é‡éœÁ ͟ΠĹÍߍƒ ͘ŸË К— instance ˅› ٟÍÔ ÎÁ instance ˅› ˙œÁߊ Á͕
ŕéƒ ÁÍ Ĺé—é‡éƒŔ Ößé‡Í .˟΂‹ƒ ˙™ßÁ instance ˅› К— ÎÁ ÁÍ ˙…—‡ƒŔ Ëߌ˙›
Ëé…é› ËéœßŒŸ„ ŗ‡ƒŔ ŕƒ Öß‡Í ÍŸŸ“…› ß ŕËߛœ ‹…œÁ ŗ‡ƒŔ ŕƒ Öß‡Í ÍŸŸ“…›
.˟Ë ÍÁ͖ instance

class AnotherClass
{
   void callSecond ()
   {
      MyClass mc = new MyClass ();
      mc.second (false);

      new MyClass ().second (false);
   }
}

ŕéééƒ ÁÍ ŢŔ Ößééé‡Í ß Ë΂éé‹˙é› ÁÍ MyClass Ĺé—é‡éƒŔ CallSecond() Ëé…é›
Ëé…é› ˙éœÁßéŠ Á͕ ˙Á̓ mc ˜ߌŸ„ ÎÁ Є‹ .˜— ˙› ‹…œÁ mc.CallSecond()
.˜—˙› ŕ˂•…‹Á false ނ›ß˜ÍŔ ÍÁ˖› ‚ƒ seconds()

()dnoceSllaC ˅› ڟ ˙œÁߊÁ͕ ˙Á̓ ‚›Œ ŕ— Ĺ‹Á ޟÁ ͘œ‚Ÿ‚›œ AnotherClass
Ĺ͂éééƒééé ÓßéÍË .ËéŸÍÁËéœ Î‚éŸéœ Ĺé—é‡éƒŔ ŕéƒ Ößé‡Í ÍéŸéŸé“é…é› ŕéƒ
ŕéƒ Öß‡Í ÎÁ ß Ë΂‹ ˙› MyClass ÎÁ ÁÍ ˙…—‡ƒŔ new MyClass().second(False)
.˜—˙› ŕ˂•…‹Á second() ˙œÁߊÁ͕ ˙Á̓ ŗ‡ƒŔ

Instance ˅› ŕ— ˙‹š— ނ› ÍË Đš— ˅› ÎÁ Instance ˅› ˙œÁߊÁ͕ ŹÝ‚‡œÁ͋
Instance ˅› ŕ— Ĺ‹Á ˙…–ß ˜œ‚› ͘ŸË К— К— ˅› ÎÁ ‚Ÿ ËÍÁË ÍÁ͖ ŢŔ ÍË
Instance Ëé…é› ˙éœÁßéŠ ÁÍé• .Ë韜Áߊ˙› Á͕ ͘ŸË К— Instance ˅› ÎÁ ÁÍ
.Ë͟˜ ݂‡œÁ chanining ݂œ ŕƒ ˙—Ÿœ—… ڛ— ‚ƒ ˜Á߅˙›

class HelloGoodBye
{
   public static void main (String [] args)
   {
      new HelloGoodBye ().hello ().goodbye ();
   }

   HelloGoodBye hello ()
   {
      System.out.println ("Hello");

      return this;
   }

   void goodbye ()
   {
      System.out.println ("Goodbye");
   }
}

hello() ˅› ß Ë΂‹ ˙› ÁÍ HelloGoodBye ŗ‡ƒŔ HelloGoodBye ÍË main() ˅›
ÎÁ) Ĺ闇ƒŔ ނ› ŕƒ ÁÍ ˙reference Źhello() ŕ—œŸÁ ܟ™Ëƒ .˜Áߊ ˙› Á͕ ÁÍ
goodbye() ˅› ˙œÁߊ Á͕ ŹËœÁË͘˙› ΂ƒ this hello()'s return Ĺ͂ƒ ٟÍÔ
.Ëߌ˙› ܍…› hello() ˅› ˙œÁߊÁ͕ ނŸ‚„ ŕƒ



К— ˙‚Ë…›

.ËÍÁË ˙é‹Íé…é‹Ë К— ŢŔ ÍË ŕˌ ؟͐… К— ˙‚Ë™Ÿ• ŕƒ ŕ— Ĺ‹Á á˅› К— ˅›
.ݟœ—˙› ؟͐… К— ˅› signature ÍË ÁÍ static ŕ›™— К— ˅› ؟͐… ˙Á̓

class Employee
{
   private static int numEmployees;

   static void setEmployeeCount (int numEmp)
   {
      numEmployees = numEmp;
   }
}

˙Ÿ• ŕƒ ÁÍ numEmp ͅ›Á͂„ ÍÁ˖› Ůߕ ܂†› ÍË ()tnuoCeeyolpmEtes К— ˅›
áÍÁĚ阛‚œ numEmployee ĹÍߍƒ ͅ›Á͂„ ͘Á .˜— ˙› ‹…œÁ numEmployee К—
К— ݂œ ނ› ˙Ÿ• ŕƒ Í…›Á͂„ ‹…œÁ ˙Á̓ ŢŔ ÎÁ ˟…‹œÁ߅˙› ‚ŸŔ ŹË߃ ŕˌ
: ݟœ— ˙› ˙‹Í̓ ÁÍ ÍŸÎ Ü‚†› ӹ́ ޟÁ ŕƒ Ę‹‚„ ˙Á̓ żËŸŸ‚›œ ŕ˂•…‹Á

class Employee
{
   private static int numEmployees;

   static void setEmployeeCount (int numEmployees)
   {
      this.numEmployees = numEmployees; // Compiler error.
   }
}

˙限• К— instance ŕƒ Á͟Π˟œ— ŕ˂•…‹Á К— ˅› ÍË ŢŔ ÎÁ ˟œÁ߅˙›œ ‚›Œ
.ŋŸœ Ԃƒ…ÍÁ ÍË ˙‹š— instance ͝ ‚ƒ К— ˅› ß ËÍÁË ŕ͂ŒÁ

ÍË á͘ŸË К— ˅› ÎÁ К— ˅› ‚ŸŔ ŕ— ËÍÁË ˙˜…‹ƒ ޟÁ ŕƒ Ë…› ˙œÁߊÁ͕ ŕ߉œ
Ëé…é›ÎÁ ‚éŸ Đšé— Ţ‚é›é ÍË instance Ëé…é›ÎÁ ͘ŸË К— ŹĐš— ˅› К— ނ›
żËߌ˙› ŕ˜Áߊ Á͕ ͘ŸË К— instance

˙ÁÍéƒ .Ë韜Áߊƒ Á͕ К— ނ› ÍË Í˜ŸË К— ˅›ÎÁ ÁÍ Đš— ˅› ˟œÁ߅˙› ‚›Œ
.˟œ— ҊŒ› ͟Π܂†› ˜œ‚› ÁÍ Ţ‚›ß˜ÍŔ ŋŸ™ ß Ë…› ݂œ ˟‚ƒ Íß՜› ޟÁ

class FirstAndSecond
{
   static void first ()
      {
      System.out.println ("first");
      second ();
   }

   static void second ()
   {
      System.out.println ("second");
   }
}

‚é›éŒ .ËéœÁßéŠ˙é› Á͕ ÁÍ seconds() К— ˅› Ůߕ ܂†› ÍË first() К— ˅›
.˜Ë ÍÁ͖ К— ݂œ ˜ߌŸ„ ÁÍ Ë…› ˙œÁߊ Á͕ ŕ— ËŸ…‹Ÿœ Í߃‡›

݂œ ˜ߌŸ„ ÁÍ Đš— ˅› ˙œÁߊ Á͕ ͘ŸË К— ˅› ÎÁ К— ˅› ˙œÁߊ Á͕ ˙Á̓
.˟Ë ÍÁ͖ К—

class UseFirstAndSecond
{
   public static void main (String [] args)
   {
      FirstAndSecond.first ();
      FirstAndSecond.second ();
   }
}

ÍË ÁÍ seconds() ß first() ˙‚éééËééé…ééé› Ůßéé• Ü‚é†é› ÍË main() Ëé…é›
ÍÁÍé– Ëéœß錟„ ‚ƒ ÁÍ Í‚— ޟÁ main() ˅› .˜Áߊ ˙› Á͕ first_and_second
Ëé…é› ÎÁ ÁÍ Đšé— Ëé…é› Đšé— Ë…› ͝ ÍË .˝Ë˙› ݂‡œÁ FirstAndSecond ŢËÁË
.Ë韜— ҊŒ› ÁÍ Ţ‚›ß˜ÍŔ ŋŸ™ ß Ë…› ݂œ ˟œÁߊƒ Á͕ К— ނ› ÍË instance
.ŋÁ К— ނ› ÍË Í˜ŸË К— ˅› ڟ ÎÁ К— ˅› ˙œÁߊ Á͕ ˜œ‚› ͂— ޟÁ



ÁÍ Đšé— Ë…› ŕ— ˙…–ß ˜œ‚› ͘ŸË К— instance ˅› ÎÁ ÁÍ Đš— ˅› ݂‡œÁ͋
.˟œÎƒ Áˍ ˟œÁߊ˙› Á͕ ͘ŸË К— К— ˅› ڟ ÎÁ

instance ‚éŸ Đšé— ˙‚éËé…é› ŕƒ ‚žœ‚›ß˜ÍŔ Í߃ ŕ߉œ ŕ͂ƒÍË ˙ƒ™Ô› Ţߜ—‚…
:ËÍÁË Ëß‡ß Í‚—œŸÁ ˙Á̓ ŃßÍ ßË ÝËߛœœ ŢÁߜ

Íé˜ŕ͂éŒÁ ÎÁ ŕ˂é•é…é‹Á ‚éƒ ‚éŸ ß (call-by-value) ÍÁË閛 ÎÁ ŕ˂•…‹Á ‚ƒ
.(call_by_reference)

ŹË…‹Í• ˙› ˅› ͝ ŕƒ ÁÍ ˙„— ß ŕ…•Í˜ ˙„— ˅› ނ›ß˜ÍŔ ͝ ÎÁ call_by_value
ŢËÁË Íßéƒé ˙ÁÍéƒ call-by-value ÎÁ JVM .Ë郂éŸ˙›œ ͟Ÿ“… ˙™Á ނ›ß˜ÍŔ ß
Ĺé™‚é‰ ÍË ‚é›Á .Ëéœé—˙é› ŕ˂é•é…é‹Á ‚éËé…é› ŕéƒ ˙ÁŕËÁË ÖÁßéœÁ ÍéŸË‚–›
ނé›ß˜ÍŔ ˙‚Ë…› ˙œÁߊ Á͕ ނ—›Á ŕ— Öß‡Í Ţ‚›ß˜ÍŔ ĐÍËŔ call-by-reference
Ößé‡Í Ĺé—釃Ŕ ŕƒ Ţ‚›ß˜ÍŔ ͘Á) .ËÍßŔ ˙› ݝÁ͕ ÁÍ ŢŔ ˙‚Ë™Ÿ• ŕƒ ˙‹Í…‹Ë ß
(Ë韂雜 Öß‡Í ŕŸÁÍŔ ŕƒ Ţ‚›ß˜ÍŔ ͘Á) ނ›ß˜ÍŔ ͍‚œ ŕƒ ˙ƒ‚Ÿ…‹Ë ‚Ÿ (˟‚›œ
:˟Ÿ‚›œ ŕ‡ß… ł ŋŸ™ ŕƒ .Ëߌ˙› ŕËÁË Í߃

Listing 3. CBDemo.java

// CBDemo.java

class Employee
{
   private double salary;

   double getSalary () { return salary; }

   void setSalary (double salary) { this.salary = salary; }
}

class CBDemo
{
   public static void main (String [] args)
   {
      int v = 12;
      Employee e = new Employee ();
      e.setSalary (50000.0);

      System.out.println ("v = " + v);
      System.out.println ("e salary = " + e.getSalary ());

      changeArgs (v, e);

      System.out.println ("v = " + v);
      System.out.println ("e salary = " + e.getSalary ());
   }

   static void changeArgs (int x, Employee y)
   {
      x = 30;
      y.setSalary (30000.0);
   }
}

.Ëéœé—˙é› ˙éË ÍÁËé–é› ß ŘŸÍ… main() ˅› ÍË ÁÍ v ß e ͟Ÿ“…› ßË CBDemo
Öß‡Í ÍŸŸ“…› e ͟Ÿ“…› ß (ɟ‰ Ëˏ) integer ˙ÁŕËÁË Öߜ ̓ ˙œ…ƒ› v ͟Ÿ“…›
ŢéŸÁ Đé„é‹ .ËÍÁË˙é› ŕ‚阜 ÁÍ Employee ÎÁ ŕˌ ŕ…Š‚‹ ŗ‡Ŕ ŕƒ Öß‡Í ŕ— Ĺ‹Á
ŢéŸÁ .ËéœßŒ˙› ŕËÁË Í߃ ChangeArgs() К— ˅› ŕƒ Ţ‚›ß˜ÍŔ ŢÁߜƒ ‚ÍŸŸ“…
Ëé…é› ß (Ĺé‹Á v ŕéƒ ÔßéƒÍé› ŕ— áͅ›Á͂„) .˝Ë˙› ͟Ÿ“… ÁÍ x ͅ›Á͂„ ˅›
.˜Áߊ˙› Á͕ Employee ŗ‡ƒŔ ÎÁ ŕ˂•…‹Á ‚ƒ ÁÍ setSalary()

:˟Ÿ‚›œ ŕ‡ß… ͟Π˙‡ß͊ ŕƒ

v = 12
e salary = 50000.0
v = 12
e salary = 30000.0

ŕéƒ call-by-value ĹÍßé ŕéƒ ËéŸ‚éƒ v ÁĚé™ .Ë霗˙›œ ͟Ÿ“… v ŕ— Ĺ‹Á ɎÁß
ĹÍßééƒ e .Ĺé‹Á ŕË͗ ͟Ÿ“… eSalary ܂‰Í ŕƒ .Ëߌ ŕËÁË ËÍ߃ changeArgs
.ŋÁ ŕˌ ŕËÁË Í߃ call-by-reference



‚Ë…› Overload
Ëé…é› Overload ÁÍ Řé™é…éŠé› ˙‚Í…›Á͂„ ŋŸ™ ‚ƒ ‚›Á ݂œ› ˅› ˜ˆ ؟͐…
ß ‚éÍ…›Á͂„ ËÁː… ŹÝ‚œ ŕ— á˅› Š…œÁ ‚ƒ ÁÍ Ă‹‚œ› ˅› ͙Ÿ‚„›‚— .˜Ÿß˜
˙ÁŕËÁË ÖÁߜÁ ß Ţ‚›ß˜ÍŔ ËÁː… ˅› ˙œÁߊ Á͕ ݂œ ‚ƒ ͅ›Á͂„ ˙ÁŕËÁË ÖÁߜÁ
.˜—˙› Š…œÁ ŹËŒ‚ƒ ͂˜Î‚‹ ނ›ß˜ÍŔ

void print ()
{
   System.out.println ("Default");
}

void print (String arg)
{
   System.out.println (arg);
}

.Ëéœé—˙é› ÉéŸÍéŒé… ËéœÁŕËéŒ Overload ŕé— ÁÍ print() Ëé…é› ßË Ůßé• Ü‚†›
Ëé…é› print(Hello) ŕ—Ÿ™‚‰ ÍË ËœÁߊ˙› Á͕ ÁÍ š‚ƒ ˅› specifiyingprint()
.˜Áߊ˙› Á͕ ÁÍ ˙œŸŸ‚„

.ËßéŒ Overload Źreturn ˙ÁŕËÁË Ößéœ ŢËÁË Í韟“… ‚ƒ ‚žœ… ˜Á߅˙›œ ˅› ڟ
ŹËéœéŒ‚éƒ ŕ郂Œ› ˙‚Í…›Á͂„ ŋŸ™ ß ˙›‚‹Á ‚ƒ К— ڟ ÍË Ë…› ßË ŘŸÍ… ͘Á
.˝Ë˙› ‚ÔŠ ݂Ÿ„ ͙Ÿ‚„›‚—

int sum (int x, int y)
{
   return x + y;
}

long sum (int x, int y)
{
   return x + y;
}

݂éŸé„ ͙Ÿ‚„›‚— .˝Ë˙› ނŒœ Źŕˌœ Overload ŕ— ÁÍ sum() ˅› ßË Ůߕ ܂†›
˙ÁŕËÁË Ößéœ Ô閕 ß Ĺ‹Á Ë߇ߛ ˅› ‚ƒ ŕƒ‚Œ› ŕ— á˅› ؟͐… Á͟Π˝Ë˙› ‚ÔŠ
Ĺ߂é•é… sum() ˙‚éË…› ޟƒ ͙Ÿ‚„›‚— ŕœß˜ˆ .ŋŸœ ˙•‚— ËÍÁË Ĺ߂•…› return
żËߌ˙› Ü삖



‚Constructor
initialize ˙ÁÍéƒ ß Ë‚é‡éŸÁ Íé˜Ü› ‚ƒ ŕ— Ëœ…‹ ˙ÁŕĎŸß Ë…› ‚Constructor
Constructor ÍË ÁÍ ËßéŠ ÍéŐéœ ËÍßé› ˙éŒÍ‚•‹ ˗ .˜ߌ˙› ŕ˜Áߊ Á͕ ŗ‡ƒŔ
Ĺé‹éŸé™ ‚éƒ ËéœéœÁßé…˙› ŹËœ…‹ ˅› ‚Constructor ŕ—Ÿě‚‡œŔ ÎÁ .˟ËÍÁ͖
Ë韂ƒ Constructor ޟÁ Ëß‡ß ‚ƒ .˜ߌ ؟͐… ˙ƒ‚Ÿ…‹Ë ˙‚ŕŠŒ› ß ‚Í…›Á͂„
‚éƒ Ë韂郜 ‚Constructor ŕߚƒ .Ëߌ ˙› ؟͐… ŢŔ ÍË ŕ— ËŒ‚ƒ ˙‹š— ݂œ›
.Ëߌ ؟͐… return ˙ÁŕËÁË Öߜ

Ëé— ÔŠ ŕÁ͛ ŕƒ Codemo2 К— ŹË— ŢŔ ÍË .ݟË͘˙› ΂ƒ ą ś‹– ÍË ˛ ŋŸ™ ŕƒ
:Ë߃ ŕ˛Ŕ ͟Î

CODemo2 obj1 = new CODemo2 ();

ČéŸé ŢéŸÁ Ëßé‡ß ‚éƒ .Ĺé‹Á Constructor ÚéŸ CoDeomo2() ŕé— ÝËß雜 ŕ͂ŒÁ
ÜéÁ ÍË żÁ͈ ŋÁ ŕˌœ ؟͐… CoDemo2 ÍË CoDeomo2() ݂œ ŕƒ ˙ Constructor
ÚéŸ Íé™éŸ‚é„›‚— ˟œ—˙›œ ҊŒ› ÁÍ Constructor ß ŕËߛœ ؟͐… ÁÍ ˙‹š— ˙…–ß
:Ë΂‹˙› ˙™‚Š ͅ›Í‚„ ‚ƒ Ó͕ џ„ Constructor

class X
{
}

ÁÍ x Íé™éŸ‚é„雂— ‘–Áß ÍË .ŋŸœ ÍßÔ ŢŸÁ ‚›Á ŋÁ ˙™‚Š x ŕ— Ë‹Í˙› Í՜ ŕƒ
:˜Ÿƒ˙› Ó͕ џ„ ނ›ß˜ÍŔ Ţß˃ Constructor

class X
{
   X ()
   {
   }
}

ČéŸé ŕé— Ë΂é‹˙é› ÁÍ Ó͕ џ„ ނ›ß˜ÍŔ Ţß˃ Constructor ˙›‚˜œ ͙Ÿ‚„›‚—
ÍË ÁÍ áÍé˜ŸË Constructor ͘Á .ˌ‚ƒ ŕˌœ ؟͐… К— ÍË á͘ŸË Constructor
.Ë΂‹˙›œ Ó͕ џ„ ނ›ß˜ÍŔ Ţß˃ Constructor ͙Ÿ‚„›‚— ŹËŸœ— ؟͐… К—

class X
{
   private int i;

   X (int i)
   {
      this.i = i;
   }
}

class UseX
{

   public static void main (String [] args)
   {
      X x1 = new X (2);

      X x2 = new X (); // Compiler error.
   }
}

Íé™éŸ‚é„é›‚é— ˙‚ÔŠ Ë ނ›ß˜ÍŔ Ţß˃ Constructor ˙œÁߊ Á͕ ˙™ƒ– ܂†› ÍË
.ËÍÁ˜ Ëß‡ß Constructor Á͟ΠËߌ˙›

ÍÁ˖› ˗ ŹÍ™Ÿ‚„›‚— .˜œ—˙› ˙Ë ÍÁ˖› ÁÍ instance ˙‚Ë™Ÿ• ‚Constructor
.˜—˙› ˂‡ŸÁ Constructor ÍË ÁÍ ˙Ë

class X
{
   int i = 5;

   X ()
   {
      System.out.println (i);
   }
}

class UseX
{
   public static void main (String [] args)
   {
      X x = new X ();
   }
}

Íé™éŸ‚é„雂— "‚›™‹› .Ë߃ ˝Áߊ ľ ŕ›‚œÍƒ ˙‡ß͊ ŹËŸŸ‚›œ Á͇Á ÁÍ UseX ͘Á
.˜— ˙Ë ÍÁ˖› system.out.println(i) ÎÁ ܃– ÁÍ i ˟‚ƒ

݂é‡éœÁ ŹĹ陂‰œŸÁ ÍË ËŸœ— ؟͐… К— ڟ ÍË Constructor ˜ˆ ˟œÁ߅˙› ‚›Œ
.ŋÁ̄͟ ނ—›Á ؙ…Š› ˙‚˙Ë ÍÁ˖›

´ ŋŸ™

Listing 4. Geometry.java

// Geometry.java

class Circle
{
   private int x, y, r;

   Circle ()
   {
      // System.out.println ("Before");
      this (0, 0, 1);
      System.out.println ("After");
   }

   Circle (int x, int y, int r)
   {
      this.x = x;
      this.y = y;
      this.r = r;
      }

   int getX () { return x; }
   int getY () { return y; }
   int getRadius () { return r; }
}

class Geometry
{
   public static void main (String [] args)
   {
      Circle c1 = new Circle ();
      System.out.println ("Center X = " + c1.getX ());
      System.out.println ("Center Y = " + c1.getY ());
      System.out.println ("Center Radius = " + c1.getRadius ());

      Circle c2 = new Circle (5, 6, 7);
      System.out.println ("Center X = " + c2.getX ());
      System.out.println ("Center Y = " + c2.getY ());
      System.out.println ("Center Radius = " + c2.getRadius ());
   }
}

ßË circle Đšé— .Ë霗˙› ؟͐… ÁÍ Circle ß geometry К— ßË Geometry.java
:ŋÁ ͟Π˗ ˙߂‰ ß ËÍÁ˜ ˙œ‚›ß˜ÍŔ Constructor ޟ™ßÁ :ËÍÁË Constructor

.˜Áߊ˙› Á͕ ÁÍ ł ނ›ß˜ÍŔ ‚ƒ ÝßË Constructor ŢŔ ÍË ŕ— this(0,0,1)

Ëé…é› ÍË ŕËéŒ ËŸ™ß… ˗ ޟ™ßÁ ˟‚ƒ this() ٟÍÔ ÎÁ Constructor ˙œÁߊ Á͕
˙œÁߊÁ͕ Á͟Π.˝Ë˙› ‚ÔŠ ݂Ÿ„ ͙Ÿ‚„›‚— ĹÍߍœŸÁ ͟’ ÍË ËŒ‚ƒ Constructor
˙éœÁßéŠÁÍé• ßË ËéŸéœÁßé…˙é›éœ ‚é›éŒ .ˌ‚ƒ ˗ Ԋ ޟ™ßÁ ˟‚ƒ Constructor
Ëé— ËŸœÁ߅˙›œ ŕœß›œ ˙Á̓ .˟Ÿ‚›œ ҊŒ› Constructor ڟ ÍË ÁÍ Constructor
݂Ÿ„ ͙Ÿ‚„›‚— ř‚‰œŸÁ ÍË .˟Œ‚ƒ ŕ…ŒÁË ÁÍ this(0,0,1); this(60,30,30)
.˝Ë˙› ‚ÔŠ

‚Đš— ؟͐… ŕ— ËŸƒ‚Ÿ˙› ÍË ËŸœ— ŕ™‚Ô› ÁÍ Á߂‡ К— ŕœ‚Šƒ‚…— ˙™Á ˗ ͘Á
Ý‚éœ ŕéƒ áËé…é› ËéŸ‚éƒ ŕߚééƒ .Ĺé‹Á private ĹÍߍƒ Constructor ڟ ܛ‚Œ
Đšé— ŢŔ ÎÁ Ĺé—é‡éƒŔ ÚéŸ Ô–• ‚… ˝Ë˙› ނ—›Á ŕ— ËŒ‚ƒ ŕ…ŒÁË getInstance()
.˜…‹ singletons ‚ž‹š— Öߜ ޟÁ .Ëߌ ŕ…Š‚‹

Đšé— ÎÁ ËéœÁßé…˙é› Ĺ闇ƒŔ ڟ Ԗ• ŢÁ ÍË ŕ— Ĺ‹Á ˙‰ÁÍÔ ˙ߘ™Á ڟ Singleton
.Ĺé‹Á Ĺ闇ƒŔ ˜ˆ ˂‡ŸÁ ‚ƒ á˟™ß… ˙‚ÔŠ ŕœŸÎ ܟ™Ë ŕƒ Í›Á ޟÁ .Ëߌ ŕ…Š‚‹
ŕéŸéƒéŒ ÁÍ ŕ闃Œ Ԃƒ…ÍÁ ŕ— ËŸËߛœ ؟͐… ÁÍ ˙‹š— ŕ— ËŸœ— Ó͕ ŕœß›œ ˙Á̓
΂éŸéœ Ĺ闇ƒŔ ڟ ŕƒ ŕ—ƒŒ ‚ƒ Ԃƒ…ÍÁ áÍÁ͖̓ ˙Á̓ ř‚‰œŸÁ ÍË .˜—˙› á΂‹
˙郂韅‹Ë ŕ— iSingleton К— ͟Π܂†› .ŋÁ ̓ނ›Î Ԃƒ…ÍÁ ޟÁ Á͟Π˟ÍÁË
:˜—˙› ؟͐… Ë΂‹˙› ̄͟ ނ—›Á ÁÍ ŕ—ƒŒ ŕƒ

public class NetworkConnection
{
   private static NetworkConnection singleton;

   private NetworkConnection ()
   {
      // The code in this constructor establishes the network connection.
      // This code deals with situations in which the connection is down.
   }

   public static NetworkConnection getInstance ()
   {
      if (singleton == null)
         singleton = new NetworkConnection ();

      return singleton;
   }
}

ŘéŸÍ鐅 ÁÍ private ĹÍߍƒ Constructor ڟ Connection Network ŕ—Ÿě‚‡œÁ ÎÁ
Í鋟› new=cn_NetworkConnection_networkConstructors() ŢËߛœ ҊŒ› ŹËœ—˙›
˙éœÁßéŠÁÍé• ‚éƒ ËéœÁßé…˙é› NetworkConnection ÎÁ ŕéœßé›éœ ÚéŸ Ô–• .ŋŸœ
.Ëߌ ŕ…Š‚‹ getInstance

NetworkConnection nc = NetworkConnection.getInstance ();



á͘œÎ‚ƒ
˙‚émodifier ß ŕééŠŒ› ڛ— ‚ƒ ÁÍ ‚Ë…› ß ‚Ë™Ÿ• ؟͐… ŕ߉œ ś‹– ޟÁ ÍË
ß Đšé— Đšé— ß Instance ˙‚éË陟• ޟƒ Ĺ߂•… ŕƒ ŕߚƒ .˟…•͘ Á͕ ŹŘ™…Š›
ÁÍ ‚singleton ß ŕˌ áÍÁ̘ ŕ͂›Œ ÖÁߜÁ ޟœˆ› ˟Ë̓ ˙„ Instance ˙‚Ë…›
.˟…•͘ Á͕


Resources
Download this article's source code and resource files:
http://www.javaworld.com/javaworld/jw-05-2001/java101/jw-0504-java101.zip
The Java Language Specification, Second Edition, James Gosling, Bill Joy, Guy Steele, Gilad Bracha (Sun Microsystems, 2000):
http://www.javasoft.com/docs/books/jls/second_edition/html/j.title.doc.html
The Java Tutorial:
http://www.javasoft.com/tutorial/
Sun's official Java language definition:
http://java.sun.com/docs/overviews/java/java-overview-1.html
Learn more about singletons in Joshua Fox's article "When is a Singleton not a Singleton," (JavaWorld, January 12, 2001):
http://www.javaworld.com/jw-01-2001/jw-0112-singleton.html
Find out how the compiler handles constructors in "Constructor Help," Tony Sintes (JavaWorld, November 22, 2000):
http://www.javaworld.com/javaqa/2000-11/04-qa-1122-constructor.html
Read "Understanding Constructors," Robert Nielsen (JavaWorld, October 13, 2000) to learn more about constructors:
http://www.javaworld.com/jw-10-2000/jw-1013-constructors.html



Copyright 2001, IT World/JavaWorld/International Data Group Corp./PC WORLD Iran. All rights reserved.


˙‡œ‹Í՜
ޟÁ ËÍߛ ÍË ÁÍ Ëߊ Í՜
:˟Ÿß˜ƒ ‚› ŕƒ Ă™Ô›

ŃÎÍÁ ‚ƒ ˙™ŸŠ -
ŃÎÍÁ ‚ƒ -
ŃÎÍÁ˙ƒ -

˙œ šßÔ ˙™ŸŠ -
˂œ› -
ŕ‚…ß— -

˙Š… ˙™ŸŠ -
Ăߙԛ -
ŋŸœ ˙Š… ˙•‚— ŕÎÁ˜Á ŕƒ -


:݂œ

:ڟœßͅ—™Á ŋ„

: ŗ͌ ݂œ

܃– ˙‚Ĺ›‹–
ą ś‹– - Á͘ ˙Œ ނƒÎ ÜߍÁ
˛ ś‹– - Á͘ ˙Œ ނƒÎ ÜߍÁ