Professional Documents
Culture Documents
Introduction To Java Programming CH5
Introduction To Java Programming CH5
Introduction To Java Programming CH5
Chapter 3
JOptionPane.showMessageDiolg وSystem.out.println
(دس زي$ 6. آ4$
اﺡ
.
ا(د5 ف5@ اﻥ
ﻥ$ < و$ود
. 7
وا و85 ا4 ه ا: ا(د
ا ه ن اSystem.out.println (د زيE(
.
ا-./&
وﻥ2/ ا(دس ا45 ﻥ#5
ه6 و ا د4 ا
ازاي ی
دي ا(د واﺡcomipler ف ال5 ا< اﺥري وه./ ;ن اﺱ::modifier •
. 6ل ا دQ static modifier م ال./&
ه
ا"ﺡن85 ﻥع ا ا ه ا(د و6 ود:return
:return value type •
;نreturn value type
ج ان ا(د ﺡ ا دي ه الP
. main زي (د الvoid
ع ا(د وheader ال#- 5 ات اJ ودول ا ا:Parameters •
Method ف ـ5 ;ن یparameters ا(د ال# اﺱ. #-$ @5 اﻥدي ا(د
" او#-
; اﺡ5 اﺥري یparametersع الU وSignature
. ض ا(دJ ا%&ﺡ
functions & procedures ت ا ا"ﺥ ي & ا(دس لJ 85 :: 7
.procedure -( اﺱvoid) $ P واfunction - اﺱ$ وا(د ا
parameter ا
ع "آO.
P "ي (دparameters ف ال5
ﻥ:: 7
.int num1,int num زم ;نT ; وint num1,
num int num2 num ,num2 ل$ اP5
E(
5ی
ﻥعI ﻥJ -
ا ا ی-
ﻥ
دی$
ا(د
: 6. زي آreturn value type
int larger = max(3,
max( 4);
: 6 ی ﻥ دQ ; وlarger J اO
و اmax
دي ا(د6ا" د
System.out.println(max( , 4));
System.out.println(max(3,
. ا(دO
ودي ا
ن ارJ م./& هP ﺡP
5 یvoid ﺡ ان ا(د ;ن ﻥع
: 6. ل زي آ- < و; ه
دیO
ا
System.out.println("Welcome to Java!");
4أ
ا. ا(د وی#& اء ا(د وح. ی
و ﻥO ا ﻥ
.- ی-
س ا42 اوreturn ا(د إ ال-
و- ا
^ وی وح$ max -ء ا(د ا اﺱ. اﺱ$E & ا&دس وی42
i J_ ا ا اQ م ﺡ- #&أ ی
ا ا. ا;د وی-;ن ﻥ ر
ا num1 Jوا ا ا j Jا num2 Jو
ا 4ا & #ا(د
maxو 42ال-
42 returnی ا(د وی ا
Oا k Jزي ا;4
د: 6
:: 7ال .T returnوده ا(د ا Pﻥع voidزي ا(ل د6
ه
$Eان ا;د ﺱ #و; ه %& errorان ا ا"و ; ا(د P5اي
ﺡ و 4ا; دي ; ﻥف ا ط ا"ﺥ "ﻥ< Q 45ال P nاآ ا` وT
&وی< اآ .ا J2و; 6.ا(د اآ .ه .$
) (reuseی
5
5اﻥ -
:: 7اه #اﺱب 4ا(دس ه ادة ا"ﺱ./ام )use
ا;Eس ا اﺱ< TestMaxو; اﻥدی -اي آEس ﻥ ی اﻥ ; %اﺱ #ا;Eس .اﺱ#
ا(د زي آ. (TestMax.max) 6.
آ 4ة
اي (د آ 4ا Jات والa/ parametersن ;ن اري &
stackوa/ن ا 2
5او ا Jات &ﺱ last in – first outو (د
دي (د ﻥ
ال& - a- stackﺡ ه آن .
5.4 void Method Example
5.4.
< 45
ه
ف (ل هT او- وازاي ﻥ
دیvoid (د ﻥع45 ف ازاي ﻥ5
ه6 ا&; د
: اع%&ی ﺡ. ا%& printGrade (د
1 public class TestVoidMethod {
2 public static void main(String[] args) {
3 printGrade(
printGrade(78.5);
);
4 }
5
6 public static void printGrade(double
printGrade(double score)
e) {
7 if (score >= 90.0)
90.0 {
8 System
System.out.println
println('A');
);
9 }
10 else if (score >= 80.0)
) {
11 System
System.out.println
println('B');
);
12 }
13 else if (score >= 70.0)
) {
14 System
System.out.println
println('C');
);
15 }
16 else if (score >= 60.0)
) {
17 System
System.out.println
println('D');
);
18 }
19 else {
20 System
System.out.println
println('F');
);
21 }
22 }
23 }
statement
دی./ اﺱ-
ﻥ
دیvoid ﻥعprintGrade ن ا(دdو
. (;) ب5Q -
و
اﻥ- و; ; اﺡvoid _ ا(دس ا ﻥعP return ال:: 7
. -
Q ا(د واc وز اﺥI
5.5 Passing Parameters by Values
5.5.
انeﺡE
وparameters ال45 ا-ر.$ اآ ﻥط اة اي (د ه
دت. ا
@ < ا(د وﺡ% اI
اتJ@ ا5
زم ﻥ ا اﻥTTT
ﻥ
دي ا(د
.( ا(ل4 ﺱparameter order association & 6 ودparameters ال-
: ا ات5 د.
5 رﺱ
public static void nPrintln(String
nPrintln(String message, int n) {
for (int
( i = 0;
0; i < n; i++)
System.out.println(message);
}
ت ات واE hello ن ﻥ آnPrintln("hello
nPrintln hello",3)
ل- ﻥ ﻥ
دی
"ﻥ< ه#-
ل. اP5
وn J ٣ #$ واmessage J hello @5 < اﻥ4`
. error
45 ه
ﻥP5
انeﺡE ات "ي (د وﻥJ ارﺱل ا.
ا"ﻥاعYزم ﻥ ا اT :: 7
< 5 < (د و ا اﻥ5 اYزم ود اT ا
عJ
ﻥ5 یcasting
.ا(د
اﻥ$ ات (د ااJ @5 و; ﺡ@ اpass by value & ی6 د#$ @5 ا
ل. < (د45
وا6 زي ا(ل دJ P -& (د ; ا ﻥI و#-$ @5
: 4ی. ﺙg اوJ # 2" ات اJ ا#$ ; و- ی اJ ا#$
1 public class TestPassByValue {
2 /** Main
Main method */
3 public static void main(String[] args) {
4 // Declare and initialize variables
5 int num1
1 = 1;
6 int num2
2 = 2;
7
8 System.out
System out.println
println("Before
Before invoking the swap method,
method, num1 is " +
9 num + " and num2
num1 num is " + num2);
10
11 // Invoke the swap method to attempt to swap two variables
12 swap(num
num1, num2);
;
13
14 System.out
System out.println
println("After
After invoking the swap method,
method, num1 is " +
15 num + " and num2
num1 num is " + num2);
16 }
17
18 /** Swap two variables */
19 public static void swap(int
int n1, int n2)
n {
20 System out.println
System.out println("\tInside
tInside the swap method");
method"
21 System out.println
System.out println("\t\tBefore
tBefore swapping n1
n is " + n1
1
22 + " n2
2 is " + n2);
n
23
24 // Swap n1
n with n2
n
25 int temp = n1;
26 n = n2;
n1 ;
27 n = temp;
n2 temp
28
29 System.out
System out.println
println("\t\tAfter
tAfter swapping n1
n is " + n1
30 + " n2
2 is " + n2);
n
31 }
32 }
5Q ﺥ`
ا(د و.5 وnum1 is 1 & num2 2 is 2 $ @ آﻥswap ﻥ
ا(د4$
@5 ودول ا ا(د اn1
n , n2 @ ل5 ا#-$ ;ﺙ وg #@ زي ه وi 6 د#-$
.#ه5
. -& ا(د ﻥ4ت داﺥ5 ﺙg T (د-5 ات اJ ا#$ 6
5
5.6.
5.6 Overloading Methods
ا ض اﻥ< اﻥ%Q . int ﻥع$ ا"آ ر5 6. آ4$ ا
هmax (د ال
ال. (د ﻥ ﺥ45 ؟ ا دي هdouble ﻥع$وز اﺥ ا"آ ر
: 6. زي آdouble ی ﻥعJ parameters
public static double max(double
max( num
num1, double num2)
) {
if (num
num1 > num2)
num
return num1;
;
else
return num2;
;
}
$ ی اوJ -5 هint ی ﻥعJ . وﺥmax - ﺡ@ اﻥ ا(د ا اﺱ
$ ی اوJ -5 هdouble ی ﻥعJ . و ﺡ@ اﻥ ا(د ا ﺥint ﻥع
I
اﻥ< < ا
(دس6
5 Method Overloading & ا6 ودdouble ﻥع
@ ف اﻥ5 compilerس والE; اI ﻥ/ اﻥاعparameters وا. و; ﺥ#ا"ﺱ
. ا(د- ﻥع ا ی ا
دي- اﻥ.2$
ا"آ%& واﻥint $ ا"آ ر%& وTت (دس اE 45
ه6 ا(ل د
: double م$ت ارE ا"آ%& واdouble $ر
1 public class TestMethodOverloading {
2 /** Main method */
3 public static void main(String[] args) {
4 // Invoke the max method with int parameters
5 System.out.println("The maximum between 3 and 4 is "
6 + max(3, 4));
7
8 // Invoke the max method with the double parameters
9 System.out.println("The maximum between 3.0 and 5.4 is "
10 + max(3.0, 5.4));
11
12 // Invoke the max method with three double parameters
13 System.out.println("The maximum between 3.0, 5.4, and 10.14 is "
14 + max(3.0, 5.4, 10.14));
15 }
16
17 /** Return the max between two int values */
18 public static int max(int num1, int num2) {
19 if (num1 > num2)
20 return num1;
21 else
22 return num2;
23 }
24
25 /** Find the max between two double values */
26 public static double max(double num1, double num2) {
27 if (num1 > num2)
28 return num1;
29 else
30 return num2;
31 }
32
33 /** Return the max among three double values */
34 public static double max(double num1, double num2, double num3) {
35 return max(max(num1, num2), num3);
36 }
37 }
- ا
ت اﻥE5 ؟ وmax(2, 2.5) : 6 دj
اﻥ ; اﻥ ا(د%Q لg& ی.; واﺡ
(د ه ا ه
؟
ال اﻥ ه ا(د ا هk& اd ه
واE5 #5ال ا"ول ه ﻥk& اdا
$ 2 ان ال5 compiler "ن ال6 ودdouble ات ﻥعJ .ه ا(د ا ﺥ
. double
ا(د ا م/ <ا "ﻥ. ا;د4-& method overloading ال4 :: 7
.
6 ود# ا"ﺱI
#- آ- ^]7
# ا"ﺱI _ وparameters ﻥع الJ .T method overloading 45 :: 7
. return value type اوmodifiers او ال
(د- ف اﻥ5 اﻥ< یcompilerض ﺡ الl < ا"ﺡن ;ن85 :: 7
: compilation error
ه و ا دي#ه
public class AmbiguousOverloading {
public static void main(String[] args) {
System.out.println(max(1, 2));
System.out.println(max( );
}
5.8.
5.8 The Scope of Variables
ال scopeع ا Jه اaء ا ا;د وا < 45ا Jی < 45
5
او . <$ Jا Jا . < 5اﺥ 4اي (د اﺱ< local variableوا65 45
اول ا& ا 5ف < .ﻥ-ی & #ا(د ا ا 5ف -وTزم ا < 4$
ا. 65 45و.ی آ ان ال parametersع اي (د ی 5وا . local variables
(ل ا Jا 5ف وواﺥ $ .ا.ا] 5ی^ اول وب < و 5 Uوا Jا
5ف .اﺥ 4اوب < و Uﻥ ا. 45أ ﺱ 5ی < .ﻥ-ی اب ا ه
5ف : -
; اﻥ اآ ر اﺱ #ال local variableاآ وب او (د ( Eو;
P5اآ ر اﺱ#
. local variableاﺥ 4ﻥ Iاب او ا(د :
P5
:: 7ا ف . Jاﺥ( 4د او وب وا 6 65 45اب او ا(د "ن د6
ه.ی
errorزي آ: 6.
{ )for (int i = 0; i < 10; i++
}
;)System.out.println(i
ود 6ه " errorن ا 5 P i Jف 6اب .
5.9. The Math Class
./ اﺡ
اﺱ. ا"ﺱﺱUت ا ی5 ا45 ي ا(دس اMathس الEآ
$ &ب ا"س رMath.pow() اد ا] و. &ب اMath.random() E( -
: ها#- %& ﺡ#&
ه$ . (دس آ# هl <
: #- (ا
Math.exp(1) returns 2.71828
Math.log(Math.E) returns 1.0
Math.log10(10) returns 1.0
Math.pow(2, 3) returns 8.0
Math.pow(3, 2) returns 9.0
Math.pow(3.5, 2.5) returns 22.91765
Math.sqrt(4) returns 2.0
Math.sqrt(10.5) returns 3.24
: #- (ودول ا
Math.ceil(2.1) returns 3.0
Math.ceil(2.0) returns 2.0
Math.ceil(–2.0) returns –2.0
Math.ceil(–2.1) returns -2.0
Math.floor(2.1) returns 2.0
Math.floor(2.0) returns 2.0
Math.floor(-2.0) returns –2.0
Math.floor(-2.1) returns -3.0
Math.rint(2.1) returns 2.0
Math.rint(2.0) returns 2.0
Math.rint(-2.0) returns –2.0
Math.rint(-2.1) returns –2.0
Math.rint(2.5) returns 2.0
Math.rint(-2.5) returns -2.0
Math.round(2.6f) returns 3 // Returns int
Math.round(2.0) returns 2 // Returns long
Math.round(–2.0f) returns -2
Math.round(–2.6) returns -3
5.9.4. The min,
min max,, and abs Methods
ة. وواﺡ$ة ا"آ ر. واﺡMath سE (دس دی آE < آن
: #- ( وا5 #$ او ا& اabsolute valueة ال. وواﺡJ2"ا
Math.max(2, 3)
Math.max( ) returns 3
Math.max(
Math.max(2.5, 3)
) returns 3.0
Math.min(
Math.min(2.5, 3.6) returns 2.5
3.6)
Math.abs( ) returns 2
Math.abs(-2)
Math.abs(
Math.abs(-2.1)
) returns 2.1
Math , ﺱت زيEآmain method - ﺱتE; ا4زم آT P :: 7
م./& ﺱت ﻥE ن آ5 #- "ﻥ6 ودmain (دP- JOptionPane
. #- ا(دس ا
اﺡ
اﺱ 4$
./آ( 6.د زي System.out.printودي رﺱ ا
و(د زي
maxودي & %ا"آ ر
$ﻥ& P #-./ب
ا ﻥ Q ; Oی آ ا;د ا %52و
ج اﻥ
ﻥ& #ا; ا; ة آ4
ا J2وه;ا ود 6ی& ل . stepwise refinement
; ﻥ.أ ;د ل اول ﺥة .ا J2ﺥة I .ا .د 6ﺡ$ %52 4ي واﺡل
ا < /آ .ا .
ﺡ 4ﻥ اﻥ ا #&$ا;د إ ﺥات واه 4; #ﺥة ﺡ.ي .اﺥ cا; آ -ود 6ا
ه
<5ه
:
ا& 4م : ]aا"ول ازاي اﺥ .ا.ﺥ 4ا&./م واﻥ ازاي ا Qای #و 5Qا/ة
دي اآ .ه& #د/ 6ات ا J2و ; ﻥ ﻥ 45رﺱ/ #ات ه آ: 6.
. 4 %Qا اول ﺥة ا ه ازاي ا $ي ا.ﺥ 4ا&./م ﺱ -ه
-5ی ا 5و
\ﺱ./ام . JOptionPane.showInputDialog
2رة ا
T Oﺡ 4;
jا /ج ه
$Eاﻥ< رة اﺱ #ا -وا&
و.5ی ﺥ_ 42
وی.5ی أیم ا"ﺱع ا -اب یT
5زم ﻥ %ا"ول اﺱ #ا -ود <
6ا(د
. getMonthName
ن ا.$ر ا QایT - #زم ا ف اول یم ا (getStartDay) -وا < -آم
یم ) -
E( (getNumberOfDaysInMonthدی& ﺱ
٣١ < ٢٠٠٥یم اول یم <
آن یم ا. I/
< اآ Qی اﺱ #--اﻥ اﺱ./م آEﺱت . Calendar & Gregorian Calendar
Qی ﻥ ا ض اﻥ
ﻥ 5ف ان اول یم
-ی
ی ﺱ
١٨٠٠آن یم ا"ر5ء
) (startDay1800 = 3و; اﺡ&. %د ا"یم اول یم
-ی
ی ﺱ
. ١٨٠٠
ا -اب ) (total NumberOf Daysواول یم ا -اب ه
(totalNumberOfDays + startDay1800) % 7و" ٧
&$ن ا"ﺱع < ﺱ ایم.
و; (getStartDay) 6.ه
. (getTotalNumberOfDays) -
ﻥ&. %د ا"یم ا وض ا ف ا&
آ& و (isLeapYear) " TوTزم ا ف آ4
< -آم یم )(getNumberOfDaysInMonth
5.12.
5.12 (Optional
Optional
Optional) Packages
و< ارa او اpackage _ ی& ال-i5 او ا-
ﺱت اE;ا
: packagesام ال./اﺱب "ﺱ
-ﺱت اE; ا4 اﺱس اﻥ آ5 سEد ;ن آ.ن ا ف اﺡ -١
. ة. واﺡpackage
# ا"ﺱI
ﺱE
; ی < آ5ﺱت یE; اﺱ اJ P` ن -٢
. package . واﺡ4 _ آJ P` ن5
45 او ا#- اﻥ اوز4-ة اﺱ. واﺡpackage -ﺱت اE; ا -٣
.#ه5
# او ی اه#ر ی اه. یu ﺡ- ﺱت اE; ﺡیpackageآن ال -٤
. وه;ا#- ل.5وی
5.12.1 Package-Naming
5.12.1. Package Naming Conventions
package 4 و; ا4 آ4` ن ی; رش و. ی# اﺱpackage ال#اﺱ
java.lang.Math 6.
دی< آMath سE زي آ- س اE; و
دي اpackage 4اﺥ.
package وا دة الlang - ا اﺱpackage د الMath سE
آ5ی
. java -ا اﺱ
: - < اﻥ وز اﺡ6س دE; ا اpackage ال# اﺱO ف اول ﺱ ا ﻥ5
package packagename;
س ا اﻥE; ا وا ي اpackage4 ای ا;د. import 45
: 6. زي آ6وز
import javax.swing.JOptionPane;
- ﺱت اE; ا4 آ. اﻥ اﺱpackageس الEم اآ آ./&; اﻥ ه
: ام ا ی دي./\ﺱ
import javax.swing.*;