Professional Documents
Culture Documents
Chapter 7
Classes & Objects
د,4 ن. ﺕ7ذن ا9ة و$$; ﺝ1 ﺝ2 ي$
& ه7إن <ء ا
class , object زي ا$ﺝت آﻥ( ﻡ& '& آ+ , -,. ء د ه1 ا2 +ا
او ا
ات ادdata fields و دي الobject الI ودي
ﺹstate ال -١
? ا-
د ا وم دي ﻡ ﻡ الobject ك ال,4 وهbehavior ال -٢
. methods
ﻥ
Iﺕﻥ وه ا class؟
: >
دي2 ا
ات
ف2و
dataFieldName: dataFieldType
: $
آconstructorوال
ClassName(parameterName: parameterType)
: $د
ف آHوا
methodName(parameterName: parameterType): returnType
7.3. Constructors
2 ه,س اE. ا-4 اV ﻥ4 ه اﻥ & اconstructor ال2
زم ﻥc ﻡ,اول ﻡ
-4` اV constructor ) ا اآ
ﻡoverload ا.دس ﻡHوز زي آ ا
.ا$; ﺝ$& ﻡ-' إ>ء ا
اتL &S ( ودI
' ا2 ,
C &ا ﻡ.و
,ام آ$C
49 س دE.
ع اconstructor س دي الE ﻡ اي آobject ﻥ?[ ﻥ
: $ زي آnew , وه آ, ا2 ! ?ﻡ
new ClassName(arguments);
constructor ام اول$C
49 circle س الE ﻡ آobject $ آnew circle() لEHﻡ
ام ال$C
49 .س وE. اV ﻡ ﻥobject & هnew circle(5)
circle ' س وE. ا2
. سE. اV ﻥ2 ﻡ
ف, ا
ﻥ اconstructor
ن. وd2 constructor R,C
ا? دي2 وconstructor ون اي$
.س ﻡE.ا
]
اﻥ ﻡ+ 2 e2
وdefault constructor 4س و& اE. ا2 d ﻡﺝد
.سE. ا2 حd constructor I
ﺕ
: !?,ﻡ
:: !?,ﻡ
: ه& ^
دobject ( ﻡ2
circleس الE آEH ﻡobject د ﻥع ال$? سE.وا
Circle myCircle;
$ آ$ وCircle سE. ﻡ اobject لreference اوg ﻡ
ﺝmyCircle
اR
S
:$ آmyCirle
,
reference
refere او الg وه&( ا
ﺝobject الI
ﺕ.ه
myCircle = new Circle();
ﻡ زيreferenceس ﻡ وا( الE ﻡ آobject ة ا
ف$+ وا, ﺝ2 .ﻡ
: $آ
ClassName objectRefVar = new ClassName();
:: !?,ﻡ
myCircle 4 ا, اobject
ع الradius الg & ه
ﻡ ﻡmyCircle.radius EH ﻡ
, اobject ال, getArea() 4 ا,د اH اZ & هmyCircle.getArea() ' و
. myCircle 4ا
:: !?,ﻡ
او
System.out.println("Area is " + new Circle(5).getArea());
. Circle س ا ﻥE. ا, Test وﻡ ه44`س اE. ود اTestCircle1 ا`ول
سE. وه اpublic & , ه اV -2 $+زم واc . وI, اV ﻥ2 4E. اe+ ا.ﻡ
& ه44`س اE. ا-4\ I, اL ا? دي2 وmain د الH ﻡ2 , ا44`ا
. TestCircle1.java I, ا-4ا
الR
S $+ اول واobjects ( اﺕ, mainد الH وﺝ ﻡ44`س اE. ا2
, اd
ا2l& اL ا
ﻥ هobject وال5.0 ' ,$ ' وه$ ﺥ, اconstructor
. 1.0 ه
. object ال-4\ ﻥدهobject آg ﻡgetArea() دH ﻡZ & ﻥ+ و
:: !?,ﻡ
2 ديH اﻥ دي اي ﻡMath سE آgدس ' ﺝ ﻥ
ﻡ ﻡH اg ﺝ ﻥ
ﻡ ﻡ
_ن آ, د آنV دH ا-4 ا$س وE. ا-4م ا$C
L آMath.pow
pow(2,3) >
دي
ه.ام و$' static وه_
ح اstatic ﻡ ﻥعMath س الE آ2 ﻡﺝدة,دس اHا
R
S ن. زمc _ن اﻥد, non-static
static اوstatic د ﻡ] ﻡ ﻥعH اH ﻡ2
.
m c e2 object
:: !?,ﻡ
:: !?,ﻡ
ﻡ, ة$
د ﻡH ﻡZ ء وﺕ$
4 ا+ 2 g,> g;< \>د ﺥ NullPointerException
. null ' ?
7.4.5. Differences Between Variables of Primi)ve Types and
Reference Types
ﻡ و
ف ﻡ
ف الn
? اري2 g'ﻥ &رة ﻡ$
آ ﻡ
! ? آن ا
ﻥع ﻡ ا`ﻥاع ا. n
? ر$ ا
د, ا- ﻥع اcompiler
ه
& '
هobject لreference ?
آن ا+ 2 و، ﻥV ه
& '
ﻡ ﻥ
, واi 4 ا,' ان ' ا
اE ه:$ اري زي آ2 دobject ن ال. Reference
' _ر اوE هCircle وﻡ ﻥعc 4 ا, اobject والint value =1 &
هint ﻡ ﻥع
: اري2 Circle objectن ال. Reference ?
ا
ات+ 2 [ دS i ال2 pL
j ال2 , ان ا اB? , اi = j ﺝ ا'ل
د ﻡ ان ' الc1=c2 ' object لreference ?
, ا
ات ا+ 2 ، اد
: reference الV ا ﻥ,? وه ا`ﺕ ه_روا او هc1 2 pL
هc2 2 , اReference
:: !?,ﻡ
c1
' دc1 4 ا, اobject ال2 c2
c 4 ا, اobject
ع الreference > ' ال+
2 واgarbage ام ود ﻡ
ف ل$C
4s ?
ﺹmزﻡ وc ش, اﺹ&?( ﻡ$'
ا
ه ﻡ اري ود ﻡ
ف$
ﺥ, ا+L اq
f ﻡ اع د واوﺕﻡﺕ, ا-
ف ا
. garbage collection ل
7.5.
.5. Using Classes from the Java Library
سE. ﻡ اinstance اوobject R,_ن اﺥ, constructors ﺝ ال+ < اول+& زي ﻡS
g
ﺝ, واtoString() دH ا'( ا? وﻡg
ﺝ, واgetTime() دH' ﻡE ه$ آ$د و
: $ زي آstring @ ه, ('ا
java.util.Date date = new jave.util.Date();
jave.util.Date()
System.out.println( The elapsed time since Jan 1,
System.out.println("The , 1970 is " +
date.getTime() + " milliseconds");
milliseconds"
System.out.println(date.toString());
: ^
دkه
ض اﺕ
The elapse time since Jan 1, 1970 is 1100547210284 milliseconds
Mon Nov 15 14:33:30 EST 2004
دسH' ﻡ ﻡ اE ه$ آ$ وconstructors& الS ﺝ+ ' اول,م اE. اV ﻥ
. آ ﻥع ﻡ اﻥاع ا
ات+ 2 ا$ة ﺝ$ ا
object g&
اﻥInstance variable L دradius -4\ $ '& آ, ,ا
ا
: $س زي آE. ﻡ اe2 $+وا
Circle circle1
Circle circle = new Circle();
Circle circle2
circle = new Circle(5);
Circle(
و اي ﺕj B ﻡcircle2
circle
عradius واـcircle1
عradius ﻡ اـEآ
.i? ﺹV. واu ا
ﻥ ﻡ]
\ﺙ
ﺥ-2 $+ اي وا2 B?
ود ﻡ ان آstatic - اﻥ, -2
اﺕ$ اV ﻥ2 ا
ات ﺕ
_رك,C وز ﻥ
,
\ﺙ- ﻡ$+ اي وا2 B?
ﻡ ﻡ اري واي ﺕ+L ﻡ2 ا
ات
_
ك
m ر اﻥد ﻡ$ وديstatic methods
د2 static variables 2 زي ﻡH و.'&ا
.سE. ﻡ اobject ﻡا
" ﺕ ی
ع اﻝ او#$ static آstatic ن اف
او
د ا
: %&اﻝ
د زي آ
static int numberOfObjects;
: -
&
اC ه,س اE.ود ا
1 public class TestCircle2 {
2 /** Main method */
3 public static void main(String[] args) {
4 // Create c1
5 Circle2 c1 = new Circle2();
6
7 // Display c1 BEFORE c2 is created
8 System.out.println("Before creating c2");
9 System.out.println("c1 is : radius (" + c1.radius +
10 ") and number of Circle objects (" +
11 c1.numberOfObjects + ")");
12
13 // Create c2
14 Circle2 c2 = new Circle2(5);
15
16 // Change the radius in c1
17 c1.radius = 9;
18
19 // Display c1 and c2 AFTER c2 was created
20 System.out.println("\nAfter creating c2 and modifying " +
21 "c1's radius to 9");
22 System.out.println("c1 is : radius (" + c1.radius +
23 ") and number of Circle objects (" +
24 c1.numberOfObjects + ")");
25 System.out.println("c2 is : radius (" + c2.radius +
26 ") and number of Circle objects (" +
27 c2.numberOfObjects +")");
28 }
29 }
7.7. Visibility Modifiers
ا modifiers
2
2آ
_,ن ا
? 2 -.ا
ات وا$اﺕ وﻡ ا<
ه -ال publicو ال
. private
: Public -ود ا gdام زي ﻡﻡ ل آ $اي آEس $ر _ف ا&ﻥت
وا
ات واHدس اCﺹ E.س د.
: Private -و
د زي ﻡﻡ ل ﻡ ] اي آEس $ر _ف او
ﻡ ﻡ gﻥت او
ﻡ
ات او ﻡHدس اE.س د.
-
- -ﺕ? $$اي modifierإذا 2ا? دي Vا$ ,ر _ف و
ﻡ ﻡ gا
ات
وا&ﻥت واHدس اCﺹ E.س د ه ا4E.ت ا ,ﻡ 2ﻥ Vالe2 package
m cو& ا -4ال 2 modifierا? دي إﻡ defaultاو .protected
ه n+Eه ان c1و c22ﻡﺝد 2ﻥ Vال packageوا ,ا p11 4و c3ﻡﺝد 2
packageﺕﻥ وا ,ا. p2 4
-q g ﻡ,
Cت ا4E.ت ا+E ﺹ$$? ه ﺕ44` ا-
ﻡvisibality modifiersال
$+س ااE.
ﻡ ] اي 'د ﻡ اي ﻥع داﺥ اB
C . &ﻥت, +
2 &S ودj&ا
: $ زي آ.2 دس اﺝدH آ ا&ﻥت وا
ات وا2 -.?
ر$ سE. ان ا
?
ا2_ن او,ن و.ﻡlر ا$' ?ن ﻡ. ان ' ا
ﺕL+`ن ﻡ ا. ن+` اj 2
g اﻡ$. وdata field encapsulation لL ود ﻡprivate اﻥ, دي
ف ا
ات
. ' ا
ات2
س اﻥEاي آ
u,ن ﺥ.
_ ا$.و
7ذن ا9 R2