ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
М. ӘУЕЗОВ АТЫНДАҒЫ ОҢТҮСТІК ҚАЗАҚСТАН УНИВЕРСИТЕТІ
«Есептеу техникасы және бағдарламамен қамтамасыз ету» кафедрасы
Зертханалық жұмыс №1
Тақырыбы: Конструктор және дечтруктор. Әдістер мен функциялар. Мұрагерлік.
Орындаған: Құдайбеді Дамир
Тобы: ИП-20-6к1
Қабылдаған: Досанова Гүлжан
Шымкент 2021ж
Зертханалық жұмыс №1
Тақырыбы: Конструктор және дечтруктор. Әдістер мен функциялар. Мұрагерлік.
Нысанға бағытталған бағдарламалаудың келесі маңызды тұжырымдамасы - мұрагерлік. Кестелерге қайта оралайық. Барлық кестелердің жалпы қасиеттерін сипаттайтын кестелер класы бар делік . Дегенмен, сіз барлық кестелерді жазбаша, асхана және кофе үстелдеріне бөлуге болады, және әр топ үшін жалпы классты мұрагер ететін, сонымен қатар бірқатар өзіндік сипаттамаларын енгізетін өзіндік класс құруға болады. Осылайша, жалпы класс ата-анаболады, ал топтықкласстартуындыболыптабылатын бала болады.
OOP инкапсуляциясы екіжолментүсініледі. Көптегентілдердебұл термин деректерді жасырудыбілдіреді , яғниобъектініңішкіқұрылымынатікелейқолжеткізумүмкінеместігін, өйткенібұлқауіпті. Мысалы, сізасқазандыасқазанғатамақ салу арқылытікелейтамақпентолтырааласыз. Бірақбұлқауіпті. Сондықтанасқазанғатікелейқолжеткізужабық. Оны тамақпентолтыруүшінауыздыдепаталатын интерфейс элементіарқылырәсімжасаукерек. Онда ешқандаймұндай инкапсуляция табылады жылы ол ООП стандарттарбіріболыптабыладыдегенменPython. Python-да объектініңкез-келгенатрибутынақолжеткізугежәнеөзгертугеболады. Алайда, қажетболғанжағдайдаPython-да деректердіжасырудымодельдеумеханизмі бар.
Python-да жасырылғандеректердіңболмауы, ондабағдарламалаудыжеңілдетедіжәнетүсініктіетеді, бірақолаттаркеңістігінеқатыстыбірқатармүмкіндіктердіұсынады.
Инкапсуляцияныңекіншімағынасы - қасиеттер мен мінез-құлықтыбіртұтастұтастыққа, яғникласқабіріктіру. Инкапсуляция осы мағынадаобъектілі-бағдарлыбағдарламалаудыңанықтамасынанкөрінедіжәнебарлық OO тілдерінде.
Полиморфизм - бұлформалардыңкөптігі. Алайда, OOP тұрғысынанкерісіншеболуымүмкін. Әртүрліішкііскеасырумен, яғнибағдарламалықкодпенәртүрлікластардыңобъектілерібірдейинтерфейстергеие бола алады. Мысалы, + белгісіменбелгіленгенсандарғақосуоперациясы бар. Алайдаобъектілері осы белгіменбелгіленгенәрекеттіқолдайтынкластыанықтайаламыз. Бірақбұлобъектілерсандарболуыкерекдегендібілдірмейдіжәнеолардыңбелгілібірмөлшеріалынады. Біздіңкласстыңобъектілеріүшін + әрекетібасқашабілдіруімүмкін. Бірақ интерфейс, бұлжағдайда + белгісісандар мен біздің класс үшінбірдейболады. Полиморфизм операцияныңішкіжүзегеасуынанжәненәтижесіненкөрінеді.
Класс конструкторы –__init__() әдісі.
Python-да алдыңғы және артқы сызықтары бар әдіс атауы оның оператордың шамадан тыс жүктеу әдістері тобына жататынын көрсетеді. Егер мұндай әдістер класста анықталса, онда объектілер функциялар деп аталатын қосу, азайту сияқты операцияларға қатыса алады.
2. Класстың деструкторы - __del__(plustilino))әдісі
Программалау тілдерінде объект конструкторынан басқа оған қарама-қарсы әдіс - деструктор бар. Олобъектжасалмаған, бірақжойылғанкездеаталады.
Есептер шығару
1.Класс құру
class Data:
def sayHello(self):
print("Salem, Alem!")
data = Data()
data.sayHello()
2. self оргументі
class Cat:
name = "Margau"
noise = "Myu!"
def makeNoise(self):
print(self.name + " says: "+self.noise+ " " + self.noise)
cat=Cat()
cat.makeNoise()
3. Конструктор жасау
class Cat:
def __init__(self, name, breed):
self.name = name
self.breed = breed
cat = Cat("Felis ", "Европейская короткошерсткая кошка")
print(cat.name + "Bul " + cat.breed)
4. Деструктор жасау
class Data:
def __del__(self):
print("Nisan buzilgan")
data = Data()
del(data)
5. Қарапайым мұрагерлеу
class Person:
name = "Damir "
class Worker(Person):
wage=2002
human = Worker()
print(human.name + "tabysy $" + str(human.wage))
6. Қарапайым мұрагерлеу
from dataclasses import dataclass
@dataclass()
class Human:
name: str
fam: str
age: int
id: int
nurgisa = Human(name="Nurgisa ", fam ="Serikbay ", age=19, id=11111)
damir = Human(name="Damir ", fam="Kudaiberdi ", age=20, id=11112)
juldyz = Human(name="Juldyz ", fam="Estaeva ", age=23, id=11113)
print(nurgisa,"\n", damir,"\n", juldyz)
del damir
print(nurgisa,"\n", juldyz)
Достарыңызбен бөлісу: |