Menu
Coddy logo textTech

מחלקות לעומת אובייקטים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-PHP של Coddy. שיעור 3 מתוך 91.

מחלקות ואובייקטים ממלאים תפקידים שונים. מחלקה היא תבנית, ואילו אובייקט הוא מה שבונים על פי התבנית הזאת.

הנה דוגמה למחלקה עם מאפיינים שהוצהרו:

<?php
class Dog {
    public $name;
    public $breed;
}

מילת המפתח public פירושה שניתן לגשת למאפיינים האלה מחוץ למחלקה. נלמד עוד על public בשיעור על מאפיינים.

עכשיו צרו אובייקטים מהמחלקה Dog:

$dog1 = new Dog();
$dog2 = new Dog();

לאובייקטים יכולים להיות ערכים נפרדים עבור המאפיינים שלהם:

$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";

$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";

האופרטור -> משמש לגישה למאפיינים של אובייקט.

הדפס את הנתונים של כל אובייקט:

echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";

פלט:

Nicky is a Siberian Husky
Teemon is a Shu'ali

ההבדל העיקרי: המחלקה Dog מגדירה את המבנה המשותף לכל הכלבים, ואילו האובייקטים $dog1 ו-$dog2 מייצגים כלבים מסוימים, נפרדים, בעלי ערכי מאפיינים ייחודיים.

challenge icon

אתגר

קל

השלימו את הקוד כדי ליצור שני אובייקטים של תלמיד מהמחלקה Student ולהגדיר את המאפיינים שלהם.

  • student.php: מכיל את המחלקה Student (נעול)
  • driver.php: צרו אובייקטים והגדירו את המאפיינים שלהם

הגדירו את הערכים הבאים:

  • $student1: השם הוא "Alice" והציון הוא "A"
  • $student2: השם הוא "Bob" והציון הוא "B"

נסו בעצמכם

<?php
require_once 'student.php';

// TODO: צרו שני אובייקטים של תלמידים


// TODO: הגדירו מאפיינים עבור student1 (name: "Alice", grade: "A")


// TODO: הגדירו מאפיינים עבור student2 (name: "Bob", grade: "B")


// הדפיסו את פרטי התלמידים
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר PHP אונליין