Download presentation
Presentation is loading. Please wait.
Published byDella Crawford Modified over 8 years ago
2
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing = 8; int script = 6, acting = 9, directing = 8; System.out.print("The rating of the movie is "); System.out.print("The rating of the movie is "); System.out.println(movieRating(script, acting, directing)); System.out.println(movieRating(script, acting, directing)); } public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing = 8; int script = 6, acting = 9, directing = 8; System.out.print("The rating of the movie is "); System.out.print("The rating of the movie is "); System.out.println(movieRating(script, acting, directing)); System.out.println(movieRating(script, acting, directing)); } שיטה (Method) – קטע קוד מזוהה המיצג תהליך חישובי כלשהו שיטה (Method) – קטע קוד מזוהה המיצג תהליך חישובי כלשהו מונחי יסוד : מונחי יסוד : ארגומנטים ארגומנטים פרמטרים פרמטרים ערכים מוחזרים ערכים מוחזרים קריאה לשיטה : קריאה לשיטה : קביעה לאיזו שיטה בוצעה הקריאה קביעה לאיזו שיטה בוצעה הקריאה הקצאת מקום בזכרון לערכי הארגומנטים הקצאת מקום בזכרון לערכי הארגומנטים כתיבת ערכי הארגומנטים במקום שהוקצה כתיבת ערכי הארגומנטים במקום שהוקצה זיהוי המקומות בזכרון עם הפרמטרים של השיטה זיהוי המקומות בזכרון עם הפרמטרים של השיטה ביצוע התהליך החישובי ביצוע התהליך החישובי החזרת הערך החזרת הערך שיטה (Method) – קטע קוד מזוהה המיצג תהליך חישובי כלשהו שיטה (Method) – קטע קוד מזוהה המיצג תהליך חישובי כלשהו מונחי יסוד : מונחי יסוד : ארגומנטים ארגומנטים פרמטרים פרמטרים ערכים מוחזרים ערכים מוחזרים קריאה לשיטה : קריאה לשיטה : קביעה לאיזו שיטה בוצעה הקריאה קביעה לאיזו שיטה בוצעה הקריאה הקצאת מקום בזכרון לערכי הארגומנטים הקצאת מקום בזכרון לערכי הארגומנטים כתיבת ערכי הארגומנטים במקום שהוקצה כתיבת ערכי הארגומנטים במקום שהוקצה זיהוי המקומות בזכרון עם הפרמטרים של השיטה זיהוי המקומות בזכרון עם הפרמטרים של השיטה ביצוע התהליך החישובי ביצוע התהליך החישובי החזרת הערך החזרת הערך
3
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int result, script = 6; int result, script = 6; result = script; result = script; int acting = 9; int acting = 9; result = result + acting; result = result + acting; int directing = 8; int directing = 8; result = result + directing; result = result + directing; System.out.print("The rating of the movie is "); System.out.print("The rating of the movie is "); System.out.println(result); System.out.println(result);}} public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int result, script = 6; int result, script = 6; result = script; result = script; int acting = 9; int acting = 9; result = result + acting; result = result + acting; int directing = 8; int directing = 8; result = result + directing; result = result + directing; System.out.print("The rating of the movie is "); System.out.print("The rating of the movie is "); System.out.println(result); System.out.println(result);}} public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing = 8; int script = 6, acting = 9, directing = 8; System.out.print("The rating of the movie is "); System.out.print("The rating of the movie is "); System.out.println(movieRating(script, acting, directing)); System.out.println(movieRating(script, acting, directing)); } public static int movieRating (int s, int a, int d) { public static int movieRating (int s, int a, int d) { return s + a + d; return s + a + d; }} ללא שיטה עם שיטה הפשטה הפשטה הסתרה הסתרה עם שיטה הפשטה הפשטה הסתרה הסתרה
4
Methods שפת JAVA מאפשרת לקרוא לפונקציה גם אם היא נמצאת במחלקה אחרת שפת JAVA מאפשרת לקרוא לפונקציה גם אם היא נמצאת במחלקה אחרת ניתן ליצור פונקציה עם אותו שם במספר מחלקות שונות ניתן ליצור פונקציה עם אותו שם במספר מחלקות שונות בעת הקריאה לפונקציה קושרים אותה עם המחלקה הרצויה על ידי שימוש ב - field selection operator – '.' בעת הקריאה לפונקציה קושרים אותה עם המחלקה הרצויה על ידי שימוש ב - field selection operator – '.' שפת JAVA מאפשרת לקרוא לפונקציה גם אם היא נמצאת במחלקה אחרת שפת JAVA מאפשרת לקרוא לפונקציה גם אם היא נמצאת במחלקה אחרת ניתן ליצור פונקציה עם אותו שם במספר מחלקות שונות ניתן ליצור פונקציה עם אותו שם במספר מחלקות שונות בעת הקריאה לפונקציה קושרים אותה עם המחלקה הרצויה על ידי שימוש ב - field selection operator – '.' בעת הקריאה לפונקציה קושרים אותה עם המחלקה הרצויה על ידי שימוש ב - field selection operator – '.' public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing = 8; int script = 6, acting = 9, directing = 8; System.out.print("The ordinary rating of the movie is "); System.out.print("The ordinary rating of the movie is "); System.out.println(Movie.movieRating(script, acting, directing)); System.out.println(Movie.movieRating(script, acting, directing)); System.out.print("The James Bond movie rating of the movie is "); System.out.print("The James Bond movie rating of the movie is "); System.out.println( System.out.println( JamesBondMovie.movieRating(script, acting, directing) JamesBondMovie.movieRating(script, acting, directing) ); ); }} public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing = 8; int script = 6, acting = 9, directing = 8; System.out.print("The ordinary rating of the movie is "); System.out.print("The ordinary rating of the movie is "); System.out.println(Movie.movieRating(script, acting, directing)); System.out.println(Movie.movieRating(script, acting, directing)); System.out.print("The James Bond movie rating of the movie is "); System.out.print("The James Bond movie rating of the movie is "); System.out.println( System.out.println( JamesBondMovie.movieRating(script, acting, directing) JamesBondMovie.movieRating(script, acting, directing) ); ); }}
5
תירגול 1 סטודנט באוניברסיטה הינו בעל הפרטים הבאים : סטודנט באוניברסיטה הינו בעל הפרטים הבאים : – גיל – כתובת – מיקוד – מס ' זהות – מס ' טלפון כתוב תוכנית הקולטת את פרטי 5 סטודנטים מהמשתמש, וצור 5 מופעי סטודנט בהתאם. כתוב תוכנית הקולטת את פרטי 5 סטודנטים מהמשתמש, וצור 5 מופעי סטודנט בהתאם. כל יצירת מופע סטודנט תלווה בהדפסת הפרטים ( ע " י קריאה לשיטה המדפיסה את פרטי הסטודנט ) כל יצירת מופע סטודנט תלווה בהדפסת הפרטים ( ע " י קריאה לשיטה המדפיסה את פרטי הסטודנט )
6
העמסה Methods - Overloading public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int intScript = 6, intActing = 9, intDirecting = 8; int intScript = 6, intActing = 9, intDirecting = 8; double doubleScript = 6.0, doubleActing = 9.0, doubleDirecting = 8.0; double doubleScript = 6.0, doubleActing = 9.0, doubleDirecting = 8.0; displayMovieRating(intScript, intActing, intDirecting); displayMovieRating(intScript, intActing, intDirecting); displayMovieRating(doubleScript, doubleActing, doubleDirecting); displayMovieRating(doubleScript, doubleActing, doubleDirecting); } // First, define displayMovieRating with integers: // First, define displayMovieRating with integers: public static void displayMovieRating (int s, int a, int d) { public static void displayMovieRating (int s, int a, int d) { System.out.print("The integer rating of the movie is "); System.out.print("The integer rating of the movie is "); System.out.println(s + a + d); System.out.println(s + a + d); return; return; } // Next, define displayMovieRating with floating-point numbers: // Next, define displayMovieRating with floating-point numbers: public static void displayMovieRating (double s, double a, double d) { public static void displayMovieRating (double s, double a, double d) { System.out.print("The floating-point rating of the movie is "); System.out.print("The floating-point rating of the movie is "); System.out.println(s + a + d); System.out.println(s + a + d); return; return; }} העמסת פונקציות – הגדרת פונקציות בעלות אותו שם מספר פעמים העמסת פונקציות – הגדרת פונקציות בעלות אותו שם מספר פעמים
7
Methods – built in math class public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { System.out.println("Natural logarithm of 10: " + Math.log(10)); System.out.println("Natural logarithm of 10: " + Math.log(10)); System.out.println("Absolute value of -10: " + Math.abs(-10)); System.out.println("Absolute value of -10: " + Math.abs(-10)); System.out.println("Maximum of 2 and 3: " + Math.max(2, 3)); System.out.println("Maximum of 2 and 3: " + Math.max(2, 3)); System.out.println("5th power of 6: " + Math.pow(6, 5)); System.out.println("5th power of 6: " + Math.pow(6, 5)); System.out.println("Square root of 7: " + Math.sqrt(7)); System.out.println("Square root of 7: " + Math.sqrt(7)); System.out.println("Sin of 8 radians: " + Math.sin(8)); System.out.println("Sin of 8 radians: " + Math.sin(8)); System.out.println("Random number (0.0 to 1.0): " + Math.random()); System.out.println("Random number (0.0 to 1.0): " + Math.random()); }}
8
Variable scope פרמטרים של שיטה הינם מקומיים פרמטרים של שיטה הינם מקומיים public class Movie { public static int movieRating (int s, int a, int d) { public static int movieRating (int s, int a, int d) { return s + a + d; return s + a + d; } public static int demonstrate ( int s, int a, int d){ public static int demonstrate ( int s, int a, int d){ return Movie.movieRating (s,a,d); return Movie.movieRating (s,a,d);}} public class Movie { public static int movieRating (int s, int a, int d) { public static int movieRating (int s, int a, int d) { return s + a + d; return s + a + d; } public static int demonstrate ( int s, int a, int d){ public static int demonstrate ( int s, int a, int d){ return Movie.movieRating (s,a,d); return Movie.movieRating (s,a,d);}}
9
בנאים Constructors מהלך חיי מופע כולל בד " כ 3 שלבים עיקריים : מהלך חיי מופע כולל בד " כ 3 שלבים עיקריים : אתחול אתחול עיבוד עיבוד הריסה הריסה לצורך אתחול המופע הוגדר מנגנון מיוחד הנקרא בנאי Constructor : " שיטה המוגדרת ע " י המתכנת ונקראת אוטומטית בזמן יצירת עצם ". לצורך אתחול המופע הוגדר מנגנון מיוחד הנקרא בנאי Constructor : " שיטה המוגדרת ע " י המתכנת ונקראת אוטומטית בזמן יצירת עצם ". הבנאי מופעל בעת יצירת מופע ע " י האופרטור new הבנאי מופעל בעת יצירת מופע ע " י האופרטור new שם השיטה זהה לשם המחלקה ואין הצהרה על ערך מוחזר. שם השיטה זהה לשם המחלקה ואין הצהרה על ערך מוחזר. ניתן לבצע העמסה כמו בכל שיטה אחרת. ניתן לבצע העמסה כמו בכל שיטה אחרת. שחרור הזיכרון נעשה בד " כ באופן אוטומטי ע " י ה - Garbage collector אולם אם בכל זאת רוצים לטפל בהריסה, ניתן להגדיר שיטת סיום. שחרור הזיכרון נעשה בד " כ באופן אוטומטי ע " י ה - Garbage collector אולם אם בכל זאת רוצים לטפל בהריסה, ניתן להגדיר שיטת סיום. מהלך חיי מופע כולל בד " כ 3 שלבים עיקריים : מהלך חיי מופע כולל בד " כ 3 שלבים עיקריים : אתחול אתחול עיבוד עיבוד הריסה הריסה לצורך אתחול המופע הוגדר מנגנון מיוחד הנקרא בנאי Constructor : " שיטה המוגדרת ע " י המתכנת ונקראת אוטומטית בזמן יצירת עצם ". לצורך אתחול המופע הוגדר מנגנון מיוחד הנקרא בנאי Constructor : " שיטה המוגדרת ע " י המתכנת ונקראת אוטומטית בזמן יצירת עצם ". הבנאי מופעל בעת יצירת מופע ע " י האופרטור new הבנאי מופעל בעת יצירת מופע ע " י האופרטור new שם השיטה זהה לשם המחלקה ואין הצהרה על ערך מוחזר. שם השיטה זהה לשם המחלקה ואין הצהרה על ערך מוחזר. ניתן לבצע העמסה כמו בכל שיטה אחרת. ניתן לבצע העמסה כמו בכל שיטה אחרת. שחרור הזיכרון נעשה בד " כ באופן אוטומטי ע " י ה - Garbage collector אולם אם בכל זאת רוצים לטפל בהריסה, ניתן להגדיר שיטת סיום. שחרור הזיכרון נעשה בד " כ באופן אוטומטי ע " י ה - Garbage collector אולם אם בכל זאת רוצים לטפל בהריסה, ניתן להגדיר שיטת סיום.
10
public class Square { Point ul; //upper left corner float size; public Square (Point po, float s)//constructor שם הבנאי זהה לשם המחלקה, ללא סוג ערך מוחזר { ul = po; size = s; }}--------------------------------------------------------------------------------------------------------------- public class Main { public static void main (String[] args) { Point po = new Point ( ); po.set (5,2) Square sq = new Square (po, 8); //call constructor }} Constructors
11
public class Square { Point ul; //upper left corner float size; public Square (Point po, float s) //constructor 1 { ul = po; size = s; } public Square (float x, float y, float s) //constructor 2 { ul =new Point (x, y ); size = s; }} Constructors - overloading
12
Constructors Default constructor – קיים בנאי מחדל המוגדר ע " י המהדר לכל מחלקה אשר לא מקבל ארגומנטים ואינו מבצע דבר. כאשר כותבים constructor דורסים את ה -Default constructor.Default constructor – קיים בנאי מחדל המוגדר ע " י המהדר לכל מחלקה אשר לא מקבל ארגומנטים ואינו מבצע דבר. כאשר כותבים constructor דורסים את ה -Default constructor. Copy constructor בנאי העתקה – שיטה המשמשת להעתקת תכונות של עצם קיים לעצם החדש.Copy constructor בנאי העתקה – שיטה המשמשת להעתקת תכונות של עצם קיים לעצם החדש. Default constructor – קיים בנאי מחדל המוגדר ע " י המהדר לכל מחלקה אשר לא מקבל ארגומנטים ואינו מבצע דבר. כאשר כותבים constructor דורסים את ה -Default constructor.Default constructor – קיים בנאי מחדל המוגדר ע " י המהדר לכל מחלקה אשר לא מקבל ארגומנטים ואינו מבצע דבר. כאשר כותבים constructor דורסים את ה -Default constructor. Copy constructor בנאי העתקה – שיטה המשמשת להעתקת תכונות של עצם קיים לעצם החדש.Copy constructor בנאי העתקה – שיטה המשמשת להעתקת תכונות של עצם קיים לעצם החדש. public Student(Student s) { age = s.age; id = s.id; } public Student(int age, int id){ age = a; id = i; } ------------------------------------------------ Student noa = new Student(); שגיאה. בנאי מחדל נדרס, יש להגדירו public Student(){…} בנאי ללא ארגומנטים מוגדר מחדש public Student(int age, int id){ age = a; id = i; } ------------------------------------------------ Student noa = new Student(); שגיאה. בנאי מחדל נדרס, יש להגדירו public Student(){…} בנאי ללא ארגומנטים מוגדר מחדש
13
הצבעה כפולה לעומת שכפול Movie m, s m = new Movie(); m = new Movie(); איסוף זבל אוטומטי s = m; הצבעה כפולה – אין יצירת אובייקט חדש s.script = 5; System.out.println(m.script); מה הפלט ? s = new Movie(m); שכפול באמצעות בנאי העתקה s.script = 6; System.out.println(m.script); מה הפלט ?
14
מה הפלט ? Student yosi = new Student(); Student rami = yosi; yosi.age = 55; rami.age = 30; yosi = new Student(); System.out.println(yosi.age);System.out.println(rami.age); yosi = new Student(rami); System.out.println(rami.age);
15
this קריאה לבנאי מתוך בנאי אחר – ע " י public class Square { Point ul;//upper left corner float size; public Square(Point po, float s) //constructor1 { ul = po; size = s; System.out.print("A new rectangular was created."); } public Square(float left, float top, float s) //constructor2 { this(new Point(left,top), s);//call constructor1 System.out.print("A new rectangular was created."); }}
16
תירגול 2 סטודנט באוניברסיטה הינו בעל הפרטים הבאים : סטודנט באוניברסיטה הינו בעל הפרטים הבאים : – גיל – כתובת – מיקוד – מס ' זהות – מס ' טלפון יש להגדיר בנאי עם 5 ארגומנטים ו 4 ( ללא גיל - המאתחל את הגיל ל 30 ), בנאי מעתיק ובנאי ברירת מחדל ( ללא ארגומנטים ) המאתחל גיל ל 30 והשאר ל 0. יש להגדיר בנאי עם 5 ארגומנטים ו 4 ( ללא גיל - המאתחל את הגיל ל 30 ), בנאי מעתיק ובנאי ברירת מחדל ( ללא ארגומנטים ) המאתחל גיל ל 30 והשאר ל 0. כתוב תוכנית הקולטת את פרטי 5 סטודנטים מהמשתמש, וצור 5 מופעי סטודנט בהתאם. כתוב תוכנית הקולטת את פרטי 5 סטודנטים מהמשתמש, וצור 5 מופעי סטודנט בהתאם. במידה ובקלט הגיל = 0 יש ליצור את האובייקט ע " י בנאי עם 4 ארגומנטים. במידה ובקלט הגיל = 0 יש ליצור את האובייקט ע " י בנאי עם 4 ארגומנטים. כל יצירת מופע סטודנט תלווה בהדפסת הפרטים ( ע " י קריאה לשיטה המדפיסה את פרטי הסטודנט ) כל יצירת מופע סטודנט תלווה בהדפסת הפרטים ( ע " י קריאה לשיטה המדפיסה את פרטי הסטודנט )
17
Main… Scanner scan = new Scanner(System.in); for (int i=0;i<5;i++) age=scan.nextInt(); address=scan.nextInt();zip=scan.nextInt();id=scan.nextInt();phone=scan.nextInt();If(age==0) new Student(address,zip,id,phone); else new Student(age,address,zip,id,phone);
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.