Methods

שפת Java – הפעם נלמד methods.

דוגמה איך ניתן לקרוא לפונקציה של מחלקה נוכחית בעזרת this

בצבע כחול יש אתחול בנאי ריק

 בצבע אדום יש אתחול בנאי שמקבל פרמטר מספרי ומאתחל ערך X של המחלקה

בצבע ירוק יש קריאה לפונקציה שנמצאת במחלקה שלנו לכן משתמשים ב-this

public class Some_Class
{
   int x=1;

   Some_Class()
   {
     //empty constructor 
   }

   Some_Class(int num)
   {
     this.x=num;
   }

   public void greet() 
   {
   System.out.println("I am greet method" + x);
   }

   public void print() 
   {
   this.greet();// THIS calls the method -greet- in our class    
   }
}

הסבר:

WOW סוף סוף נלמד קצת על OOP – Object-oriented programming 

אז מה זה מחלקה?
מטרה של מחלקה ליצור בסיס מסוים ועל סמך אותו בסיס ליצור אובייקטים שונים אחד מהשני אבל באים מאותו בסיס.

אז יש לנו מחלקה בשם Some_Class

public class Some_Class {
}

במחלקה הגדרנו פרמטר X מסוג Integer (מספר שלם)

int x=1;

ובנאי ריק

Some_Class()  
{ 
 //empty constructor   
}

מה זה בנאי?

בנאי=בונה=>לבנות : )

בנאי עוזר לנו לבנות מחלקה שלנו ופשוט יש כלל ב-Java לכל מחלקה חייב להיות בנאי!
בנוסף לפי הכלל הזה, שם של בנאי חייב להיות זהה לשם של המחלקה.

בנאי יכול להיות ריק ויכול לקבל פרמטרים.

במקרה שלנו – בנאי לא מקבל פרמטרים ולכן הוא בנאי ריק.

Some_Class()  
{ 
 //empty constructor   
}

בנוסף במחלקה שלנו קיים עוד בנאי אשר מקבל פרמטר num מסוג Integer

Some_Class(int num)  
{  
  this.x=num;  
}

מה זה "this"?

בעזרת this יש הפניה לפרמטר אשר שייך למחלקה שלנו.
זוכרים את הפרמטר x אשר הוגדרנו בהתחלה של מחלקה?

int x=1;

אז במקום 1 פרמטר X יקבל ערך שווה ל-num

הגדרת מטודה במחלקה

public void greet() 
{ 
   System.out.println("I am greet method" + x); 
}

מה זה מטודה?

מטרה של מטודה זה להגדיר פעילות מסוימת (אופי) למחלקה.
במקרה שלנו יש לנו מטודה מסוג VOID בשם greet אשר מדפיסה:

System.out.println("I am greet method" + x);

מה זה סוג VOID?

כל מטודה יכולה להחזיר ערך מסוים ולא להחזיר.
מכיוון שאנחנו רוצים רק להדפיס ולא להחזיר ערך – אז מטודה שלנו תהיה מסוג void

מטודה מסוג VOID לא מחזירה ערך או אובייקט…

בנוסף יש לנו עוד מטודה בשם print

public void print()   
{ 
  this.greet();// THIS calls the method -greet- in our class 
}

בעזרת this יש הפניה למטודה greet אשר נמצאת במחלקה שלנו.

דוגמה של יצירת אובייקט על בסיס המחלקה שלנו 

public static void main(String[] args) 
{
  Some_Class obj1 = new Some_Class();
  obj1.print();
  Some_Class obj2 = new Some_Class(30);

  obj1.print();//x=1 
  obj1.print();//x=30 
}

הסבר:

כמו בכל תוכנה בשפת Java כותבים את הקוד אשר רוצים להעריץ
בתוך סוגריים של void main:

public static void main(String[] args) {

}

בתוך סוגריים של public static void main מוגדר אובייקט בשם obj1 

Some_Class obj1 = new Some_Class();

זוכרים שמטרה של המחלקה זה ליצור בסיס מסוים, כך שנוכל ליצור אובייקטים שונים בעלי אותו בסיס?!

אז במקרה שלנו – יש לנו אובייקט בשם obj1 אשר מבוסס על המחלקה Some_Class

obj1.print();

האובייקט obj1 קורה למטודה ()print וכזכור לפי מחלקה Some_Class

public void print()   
{ 
  this.greet();// THIS calls the method -greet- in our class 
}

זאת אומרת שיש קריאה ממטודה ()print למטודה ()greet

public void greet() 
{ 
   System.out.println("I am greet method" + x); 
}

לכן יודפס 1 I am greet method

בנוסף יש לנו עוד אובייקט בשם obj2

Some_Class obj2 = new Some_Class(30);

לאומת האובייקט הראשון obj1
הפעם בהגדרת אובייקט obj2 אנחנו מעבירים פרמטר לבנאי – 30.

זוכרים מה הבדל בין בנאי ריק ולא?!

כזכור במחלקה Some_Class הגדרנו שני בנאים:

בנאי ריק

Some_Class()  
{ 
 //empty constructor   
}

ובנאי אשר מקבל פרמטר

Some_Class(int num)  
{  
  this.x=num;  
}

לכן הפעם האובייקט obj2 קורה למטודה ()print וכזכור לפי מחלקה Some_Class

public void print()   
{ 
  this.greet();// THIS calls the method -greet- in our class 
}

זאת אומרת שיש קריאה ממטודה ()print למטודה ()greet

public void greet() 
{ 
   System.out.println("I am greet method" + x);//x=30 
}

כאשר הפעם x=30  לכן יודפס 30 I am greet method

דילוג לתוכן