חלק 2 - משתנים ואופרטורים
רשמו את הקוד הבא ביישום בו אתם משתמשים לכתיבת ג'אווה:
קוד:
class Printer
{
public static void main(String[] args)
{
System.out.println("My First Java Application");
}
}
כעת אינכם אמורים לדעת מה אומר הקובץ. שמרו את הקובץ תחת השם Printer.java,
בתיקייה C:\JavaWork
(טיפ - בתיבת השמירה של פנקס הרשימות הוסיפו מרכאות סביב שם הקובץ,
כדי שהוא יישמר כ "Printer.java" ולא כ "Printer.java.txt").
חשוב מאוד להקפיד על האותיות הגדולות והקטנות, כי ג'אווה היא תלוית רישיות.
אם שם הקובץ יהיה printer.java או PRINTER.java זה לא יעבוד.
הספרייה JavaWork נועדה להקל עליכם להגיע אליה בדוס.
כעת לכו להתחל - תוכניות - הפניה ל MS-DOS.
לפניכם שורת הפקודה של דוס. תיקיית ברירת המחדל היא C:\Windows.
כדי להגיע לתיקייה JavaWork כתבו לדוס:
cd \JavaWork
כעת כשאתם בתיקייה הנכונה הקלידו בשורת הפקודה את הפקודה:
javac Printer.java
javac הוא המהדר של JDK. אם ההידור עבר בהצלחה, המהדר לא יציג פלט,
ושורת הפקודה תופיע שוב. בתיקייה JavaWorks, יופיע הקובץ Printer.class,
שאותו יכול מפרש הג'אווה לקרוא. (המפרש במקרה שלנו הוא המהדר,JDK ).
אם מופיע פלט, סימן שיש בעיה בקוד שלכם. בדקו שהקוד זהה לחלוטין (כולל רישיות)
לקוד המופיע בעמוד זה.
כעת נותר להריץ את היישום שייצרתם. כתבו בשורת הפקודה:
java Printer
כשתריצו את היישום תראו את השורה:
.My First Java Application
זה היה היישום הראשון שלכם בג'אווה. שימו לב: כשמריצים יישום, משמיטים
את סיומת ה-class שלו, וכותבים רק את שם המחלקה.
משפטים
כל פקודה בג'אווה כתובה כמשפט או כסדרת משפטים. כל משפט יסתיים בנקודה-פסיק. (
.
קבוצת משפטים המבצעת פעולה אחת תקרא בלוק משפטים ותהיה עטופה בסוגריים מסולסלים.
מכיוון שכל משפט נגמר בנקודה-פסיק, ניתן לכתוב יותר ממשפט אחד בשורה,
וזה לא ישפיע על התוכנית.
בתוכנית שיצרתם, אפשר לראות את המשפט
קוד:
System.out.println("My First Java Application");
משפטים המחזירים ערך נקראים ביטויים.
משתנים
במשתנים ניתן לאחסן מידע, ולשלוף אותו בעת הצורך.כיאה לשמם ניתן גם לשנות את המידע האגור בהם.
לכל משתנה בג'אווה יש את טיפוס המידע שאותו הוא יאחסן.
בג'אווה קיימים המשתנים הבאים:
משתני מופע (instance variable), משתני מחלקה (class variables), ומשתנים מקומיים (local variables).
משתני מופע משמשים להגדרת תכונות של אובייקט.
משתני מחלקה משמשים להגדרת המחלקה כולה.
אם תזכרו במחלקת הכלב מאתמול, הרי שמשתני המחלקה הם נובח, הולך על ארבע ואוכל חתולים.
משתני המופע, המגדירים כל כלב לחוד הם לדוגמה: צבע לבן, אוזניים גדולות וכד'.
משתניים מקומיים משמשים רק בתוך שיטה או בבלוקים קטנים של משפטים,
ואינם תקפים לאחר מכן.
כדי ליצור משתנה יש בהתחלה להכריז על שמו ועל טיפוס המידע שלו. לדוגמא:
קוד:
int numTimes;
boolean isTrue;
String lastName;
הטיפוסים הנראים בדוגמה:
int, המציין מספר שלם (integer), המשתנה השני הוא מסוג boolean המציין ערך בוליאני (היכול להכיל ערכים של true או false) והשלישי הוא String המציין מחרוזת.
טיפוסי משתנים
בג'אווה ישנם שמונה טיפוסי נתונים בסיסיים. הם משמשים לאיחסון מספרים שלמים, מספרים ממשיים, ערכים בוליאניים ותווים.
קיימים ארבעה טיפוסים לאיחסון מספרים שלמים. ההבדלים ביניהם הם בטווח הערכים שלהם.
הטיפוס byte יכול לאחסן מספרים מ 128- עד 127 .
הטיפוס short יכול לאחסן מספרים מ 32,768- עד 32,767 .
הטיפוס int, שבו בד"כ נשתמש יכול לאחסן מספרים מ 2,147,483,648- עד 2,147,483,647 .
ואם אתם ממש רוצים לדעת הכל, הטיפוס long יכול לאחסן מספרים מ:
9,223,372,036,854,775,808- עד 9,223,372,036,854,775,807 .
הטיפוסים float ו- double משמשים למספרים בעל שבר עשרוני.
הטיפוס boolean, כפי שכבר כתבנו, משתמש לאיחסון ערכי true ו- false.
הטיפוס char משמש לאיחסון תווים בודדים.
שם הטיפוס String חייב להכתב עם 'S' גדולה, מסיבות שלא יצוינו כרגע.
טיפוסי מחלקות
אם היינו יכולים להשתמש רק בטיפוסי הנתונים הבסיסיים (הפרימיטיביים), ג'אווה היתה שפה מאוד מוגבלת.
אולם ג'אווה מאפשרת שימוש גם במחלקה כטיפוס נתונים.
לדוגמה: המשפט String lastNameString, שראינו בדוגמה קודם ייצור משתנה חדש מסוג שהיא מחלקה הכלולה בחבילה java.lang. (על חבילות בהרחבה נלמד בדף הבא).
עוד דוגמאות:
קוד:
Button exitProgram;
Dog poodle;
משתנים מקבלים ערכים ע"י האופרטור = .
קוד:
numTimes=8;
isTrue=false;
שימו לב שהפעם לא הכרזתי על טיפוס המשתנה, כיוון שאלו משתנים שכבר הכרזתי עליהם קודם (בדוגמא הראשונה).
על טיפוס הערכים יש להכריז פעם אחת בלבד.
קבועים
קבועים הם מספרים / טקסט המקבלים ישירות ערך.
int time=8 הוא משפט המשתמש בקבוע.
קיימים גם קבועי מחרוזות, תויים ובוליאניים.
אופרטורים
אופרטורים הם סימנים מיוחדים המשמשים לביצוע פעולות חשבון, השוואות ומשפטי הצבה.
לביצוע פעולות חשבון קיימים האופרטורים +, -, *, /, ו-%.
סימן הפלוס מציין חיבור, המינוס מציין חיסור, הכוכבית כפל, הקו הנטוי ההפוך חילוק וסימן האחוז שארית.
(הסימן יחזיר את השארית.25%4 יחזיר את התוצאה 1).
שימו לב - אם תשמרו תוצאת חילוק בטיפוס נתונים int, היא תעוגל למספר שלם.
אופרטורי הצבה
כדי לקצר משפטים של שינוי ערך משתנה, לדוגמה:x = x+y , יש בג'אווה
אופרטורים מיוחדים להצבות האלה:
x += y מציין x = x+y .
x -= y מציין x = x-y.
וכנ"ל עם כפל וחילוק.
קידום והסגה
קידום והסגה הם אופרטורים המשמשים להוספת 1 1 ממנו. למספר או חיסור
דוגמא:
קוד:
int x = 500;
x = x++;
האופרטורים הללו יכולים להיות גם לפני שם המשתנה, ואז המשתנה יגדל באחת
לפני הצבתו בערך אחר.
השוואה
אופרטורי ההשוואה משווים בין משתנים, קבועים וכד'.
הם מחזירים ערך truefalse, בהתאם לתוצאת ההשוואה. או
האופרטור == משמש לבדיקת שוויון.
משמעות האופרטור =! היא שונה מ....
האופרטור < ו > מציינים קטן מ.. וגדול מ....
האופרטורים => ו- =< היא קטן או שווה ל.. וגדול או שווה ל...
אופרטורים לוגיים
באופרטוריים הלוגיים משתמשים לביצוע הפעולות AND, OR, XORNOT. ו- XORהוא הכי זר, לכן נתחיל ממנו.
XORtrue רק אם לערכים הבוליאניים שלידו ערכים הפוכים. מיוצג באמצעות הסימון ^, והוא יחזיר
ORtruetrue. אם אחד מערכים הוא מיוצג בעזרת | ו-||. הוא מחזיר
הסימון || הוא ORtrue, אז תוצאת לוגי. כשתשתמשו בו, אם הביטוי הראשון יהיה כל הביטוי תהיה true, והביטוי השני כלל לא ייבדק.
את AND מייצגים & ו- AND. && מחזיר true אם שני הערכים הבוליאניים הם true.
&& הוא AND לוגי. אם הביטוי הראשון יהיה false, כל הביטוי יהיה false, מבלי שייבדק הביטוי השני.
את NOT מייצג הסימן !, והוא הופך את סימנו הבוליאני של הביטוי.
דוגמאות לשימוש באופרטורים הלוגיים:
קוד:
boolean payBill = (month < 4) && (bill > 1000);
boolean watchTV = (day == sunday) || (day == friday);
boolean playBasketball = (!day = sunday);
עוד אופרטורים
אופרטורים נוספים הקיימים:
instanceof הבודק אם המשתנה x הוא מופע של מחלקה y .
+ המשמש גם לחיבור (שרשור) מחרוזות.
לסיום הדף, נכתוב יישום קצר ונשתמש במה שלמדנו היום.
ניצור משפחה דמיונית, משפחת כהן. במשפחת כהן יש את אבא חיים, אמא שולה, והילד גדליה.
כעת ניצור יישום שידפיס עליהם פרטים.
קוד:
class Family
{
static String lastName = "Cohen";
String firstName;
int age;
public static void main(String[] args)
{
Family dad = new Family();
dad.age = 40;
dad.firstName = "Haim";
System.out.println("Dad's Last Name is " + Family.lastName);
System.out.println("Dad's First Name is " + dad.firstName);
System.out.println("Dad's age is " + dad.age);
System.out.println("----------");
Family mom = new Family();
mom.age=37;
mom.firstName = "Shula";
System.out.println("Mom's Last Name is " + Family.lastName);
System.out.println("Mom's First Name is " + mom.firstName);
System.out.println("Mom's age is " + mom.age);
System.out.println("----------");
Family son = new Family();
son.age = 10;
son.firstName = "Gdalia";
System.out.println("The son's Last Name is " + Family.lastName);
System.out.println("The son's First Name is " + son.firstName);
System.out.println("The son's age is " + son.age);
}
}
שמרו את הקובץ בשם Family.java, הדרו אותו והריצו אותו.
ביישום הזה השתמשו בשלושה משתנים כדי לאחסן מידע על בני המשפחה.
הראשון הוא lastNamestatic כדי לציין שהוא משתנה מחלקה., אשר יש לפני את המילה
שימו לב שהתייחסתי אליו כ Family.lastNameהתייחסות כ dad.lastName הייתה מניבה תוצאה זהה.
השני הוא מחרוזת המייצגת את השם, והשלישי הוא מספר שלם המייצג את הגיל.
לאחר מכן השתמשנו הרבה פעמים בשיטה ()System.out.println כדי להדפיס עליהם פרטים.
מחר נלמד על שיטות, אבל כבר עכשיו כדאי שתדעו שהסגנון שיש בקובץ הזה הוא לקוי.
השיטה המומלצת היא ליצור שיטה שתדפיס את הנתונים, ולקרוא לה כל פעם עם ארגומנט אחר.
אם זה נשמע לכם כעת כמו סינית - בדף הבא תבינו למה אני מתכוון.
שימו לב לשורות ()Family son/dad/mom = new FamilyFamily.. אלו הם אובייקטים של המחלקה
כמו שהסברתי כשדיברנו על תיכנות מונחה אובייקטים, המחלקה פה היא תבנית ליצירת בני המשפחה.
באובייקטים משתמשים כדי לציין את התכונות שלהם.
בדף הבא תהיה הרחבה על אובייקטים
שימו לב גם לשורה (public static void main(String[] args . את אותה השורה ראיתם גם ביישום Printermain, שנמצאת בכל יישום, וגם עליה נלמד בחלק הבא.
ואחרון חביב, אופרטור שרשור המחרוזות, +, גם הוא מופיע פה.
שימו לב שכאשר משרשרים טיפוס int למחרוזת, הוא מציג את הערך שלו.
זה יכול לשמש אתכם להציג ערכים של int ע"י שרשורו למחרוזות ריקות.
בסיום זה דף אתם אמורים לדעת
- איך להדר ולהריץ תוכנה עם JDK
- מהם משפטים, מהו בלוק משפטים
- מהם משתנים, איך מכריזים על משתנים
- מהם טיפוסי הנתונים הבסיסיים, מהם טיפוסי מחלקות
- מהם קבועים
- מהם אופרטורים (אין צורך לזכור בע"פ את כולם)
תווים מיוחדים
בג'אווה יש כל מני תווים מיוחדים אשר להם יש קידוד.
n\ - שורה חדשה.
t\ - טאב
\\ - סלאש הפוך
b\ - מחיקה ועוד.
תודה ל www.sigall.co.il .