Professional Documents
Culture Documents
Print Appendix Java
Print Appendix Java
ﺠﺎﻓﺎ JAVA
.1ﺘﺴﻤﻴﺔ ﺠﺎﻓﺎ
OAK ﺒﺎﻹﻨﻜﻠﻴﺯﻴﺔ ﺍﻟﻘﻬﻭﺓ ،ﻭﻫﻭ ﺍﻻﺴﻡ ﺍﻟﺫﻱ ﺃﻁﻠﻕ ﻋﻠﻰ ﻟﻐﺔ ﺍﻟﺒﺭﻤﺠﺔ ﻓﻲ ﻤﺸﺭﻭﻉ Java ﺘﻌﻨﻲ ﺠﺎﻓﺎ
ﻓﻲ ﺸﺭﻜﺔ ،SUNﻭﻗﺩ ﺍﺨﺘﺎﺭ ﺍﻟﻔﺭﻴﻕ ﺍﻟﻤﺴﺅﻭل ﻋﻥ ﺘﺼﻤﻴﻡ ﺍﻟﻠﻐﺔ ﻫﺫﺍ ﺍﻻﺴﻡ ﺨﻼل ﺫﻫﺎﺒﻬﻡ ﻻﺤﺘـﺴﺎﺀ
ﺍﻟﻘﻬﻭﺓ .ﻜﺎﻥ ﺍﻟﻤﺸﺭﻭﻉ ﻴﻬﺩﻑ ﺇﻟﻰ ﺘﺼﻤﻴﻡ ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﻴﻤﻜﻨﻬﺎ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﻋﺩﺓ ﺃﺠﻬـﺯﺓ ﺍﺴـﺘﻬﻼﻜﻴﺔ
ﻜﻬﺭﺒﺎﺌﻴﺔ ،ﻜﺄﺠﻬﺯﺓ ﻗﺎﺭﺉ ﺍﻟﻔﻴﺩﻴﻭ ﻭﺃﻓﺭﺍﻥ ﺍﻷﻤﻭﺍﺝ ﺍﻟﻤﻴﻜﺭﻭﻴﺔ ﻭﻤﺎ ﺸﺎﺒﻬﻬﺎ .ﻭﻗﺩ ﻜﺎﻨـﺕ ﺍﻻﻨﻁﻼﻗـﺔ
ﻭﺍﻨﺘﺸﺎﺭﻫﺎ ﺍﻟﻭﺍﺴﻊ .ﺇﺫ ﺃﺼﺒﺤﺕ ﺠﺎﻓﺎ ﻭﻗﺘﻬﺎ ﺍﻟﻭﺴـﻴﻠ ﹶﺔ )(Web ﺍﻟﺤﻘﻴﻘﻴﺔ ﻟﺠﺎﻓﺎ ﻤﻊ ﻅﻬﻭﺭ ﺘﻘﺎﻨﺔ ﺍﻟﻭﻴﺏ
ﻼ ﻭﺘﻨﻔﺙ ﻓﻴﻬﺎ ﺩﻴﻨﺎﻤﻴﻜﻴﺔ ً)
ﺘﻌﻁﻲ ﺼﻔﺤﺎﺕ ﺍﻟﻭﻴﺏ ﻤﻅﻬﺭﹰﺍ ﺠﻤﻴ ﹰ )(Applets ﺍﻟﻤﺜﻠﻰ ﻟﺘﻁﻭﻴﺭ ﺒﺭﻴﻤﺠﺎﺕ
ﺍﻟﺘﻲ ﺘﻔﺴﺭﻫﺎ ﺍﻟﻤﺘﺼﻔﺤﺎﺕ )(HTML ﺍﻟﺒﺭﻴﻤﺠﺎﺕ ﻫﻲ ﺒﺭﺍﻤﺞ ﺠﺎﻓﺎ ﺼﻐﻴﺭﺓ ﻴﻤﻜﻥ ﺍﺴﺘﺩﻋﺎﺅﻫﺎ ﻤﻥ ﻟﻐﺔ
ﻹﻅﻬﺎﺭ ﺼﻔﺤﺎﺕ ﺍﻟﻭ ِﻴﺏ(.
ﻟﻴﺴﺕ ﺠﺎﻓﺎ ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﻓﻘﻁ ،ﺒﻴﻨﻤﺎ ﻫﻲ ﺜﻼﺜﺔ ﺃﺸﻴﺎﺀ ﻓﻲ ﻭﻗﺕ ﻭﺍﺤﺩ:
ﺠﺎﻓﺎ ﻫﻲ ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﺒﺎﻟﺘﺄﻜﻴﺩ ،ﻭﺘﺸﺒﻪ ﻜﺜﻴﺭﹰﺍ ﻓﻲ ﻤﻔﺭﺩﺍﺘﻬﺎ ﻭﻗﻭﺍﻋـﺩﻫﺎ )(keywords and syntax y
ﺍﻟﻤﺸﻬﻭﺭﺓ ﺒﻴﻥ ﺃﻏﻠﺏ ﺍﻟﻤﺒﺭﻤﺠﻴﻥ .ﺇﺫ ﻨﺭﻯ ﻨﻔﺱ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻟﺒﺭﻤﺠﻴـﺔ ﺒـﻨﻔﺱ ﺍﻟﻜﻠﻤـﺎﺕ C ﻟﻐ ﹶﺔ
ﻭ ،javaﻋﻨﺩﻤﺎ ﻴﺘﻌﻠﻕ ﺍﻷﻤﺭ ﺒﻭﻅﺎﺌﻑ ﺒﺭﻤﺠﻴﺔ ﻤﺘﻜﺎﻓﺌﺔ .ﻭﻟﻜﻥ ﻟﻐﺔ ﺠﺎﻓﺎ ،ﻓـﻲ C , ﻭﺍﻟﻘﻭﺍﻋﺩ ﻓﻲ
Object Oriented Programming ﺃﺴﺎﺱ ﺘﺼﻤﻴﻤﻬﺎ ﻫـﻲ ﺃﻴـﻀﹰﺎ ﻟﻐـﺔ ﻏﺭﻀـﻴﺔ ﺍﻟﺘﻭﺠـﻪ )
.(Language
ﺍﻟﻭﺠﻪ ﺍﻷﻜﺜﺭ ﺨﺼﻭﺼﻴﺔ ﻟﺠﺎﻓﺎ ﻫﻭ ﻤﺤﻴﻁ ﺍﻟﺘﻨﻔﻴﺫ ﺍﻟﺨﺎﺹ ﺒﻬﺎ ﻭﺍﻟﻤﺴﻤﻰ ﺁﻟﺔ ﺠﺎﻓـﺎ ﺍﻻﻓﺘﺭﺍﻀـﻴﺔ y
) .(JVM: Java Virtual Machineﻭﻫﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﺭﻤﺠﻴﺎﺕ ﺍﻟﺘﻲ ﺘﻘﻠﱢﺩ ﺁﻟ ﹰﺔ ﺘﺴﻤﺢ ﺒﺘﻨﻔﻴﺫ ﺒـﺭﺍﻤﺞ
ﺠﺎﻓﺎ.
ﺍﻟﻭﺠﻪ ﺍﻟﺜﺎﻟﺙ ﻟﺠﺎﻓﺎ ﻫﻭ ﺘﻠﻙ ﺍﻟﻤﻜﺘﺒﺔ ﺍﻟﻜﺒﻴﺭﺓ ﻤﻥ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺒﺭﻤﺠﻴـﺔ ﺍﻟﺠـﺎﻫﺯﺓ ﺍﻟﺘـﻲ ﺘﺘﻴﺤﻬـﺎ y
ﺍﻟﻤﻠﺤﻘﺔ ﺒﻪ،ﺍ ﻭﺍﻟﺘﻲ ﺘﺴﻤﺢ ﻟﻠﻤﺒﺭﻤﺞ ﺒﻜﺘﺎﺒـﺔ ﺒـﺭﺍﻤﺞ ﻤﺘﻌـﺩﺩﺓ ﺍﻟﻭﻅـﺎﺌﻑ )(Classes ﺍﻟﺼﻔﻭﻑ
ﺒﺴﻬﻭﻟﺔ .ﻓﻬﻨﺎﻙ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻤﻜﺘﺒﺔ ﻟﺒﺭﻤﺠﺔ ﻭﺍﺠﻬﺎﺕ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺒـﺸﻜل ﺒﻴـﺎﻨﻲ ﺘﻔـﺎﻋﻠﻲ،
ﻭﺍﻟﺭﺴﻡ ﺍﻟﺒﻴﺎﻨﻲ ﺍﻟﻬﻨﺩﺴﻲ ،ﻭﻤﻜﺘﺒﺔ ﻟﻠﺘﻭﺍﺒﻊ ﺍﻟﺭﻴﺎﻀﻴﺔ ....ﺘﹸﺠﻤﻊ ﺍﻟﺼﻔﻭﻑ ﻓـﻲ ﺤـﺯﻡ ﺒﺭﻤﺠﻴـﺔ
،ﻭﻨﺠﺩ ،ﻓﻲ ﻤﺤﻴﻁ ﺘﻁﻭﻴﺭ ﺠﺎﻓﺎ ،ﻋﺩﺩﹰﺍ ﻜﺒﻴﺭﹰﺍ ﻤﻥ ﻫﺫﻩ ﺍﻟﺤﺯﻡ ﺍﻟﻘﻴﺎﺴﻴﺔ ﺘﻘﺩﻡ ﻭﻅﺎﺌﻔـﹰﺎ )(package
ﻏﻨﻴﺔ ﻭﻤﺘﻨﻭﻋﺔ.
ﻭﻴﻅﻬﺭ ﺠﻠﻴﺎ ﻤﻥ ﻜل ﻤﺎ ﺴﺒﻕ ﺃﻥ ﻤﺼﻤﻤﻲ ﺠﺎﻓﺎ ﻗﺩ ﺒﺫﻟﻭﺍ ﺠﻬﺩﻫﻡ ﻟﻴﺯﻭﺩﻭﺍ ﺍﻟﻤﺒﺭﻤﺞ ﺒﻜل ﻤﺎ ﻴﺤﺘﺎﺠﻪ
ﻟﻠﻌﻤل ﺘﻘﺭﻴﺒﺎ ﻭﻫﺫﺍ ﻤﺎ ﻴﺠﻌل ﻤﻥ ﺠﺎﻓﺎ ﻟﻐﺔ ﻤﻤﻴﺯﺓ ﺒﺠﺩﺍﺭﺓ.
ﺒﺎﻟﻨﺴﺒﺔ ﻟﻤﻁﻭﺭﻱ ﺍﻟﺒﺭﺍﻤﺞ ﻭﺍﻟﺸﺭﻜﺎﺕ ﺍﻟﺘﻲ ﻜﺎﻨﺕ ﺘﺘﻜﺒﺩ ﻤﺒﺎﻟﻎ ﻁﺎﺌﻠﺔ ﻟﻨﻘل ﺍﻟﺒﺭﻤﺠﻴﺎﺕ ﻤـﻥ ﺒﻴﺌـﺔ
ﺇﻟﻰ ﺃﺨﺭﻯ.
ﻭﺍﺭﺘﺄﻯ ﻤﺼﻤﻤﻭ ﺍﻟﻠﻐﺔ ﺘﻭﺤﻴﺩ ﺘﻤﺜﻴل ﺍﻷﻨﻤﺎﻁ ﺍﻷﺴﺎﺴﻴﺔ ﻓﻲ ﺍﻟﻠﻐﺔ ﻤﺘﺨﻠﺼﻴﻥ ﺒﺫﻟﻙ ﻤﻥ ﺇﺤﺩﻯ ﺃﻜﺒﺭ
ﺒـﺄﺭﺒﻊ int ﺍﻟﻤﺸﻜﻼﺕ ﺍﻟﺘﻲ ﻴﻌﺎﻨﻴﻬﺎ ﺍﻟﻤﺒﺭﻤﺞ .ﻓﻌﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ،ﻴﺤﺩﺩ ﺤﺠﻡ ﺍﻟﻌـﺩﺩ ﺍﻟـﺼﺤﻴﺢ
.(4ﻤﻤﺎ ﻴﻌﻨﻲ ﺃﻨﻪ ﻟﻴﺴﺕ ﻫﻨﺎﻙ ﺃﻱ ﻤﺸﻜﻠﺔ ﻓﻲ ﻨﻘل ﻭﺘﺒﺎﺩل ﺍﻟﻤﻌﻁﻴﺎﺕ ﺒﻴﻥ ﺒﺭﺍﻤﺞ )bytes ﺜﹸﻤﺎﻨﻴﺎﺕ
ﺠﺎﻓﺎ ﺃﻭ ﻅﻬﻭﺭ ﺃﻋﻁﺎل ﺒﺴﺒﺏ ﺘﻐﻴﺭ ﺤﺠﻡ ﺍﻟﻤﺘﺤﻭﻻﺕ.
ـﺔ
ـﺭﺍﻤﺞ ﺍﻟﺠﺯﺌﻴـ
ـﻴﻥ ﺍﻟﺒـ
ﺒـ )(parameters ـﺭ ﺍﻟﻤﺤـﺩﺩﺍﺕ
ـﺴــــــﺒﺔ ﻟﺘﻤﺭﻴـ
ـﺎ ﺒﺎﻟﻨـ
ﺃﻤـ
ﺤﺼﺭﺍﹰ ،ﻭﻻ ﻴﻤﻜﻥ ﻟﻺﺠﺭﺍﺀ ﺘﻐﻴﻴﺭ )(by value ،subprogramsﻓﻬﻭ ﻴﻘﺘﺼﺭ ﻋﻠﻰ ﺘﻤﺭﻴﺭﻫﺎ ﻜﻘﻴﻡ
ﻗﻴﻡ ﺍﻟﻤﺤﺩﺩﺍﺕ ،ﻤﻤﺎ ﻴﺴﻤﺢ ﻟﻠﻤﺒﺭﻤﺠﻴﻥ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﻜﺘﺒﺎﺕ ﺠﺎﻫﺯﺓ ﺩﻭﻥ ﺃﻱ ﺨﻭﻑ ﻤـﻥ ﺍﺤﺘﻤـﺎل
ﻅﻬﻭﺭ ﺃﺨﻁﺎﺀ ﺴﺒﺒﻬﺎ ﺘﻌﺩﻴل ﻫﺫﻩ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺠﺯﺌﻴﺔ ﻟﻠﻤﺤﺩﺩﺍﺕ.
ﻫﺫﻩ ﺍﻟﺼﻔﻭﻑ ﻨﺩﻋﻭﻫﺎ ﺃﻏﺭﺍﺽ .objectﻭﻴﻤﻜﻥ ﺇﻋﺎﺩﺓ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺼﻔﻭﻑ ﻭﺘﻭﺴـﻴﻌﻬﺎ ﻟﺘﻌﺭﻴـﻑ
ﺼﻔﻭﻑ ﺠﺩﻴﺩﺓ )ﻤﺒﺩﺃ ﺍﻟﻭﺭﺍﺜﺔ .(Inheritanceﺃﺭﺍﺩﺕ ﺠﺎﻓﺎ ﺃﻥ ﺘﻜﻭﻥ ﻏﺭﻀﻴﺔ ﺍﻟﺘﻭﺠـﻪ ﺨﺎﻟـﺼﺔ،
ﺍﻟﻤﻌﺭﻭﻓﺔ ،ﻓﻜل ﻨﺹ ﺒﺭﻤﺠﻲ ﻓﻲ ﺠﺎﻓﺎ ﻴﺠﺏ ﺃﻥ ﻴﻨﺘﻤـﻲ ﺒﺎﻟـﻀﺭﻭﺭﺓ ﺇﻟـﻰ Smalltalk ﻤﺜل ﻟﻐﺔ
ﺼﻑ .ﻭﺒﻤﻌﻨﻰ ﺩﻗﻴﻕ ﺤﺎﻭﻟﺕ ﺃﻥ ﺘﺠﻌل ﺠﻤﻴﻊ ﺃﻨﻭﺍﻉ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺃﻏﺭﺍﻀﹰﺎ ﻤﻥ ﺼﻔﻭﻑ .ﻭﻟﻜﻥ ﻫﺫﺍ
ﻗﺩ ﻴﺸﻜل ﻁﺭﻴﻘ ﹶﺔ ﺘﻌﺎﻤل ﺼﻌﺒﺔ ﺃﻭ ﻏﻴﺭ ﻤﺄﻟﻭﻓﺔ ﻤﻊ ﺃﻨﻤﺎﻁ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺍﻟﺒﺴﻴﻁﺔ ﻭﺨﺼﻭﺼﹰﺎ ﺍﻟﻌﺩﺩﻴﺔ.
(primitive )types ﻭﻫﻨﺎ ﻴﺄﺘﻲ ﺍﻟﺨﻴﺎﺭ ﺍﻟﻤﻭﻓﻕ ﻟﺠﺎﻓﺎ ﺒﺘﺭﻙ ﻤﺠﻤﻭﻋﺔ ﺃﻨﻤﺎﻁ ﺍﻟﻤﻌﻁﻴـﺎﺕ ﺍﻟﺒـﺴﻴﻁﺔ
class ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎل ﻓﻲ ﺍﻟﻠﻐﺎﺕ ﺍﻟﺘﻘﻠﻴﺩﻴﺔ ،ﻭﺠﻌل ﻜل ﻤﺎ ﻋﺩﺍ ﺫﻟﻙ ﻫﻭ ﻨﻤﻁ ﻤﻌﻁﻴـﺎﺕ ﺼـﻑ )
.(type
ﻜﺎﻓﺔ ﺍﻟﺼﻔﻭﻑ ﺍﻟﻼﺯﻤﺔ ﻟﺘﻁﻭﻴﺭ ﺒـﺭﺍﻤﺞ )(JDK: Java Developer's Kit ﻴﺘﻀﻤﻥ ﻁﻘﻡ ﻤﻁﻭﺭ ﺠﺎﻓﺎ
ﺠﺎﻓﺎ ،ﻤﻭﺯﻋ ﹰﺔ ﻓﻲ ﺤﺯﻡ ﺒﺭﻤﺠﻴﺔ ﻗﻴﺎﺴﻴﺔ ،ﻭﻫﺫﻩ ﺍﻟﺼﻔﻭﻑ ﻤﺨﺯﻨﺔ ﻋﻠﻰ ﺸﻜل ﻤﻠﻔﺎﺕ ﻤﻥ ﻨﻭﻉ .class
ﻟﻌﺩﺩ ﻻ ﺒﺄﺱ ﺒﻪ ﻤﻥ ﺍﻟﺼﻔﻭﻑ. )(source code ﻤﻊ ﻤﻠﻔﺎﺕ ﺍﻟﺘﺭﻤﻴﺯ ﺍﻷﺼﻠﻲ
ﺃﻴﻀﹰﺎ ﻤﺠﻤﻭﻋ ﹶﺔ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻀﺭﻭﺭﻴﺔ ﻟﺘﺭﺠﻤﺔ ﻭﺘﻨﻔﻴﺫ ﻭﺍﺨﺘﺒﺎﺭ ﻫﺫﻩ ﺍﻟﺒﺭﺍﻤﺞ ،ﺒﺎﻹﻀﺎﻓﺔ JDK ﻭﻴﺘﻀﻤﻥ
ﺇﻟﻰ ﺒﻴﺌﺔ ﺘﻨﻔﻴﺫ ﺠﺎﻓﺎ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﺘﺸﻐﻴل ﺍﻟﺒﺭﺍﻤﺞ ﻀﻤﻥ ﺍﻵﻟﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ.
ﻫﻭ ﻤﺘﺭﺠﻡ ﻟﻐﺔ ﺠﺎﻓﺎ ﺍﻟﺫﻱ ﻴﺘﺭﺠﻡ ﻤﻠﻔﺎﺕ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻨﺼﻴﺔ ﻤﻥ ﻨـﻭﻉ ،javaﻭﻴﻭﻟـﺩ javac ﺍﻟﺒﺭﻨﺎﻤﺞ
( ﻟﻐﺔ ﺍﻵﻟﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ،ﺍﻟﺫﻱ ﺴﻴﺘﻡ )bytecode ﺘﺤﺘﻭﻱ ﺘﺭﻤﻴﺯ ﺠﺎﻓﺎ class ﺒﺎﻟﻤﻘﺎﺒل ﻤﻠﻔﺎﺕ ﻤﻥ ﻨﻭﻉ
ﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﺘﻨﻔﻴﺫ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﻭﻟﺩﻫﺎ ﺍﻟﻤﺘﺭﺠﻡ .ﻫﻨـﺎﻙ java ﺘﻨﻔﻴﺫﻩ ﻻﺤﻘﹰﺎ .ﻫﺫﻩ ﻫﻲ ﻤﻬﻤﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﺃﻴﻀﺎ ﺃﺩﺍﺓ ﻫﺎﻤﺔ ﺠﺩﹰﺍ ﺘﺴﺘﺨﺩﻡ ﻟﻸﺭﺸﻔﺔ ﻭﻫﻲ ،jarﻭﺘﺴﺘﺨﺩﻡ ﻷﺭﺸـﻔﺔ ﻤﻠﻔـﺎﺕ ﺍﻟـﺼﻔﻭﻑ .ﺍﻷﺩﺍﺓ
ﻭﺘﺴﻤﺢ ﺒﺘﻭﻟﻴﺩ ﻤﻠﻑ ﺍﻟﺘﻭﺼﻴﻑ ﻭﺍﻟﺘﻭﺜﻴﻕ ﺍﻟﺨﺎﺹ ﺒﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﺔ ﺠﺎﻓﺎ javadoc ﺍﻷﺨﺭﻯ ﺍﻟﻬﺎﻤﺔ ﻫﻲ
).(java API