// רוצים לנהל מידע על תלמיד:
string studentName = "שרה";
int studentAge = 15;
double[] studentGrades = {85, 92, 78};
// עוד תלמיד? צריכים עוד משתנים!
string studentName2 = "יוסי";
int studentAge2 = 16;
double[] studentGrades2 = {88, 90, 85};
// 30 תלמידים?? בלתי אפשרי!
מחלקה = תבנית שמגדירה איך אובייקט נראה
מהעוגיופ אפשר ליצור המון עוגיות שונות!
using System;
namespace OOPDemo
{
// מחלקה חדשה - תבנית לתלמיד
class Student
{
// Properties - מאפיינים של תלמיד
public string Name;
public int Age;
public double[] Grades;
// Constructor - פונקציה שרצה כשיוצרים תלמיד חדש
public Student(string name, int age)
{
Name = name;
Age = age;
Grades = new double[0]; // מערך ריק
}
// Method - פעולה שתלמיד יכול לעשות
public void PrintInfo()
{
Console.WriteLine($"שם: {Name}");
Console.WriteLine($"גיל: {Age}");
}
}
class Program
{
static void Main()
{
// יצירת אובייקט - תלמיד ספציפי!
Student student1 = new Student("שרה", 15);
// גישה למאפיינים
Console.WriteLine(student1.Name); // "שרה"
// קריאה למתודה
student1.PrintInfo();
// אפשר ליצור עוד תלמידים!
Student student2 = new Student("יוסי", 16);
student2.PrintInfo();
}
}
}
public - נגיש מבחוץ למחלקהprivate - נגיש רק בתוך המחלקה (נשתמש מאוחר יותר)void או טיפוס חזרהpublic Student(string name, int age)
{
this.Name = name; // this.Name = המאפיין של האובייקט
this.Age = age; // name/age = הפרמטרים
}
using System;
class Student
{
public string Name;
public int Age;
public double[] Grades;
public Student(string name, int age)
{
Name = name;
Age = age;
Grades = new double[0];
}
// הוספת ציון
public void AddGrade(double grade)
{
// יצירת מערך חדש גדול יותר
double[] newGrades = new double[Grades.Length + 1];
// העתקת הציונים הישנים
for (int i = 0; i < Grades.Length; i++)
{
newGrades[i] = Grades[i];
}
// הוספת הציון החדש
newGrades[Grades.Length] = grade;
Grades = newGrades;
}
// חישוב ממוצע
public double GetAverage()
{
if (Grades.Length == 0) return 0;
double sum = 0;
foreach (double grade in Grades)
{
sum += grade;
}
return sum / Grades.Length;
}
public void PrintInfo()
{
Console.WriteLine($"שם: {Name}");
Console.WriteLine($"גיל: {Age}");
Console.WriteLine($"ממוצע: {GetAverage():F2}");
}
}
class Program
{
static void Main()
{
Student student = new Student("שרה", 15);
student.AddGrade(95);
student.AddGrade(88);
student.AddGrade(92);
student.PrintInfo();
// פלט:
// שם: שרה
// גיל: 15
// ממוצע: 91.67
}
}
student.AddGrade(95)צרו מחלקת BankAccount עם:
accountNumber (string), balance (double)Deposit(double amount) - הפקדהWithdraw(double amount) - משיכה (בדקו שיש מספיק כסף!)PrintBalance() - הדפסת יתרהדוגמה:
BankAccount account = new BankAccount("12345", 1000);
account.Deposit(500); // יתרה: 1500
account.Withdraw(200); // יתרה: 1300
account.PrintBalance(); // "חשבון 12345: 1300 ש״ח"
צרו מחלקת Rectangle עם:
width, heightCalculateArea()CalculatePerimeter()הוסיפו למחלקת Student:
GetHighestGrade() - מחזיר את הציון הגבוה ביותרIsPassing() - מחזיר true אם ממוצע > 60GetGradeCount() - מחזיר כמה ציונים יש