Professional Documents
Culture Documents
About Oop - 2
About Oop - 2
ავიღოთ მანქანის მაგალითი. მანქანას აქვს თავისი მახასიათებლები , არა ? მას აქვს ფერი ,
ბრენდი, მაქსიმალური სიჩქარე და კიდევ ბევრი მაგარი რამ . პითონში ჩვენ შეგვიძლია
შევქმნათ მანქანის ობიექტი, რომელსაც აქვს ეს მახასიათებლები, როგორც მისი
თვისებები. ჩვენ შეგვიძლია მივცეთ მას ისეთი მოქმედებები, რომლებსაც შეუძლია
შეასრულოს, როგორიცაა ძრავის ჩართვა, აჩქარება და გაჩერება.
CASE #1:
წიგნის კლასი:
2.
ბიბლიოთეკის კლასი:
ბიბლიოთეკის კლასი წარმოადგენს თავად ბიბლიოთეკას და აქვს მეთოდები წიგნების
დასამატებლად, წიგნების წასაშლელად და ავტორის მიხედვით წიგნების მოსაძებნად .
add_book მეთოდი ამატებს წიგნის ობიექტს ბიბლიოთეკის წიგნების კოლექციაში.
remove_book მეთოდი ამოიღებს წიგნის ობიექტს კოლექციიდან. მეთოდი
search_book_by_author ეძებს კონკრეტული ავტორის მიერ დაწერილ წიგნებს და აბრუნებს
შესატყვისი წიგნების სიას.
აღწერა:
წიგნის კლასი:
პითონი
დააკოპირეთ კოდი
კლასის წიგნი:
def __init__(თვითონ, სათაური, ავტორი, გამოცემის_წელი):
თვით.სათაური = სათაური
თვით.ავტორი = ავტორი
self.publication_year = გამოქვეყნების_წელი
ბიბლიოთეკის კლასი:
პითონი
დააკოპირეთ კოდი
კლასის ბიბლიოთეკა:
Def __Init__(თვითონ):
self.books = []
self.books.append(წიგნი)
self.books.remove(წიგნი)
შესატყვისი_წიგნები = []
წიგნისთვის self.books:
თუ წიგნი.ავტორი == ავტორი:
matching_books.append(წიგნი)
შესატყვისი_წიგნების დაბრუნება
პითონი
დააკოპირეთ კოდი
ჩემი_ბიბლიოთეკა = ბიბლიოთეკა()
my_library.add_book(book1)
my_library.add_book(book2)
my_library.add_book(book3)
my_library.remove_book(book2)
წიგნისთვის matching_books-ში:
ბეჭდვა (წიგნი.სათაური)
CASE #2
აღწერა:
სკოლის კლასი:
სკოლის კლასი წარმოადგენს სკოლას და აქვს მოსწავლეების ჩარიცხვის , სტუდენტების
გათავისუფლების და სკოლის ყველა მოსწავლის ჩამოთვლის მეთოდები . enroll_student
მეთოდი ამატებს მოსწავლის ობიექტს სკოლის მოსწავლეთა სიაში. dismiss_student მეთოდი
ამოიღებს სტუდენტის ობიექტს სიიდან. list_students მეთოდი აჩვენებს სკოლაში
ჩარიცხული ყველა მოსწავლის სახელს.
აღწერა:
სტუდენტური კლასი:
პითონი
დააკოპირეთ კოდი
კლასის მოსწავლე:
def __ init__ (თავი, სახელი, კლასი, ასაკი):
თვით.სახელი = სახელი
თვით.კლასი = შეფასება
თვით.ასაკი = ასაკი
სწავლა (თვითონ):
def take_exam(self):
სკოლის კლასი:
პითონი
დააკოპირეთ კოდი
კლასის სკოლა:
თვით.სახელი = სახელი
თვით.ადგილმდებარეობა = მდებარეობა
თვითმმართველობა.სტუდენტები = []
self.students.append(სტუდენტი)
self.students.remove(სტუდენტი)
def list_students(self):
print(f"- {student.name}")
პითონი
დააკოპირეთ კოდი
my_school.enroll_student(student1)
my_school.enroll_student(student2)
my_school.enroll_student(student3)
my_school.dismiss_student(student2)
# ჩამოთვალეთ სკოლის ყველა მოსწავლე
my_school.list_students()
ამ კოდში ჩვენ ვქმნით სკოლის ობიექტს სახელად my_school და სამ სტუდენტურ ობიექტს ,
რომლებიც წარმოადგენენ სხვადასხვა სტუდენტებს. შემდეგ ჩვენ ვარიცხავთ ამ
მოსწავლეებს სკოლაში enroll_student მეთოდით. შემდეგ სკოლიდან გავათავისუფლებთ
ერთ მოსწავლეს dismiss_student მეთოდით. ბოლოს ჩამოვთვლით სკოლის ყველა
მოსწავლეს list_students მეთოდით.
ასე რომ, ამ შემთხვევაში, OOP გვეხმარება შევქმნათ სკოლის მართვის სისტემა , რომელიც
ეფექტურად მართავს სტუდენტებს და საშუალებას აძლევს მომხმარებლებს
განახორციელონ ოპერაციები სტუდენტების ჩარიცხვასთან და გათავისუფლებასთან .
ენკაფსულაცია:
მემკვიდრეობა:
მაგალითი: იფიქრეთ ცხოველის საგანზე. მას აქვს ისეთი თვისებები, როგორიცაა ფერი და
ზომა, და შეუძლია გააკეთოს ისეთი რამ, როგორიცაა ჭამა და ძილი. ახლა ჩვენ შეგვიძლია
შევქმნათ ძაღლის ობიექტი, რომელიც მემკვიდრეობით მიიღებს ყველა ამ თვისებას და
ქცევას ცხოველის ობიექტისგან, მაგრამ ასევე აქვს თავისი უნიკალური თვისებები ,
როგორიცაა ყეფა და კუდის ქნევა.
პოლიმორფიზმი:
მაგალითი: განვიხილოთ Shape ობიექტი მეთოდით, რომელსაც ეწოდება draw(). ახლა ჩვენ
შეგვიძლია შევქმნათ სხვადასხვა ობიექტები, როგორიცაა წრე, კვადრატი და სამკუთხედი ,
რომლებიც მემკვიდრეობით მიიღება Shape ობიექტისგან. როდესაც ჩვენ მოვუწოდებთ
draw() მეთოდს თითოეულ ობიექტზე, ის განსხვავებულად იქცევა საკუთარი
განხორციელების საფუძველზე. წრე დახაზავს წრეს, კვადრატი დახაზავს კვადრატს და ა .შ .
აბსტრაქცია:
ასე რომ, ბავშვებო, შემდეგ ჯერზე, როცა თქვენს სათამაშოებს დაინახავთ, იფიქრეთ მათი
განსაკუთრებული თვისებების შეფუთვაზე, თვისებების მემკვიდრეობაზე , ფორმის
შეცვლაზე და მნიშვნელოვან ნაწილებზე ფოკუსირებაზე. ეს არის ობიექტზე
ორიენტირებული პროგრამირების ძალა!
Oop-ების მაგალითები
კლასის და მეთოდების გამოძახება