Კომპიუტერები, Პროგრამირების
PLO - რა არის ეს? ძირითადი პრინციპები ობიექტზე ორიენტირებული პროგრამირების
რატომ ობიექტზე ორიენტირებული პროგრამირების სასურველია უმეტეს პროექტები? PLO სთავაზობს ეფექტური გზა გაუმკლავდეთ მათი სირთულისა. იმის მაგივრად პროგრამა როგორც თანმიმდევრობა შემსრულებელი ინსტრუქციები, იგი წარმოადგენს, როგორც ჯგუფის ობიექტების გარკვეული თვისებები და აწარმოოს მათ გარკვეული ქმედებები. ეს შედეგები ნათელი, უფრო საიმედო და legkosoprovozhdaemyh პროგრამები.
ძირითადი პრინციპები ობიექტზე ორიენტირებული პროგრამირების (OOP) ჩამოყალიბდა, რადგან შეზღუდვები არ იქნა ნაპოვნი წინასწარ არსებული მიდგომები. მათ შორის - შეუზღუდავად მონაცემები და დიდი რაოდენობით ბმულები, რომელიც დააწესოს შეზღუდვები ცვლილება. მათი ინფორმირებულობის და მიზეზების მნიშვნელოვანია გვესმოდეს რა OOP პროგრამირების და რა არის მისი უპირატესობა.
საპროცესო ენებზე
C, Pascal, FORTRAN და ანალოგიური ენებზე პროცედურული. რომ არის, თითოეული ოპერატორი ეუბნება კომპიუტერული, რომ რამე: მონაცემების მისაღებად, დაამატოთ მდე ნომრები, დაყოფილია ექვს, შედეგი ნაჩვენები. დანართი საპროცესო ენის დავალებით სიაში. თუ ეს არის პატარა, სხვა საორგანიზაციო პრინციპი (ხშირად მოიხსენიება, როგორც პარადიგმა) არ არის საჭირო. პროგრამისტი ქმნის სია ინსტრუქციები და კომპიუტერული ახორციელებს მათ.
ფუნქციების გამიჯვნა
როდესაც განაცხადების უფრო cumbersome სია მონაცვლეობით. რამდენიმე მესმის უფრო მეტია, ვიდრე რამდენიმე ასეული ინსტრუქციას სანამ ისინი დაჯგუფება. ამ მიზეზით, ფუნქცია იყო გზა, რათა განაცხადის უფრო გასაგები მისი შემქმნელები. ზოგიერთ ენაზე, იგივე კონცეფცია შეიძლება ეწოდოს subroutines ან პროცედურები.
ოთახი არის დაყოფილი ფუნქციები, რომელთაგან თითოეული აქვს მკაფიოდ განსაზღვრული მიზნით და ინტერფეისი.
იდეა გამოყოფის პროცედურები შეიძლება გაფართოვდა უფრო დიდი დაჯგუფება ობიექტი მოუწოდა მოდული, მაგრამ პრინციპი არის ანალოგიური: დაჯგუფება კომპონენტი, რომელიც განახორციელოს სიები დოკუმენტი.
ფუნქციების გამიჯვნა და მოდულები - ერთი კუთხეში ქვები სტრუქტურული პროგრამირების, რომელიც რამდენიმე ათეული წლის განმავლობაში, სანამ PLO იყო ის უქმნის პარადიგმა.
სტრუქტურული პროგრამირების პრობლემები
განაცხადების გახდეს უფრო დიდი, სტრუქტურული პროგრამირების იწყებენ განიცდიან სირთულეებს. პროექტები გახდეს ძალიან რთული. გადაინაცვლებს გრაფიკა. იგი მოიცავს დიდი რაოდენობით პროგრამებში. სირთულის გაიზარდა. ხარჯები სროლა up, გრაფიკის გადაიწევა, და დადგა დაშლის.
გამომწვევი მიზეზების ანალიზს წარუმატებლობის გამოვლენილი ხარვეზები საპროცესო პარადიგმა. მიუხედავად იმისა, თუ რამდენად კარგად სტრუქტურირებული განხორციელებული პროგრამირების მიდგომა, დიდი განაცხადების გახდეს ზედმეტად რთული.
რა მიზეზების ეს პრობლემა დაკავშირებული პროცედურული ენებზე? პირველი, ფუნქციები აქვს შეუზღუდავად გლობალური მონაცემები. მეორე, unrelated პროცედურები და ცუდი ღირებულებების სიმულაცია რეალურ სამყაროში.
თუ გავითვალისწინებთ, ამ საკითხების კონტექსტში ინვენტარი საბუღალტრო პროგრამული უზრუნველყოფა, ერთ-ერთი ყველაზე მნიშვნელოვანი ელემენტები გლობალური მონაცემები კომპლექტი SKUs. სხვადასხვა ფუნქციები შეიძლება ეხება მათ შესვლის ახალი მნიშვნელობა, ეს არის ნაჩვენები, ცვლილებები და ასე შემდეგ. D.
შეუზღუდავად
პროგრამა დაწერილი, მაგალითად, C, არსებობს ორი სახის მონაცემები. ადგილობრივი იმალება შიგნით ფუნქცია და სხვა პროცედურები არ გამოიყენება.
როდესაც ორი ან მეტი ფუნქციები აქვს ხელმისაწვდომობის იგივე მონაცემებით, უკანასკნელი უნდა იყოს გლობალური. როგორიცაა, მაგალითად, მხედველობაში მიიღება ინფორმაცია სუბიექტები. გლობალური მონაცემები შეიძლება ნებისმიერი პროცედურა.
დიდი პროგრამა, არსებობს მრავალი ფუნქციები და მრავალი გლობალური ელემენტებს. პრობლემა საპროცესო პარადიგმა არის, რომ ეს იწვევს დიდი რაოდენობის პოტენციური კავშირების მათ შორის.
ასეთი დიდი რაოდენობით კავშირები იწვევს რამდენიმე სირთულეები. პირველ რიგში, ეს ართულებს სტრუქტურის შესწავლის პროგრამა. მეორე, რთული შეცვალოს. ცვლილება გლობალური მონაცემთა ერთეულზე შეიძლება მოითხოვოს კორექტირება ყველა ფუნქცია რომ ჰქონდეს მას.
მაგალითად, პროგრამა საბუღალტრო ვინმე გადაწყვეტს, რომ აღრიცხული ობიექტის კოდი უნდა შედგებოდეს არა 5 ციფრები, და 12. ეს მოითხოვს ცვლილება მონაცემები ტიპის მოკლე ხანგრძლივი. ახლა უკავშირდება ფუნქცია კოდი უნდა შეიცვალოს მუშაობა ახალ ფორმატში.
როდესაც ელემენტები იცვლება უფრო დიდი პროგრამა, ძნელია იმის თქმა, რა პროცედურები უნდა მათ. მაგრამ მაშინაც კი, თუ ეს მაჩვენებელი, შეცვლის მათ შეიძლება გამოიწვიოს არასწორი ოპერაციის სხვა გლობალური მონაცემები. ყველაფერი უკავშირდება ყველაფერი, ასე რომ ცვლილება ერთ ადგილას შედეგები მოჰყვეს სხვა.
მოდელირება რეალურ სამყაროში
მეორე და უფრო მნიშვნელოვანი პრობლემა საპროცესო პარადიგმა არის, რომ მისი კონკრეტული მონაცემები და ფუნქციები ცუდად სიმულაციას რამ რეალურ სამყაროში. აქ ჩვენ საქმე გვაქვს ობიექტების, როგორიცაა ადამიანი ან მანქანა. ისინი არიან როგორც არ მონაცემების ან ფუნქცია. კომპლექსი ობიექტები რეალურ სამყაროს ატრიბუტები და ქცევა.
ატრიბუტები
მაგალითები ატრიბუტები (უწოდებენ უძრავი ქონება) ხალხი თვალის ფერი და სახელი პოსტი, მანქანა - ძალა და ნომერი კარს. როგორც აღმოჩნდა, ატრიბუტები რეალურ სამყაროში ექვივალენტი მონაცემების პროგრამა. მათ აქვთ კონკრეტული ღირებულებები, როგორიცაა ლურჯი (ფერის თვალები) და ოთხი (რაოდენობის კარი).
ქცევა
ქცევა - ის არის, რომ რეალურ სამყაროში ობიექტები საპასუხოდ რაიმე სახის გავლენა. თუ თქვენ ვთხოვო ბოსი ხელფასების გაზრდას, პასუხი არის "დიახ" ან "არა". თუ თქვენ დააჭირეთ სამუხრუჭე, მანქანა შეწყდება. და შეჩერების ამბობს ქცევის მაგალითები. ქცევის მსგავსი პროცედურა: მას რაღაც, და ეს ასე. ამდენად, მონაცემები და ფუნქციები თავად არ მოდელზე ობიექტები რეალურ სამყაროს ეფექტურად.
მიმართვისას
ობიექტის OOP წარმოდგენილია, როგორც კომპლექტი მონაცემები და ფუნქციები. მხოლოდ პროცედურები, რომლებიც ე.წ. წევრი ფუნქციების C ++, საშუალებას მიიღოს მისი ღირებულება. ეს იმალება და დაცული ცვლილებები. მნიშვნელობა და ფუნქციები ლაკონურად ერთ. Encapsulation და upryatyvanie - ძირითადი ტერმინები აღწერა ობიექტის ორიენტირებული ენებზე.
თუ გსურთ, რომ შეცვალოს მონაცემები, ეს ზუსტად იცის, რა ფუნქციები ურთიერთქმედება მათ. არც ერთ სხვა პროცედურები ვერ შედიხართ მათ. ეს ამარტივებს წერა, გამართვის, და შენარჩუნების პროგრამა.
განცხადება, როგორც წესი, შედგება რამდენიმე ობიექტი, რომელიც ურთიერთქმედება ერთმანეთს, რამაც წევრი ფუნქციები.
დღეს, ყველაზე ფართოდ გამოყენებული ენა OOP (ობიექტზე ორიენტირებული პროგრამირების) - C ++ (plus plus). ჯავის აკლია ზოგიერთი თვისებები, როგორიცაა მითითებას, თარგები და მრავალი მემკვიდრეობა, რაც ნაკლებად ძლიერი და მრავალმხრივი, ვიდრე C ++. C # ჯერ კიდევ არ მიუღწევია პოპულარობის C ++.
აღსანიშნავია, რომ ე.წ. წევრი ფუნქციების C ++ მოუწოდა მეთოდები სხვა ობიექტის ორიენტირებული ენებზე, როგორიცაა Smalltalk. მონაცემები ელემენტი ეწოდება ატრიბუტები. მოუწოდებს მეთოდი ობიექტის აგზავნის მას შეტყობინებები.
ანალოგია
თქვენ წარმოიდგინეთ, ობიექტების კომპანია დეპარტამენტები. უმეტეს ორგანიზაციების თანამშრომლები, არ მუშაობს ერთ დღეს თანამშრომლებს, შემდეგ overcharging ხელფასი, და შემდეგ ერთი კვირის ჩართული საცალო ვაჭრობა. თითოეულ განყოფილებას აქვს თავისი თანამშრომლები, ნათლად დანიშნული მოვალეობებს. არსებობს მონაცემები: მაჩვენებლების ხელფასის, გაყიდვების, საბუღალტრო თანამშრომლები და ა.შ. ხალხი დეპარტამენტების მუშაობა მათი ინფორმაცია ... დაყოფა კომპანია, შესაბამისად, ხელს უწყობს კონტროლის ოპერაციები და ინარჩუნებს მონაცემთა მთლიანობა. საბუღალტრო პასუხისმგებელია შტატში. თუ გსურთ ვიცით, საერთო თანხა ხელფასის გადახდილი სამხრეთ ფილიალი ივლისში, არ უნდა ჩავუღრმავდებით არქივი. საკმარისია გააგზავნოთ შენიშვნა პასუხისმგებელი პირი, დაველოდოთ, რომ ადამიანს აქვს დაშვება მონაცემებს და უგზავნის პასუხი მოთხოვნილი ინფორმაცია. ეს უზრუნველყოფს, შესაბამისად წესების და არარსებობის გარე ჩარევა. ანალოგიურად ობიექტი PLO უზრუნველყოფს ორგანიზაციის განაცხადი.
უნდა გვახსოვდეს, რომ ორიენტაცია ობიექტები არ ვრცელდება მუშაობის დეტალები პროგრამა. ყველაზე ინსტრუქციები C ++ ოპერატორები შეესაბამება საპროცესო ენებზე, როგორიცაა C. ფაქტობრივად, წევრი ფუნქციების C ++ ძალიან ჰგავს ფუნქციების C. მხოლოდ უფრო ფართო კონტექსტში საშუალებას მისცემს დაადგინოს ინსტრუქციის პროცედურული და ობიექტზე ორიენტირებული.
ობიექტის OOP: Definition
როდესაც გათვალისწინებით პრობლემა პროგრამირების ობიექტზე ორიენტირებული ენის ნაცვლად შეკითხვები მისი დაყოფის ცალკე ფუნქციები არის პრობლემა გამოყოფის საშუალებები. OOP აზროვნება ბევრად უფრო ადვილია განვითარება განაცხადების. ეს არის იმის გამო, რომ მსგავსება პროგრამული უზრუნველყოფა და რეალური ობიექტები.
რა სახის რამ ობიექტების OOP? აქ არის რამოდენიმე ტიპიური კატეგორიაში.
ფიზიკური ობიექტის OOP - ეს არის:
- სატრანსპორტო ნაკადების მოდელები;
- ელექტრო კომპონენტები ჩართვა დიზაინი პროგრამები;
- ქვეყნის ეკონომიკის მოდელი;
- თვითმფრინავი საჰაერო მიმოსვლის კონტროლის სისტემა.
ელემენტები გარემოს მომხმარებლის კომპიუტერში:
- მენიუ;
- ფანჯრები;
- გრაფიკა (ხაზი, მართკუთხედი, წრე);
- კლავიატურა, მაუსი, პრინტერი, მაგნიტური დისკები.
ადამიანი:
- მუშები;
- სტუდენტები;
- მომხმარებელს;
- გამყიდველები.
ინფორმაცია:
- წარმოება;
- კერძო საკითხზე;
- ლექსიკონი;
- მაგიდა სიგანე და სიგრძე დასახლებებში.
ურთიერთობა რეალური სამყაროს ობიექტების და პალესტინა შედეგი იყო კომბინაცია ფუნქციები და მონაცემები, ისინი არ რევოლუცია პროგრამირების. ასეთი მჭიდრო მატჩი საპროცესო ენებზე არსებობს.
კლასი
ობიექტების PLO - კლასი წევრი. რას ნიშნავს ეს? პროგრამირების ენები ჩაშენებული მონაცემთა ტიპები. ტიპი int, ტ. E. რიცხვი რომ წინასწარ in C ++. შეგიძლიათ განაცხადოს ნებისმიერი რაოდენობის int ცვლადები.
ანალოგიურად, გავურბივარ ობიექტების განისაზღვრება ერთი კლასის. იგი განსაზღვრავს ფუნქციები და მონაცემები შედის მისი ობიექტების, არ ქმნის მათ, ისევე, როგორც int არ შექმნა ცვლადი.
კლასი PLO - აღწერა რიგი მსგავსი ობიექტები. Prince, სტინგი და მადონა არიან მომღერლები. არ არსებობს ერთი, რომ სახელი, მაგრამ ადამიანები შეიძლება ეწოდოს ასე რომ, თუ მათ აქვთ შესაბამისი მახასიათებლები. OOP ობიექტი - ამ შემთხვევაში.
მემკვიდრეობა
ცხოვრებაში, კლასები იყოფა subclasses. მაგალითად, ცხოველების იყოფა ამფიბიების, ძუძუმწოვრების, ფრინველების, მწერების და ასე შემდეგ. D.
პრინციპი ამ სახის დაყოფა არის, რომ თითოეული ქვეკლასით აქვს საერთო თვისებები კლასის რომლიდანაც. ყველა მანქანა დისკები და საავტომობილო. ეს არის განმსაზღვრელი მახასიათებლების მანქანები. გარდა ამისა, ზოგადი მახასიათებლები თითოეული ქვეკლასით აქვს საკუთარი მახასიათებლები. არსებობს უამრავი ავტობუსი რაოდენობა და სატვირთო აქვს სივრცეში მძიმე ტვირთის გადატანა.
ანალოგიურად, ბაზის კლასი შეიძლება იყოს ქვეკლასით მშობელი რამდენიმე წარმოებულები, რომელიც შეიძლება განისაზღვროს, რომ ისინი იზიარებენ საკუთარი მახასიათებლები დამატებით. მემკვიდრეობის ფუნქციებს, გამარტივების საპროცესო პროგრამა. თუ რამდენიმე ნაწილების კოდი ვაკეთებთ საკმაოდ ბევრი იგივე, შეგიძლიათ ამონაწერი საერთო ელემენტები და ამით მათ ერთ პროცედურას. სამი პროგრამა ტერიტორიაზე შეიძლება მოვუწოდებთ ფუნქცია შეასრულოს საერთო ქმედებები, მაგრამ ისინი შეიძლება და საკუთარი ოპერაციებში. ანალოგიურად, ბაზის კლასი შეიცავს საერთო ინფორმაციას ჯგუფი წარმოებულები. მსგავსი ფუნქცია ამცირებს მემკვიდრეობის ობიექტზე ორიენტირებული პროგრამა და გაერკვია ურთიერთობა მისი ელემენტები.
გადამუშავება
მას შემდეგ, რაც კლასი შექმნილია და debugged, შეიძლება გადაეცეს სხვა პროგრამისტების reuse საკუთარი პროგრამა. ეს იგივეა, ბიბლიოთეკის ფუნქციები, რომელიც შეიძლება შედის სხვადასხვა პროგრამები.
In OOP, მემკვიდრეობის გაგრძელების იდეა მრავალჯერადი გამოყენების. არსებული კლასის შეცვლის გარეშე, ჩვენ შეგვიძლია შექმნას ახალი დამატებით სხვა ფუნქციები. მარტივად ხელახლა გამოყენების არსებული პროგრამული უზრუნველყოფა - მნიშვნელოვანი უპირატესობა დელეგირებას. ითვლება, რომ ის უზრუნველყოფს გაზრდის მომგებიანობის საწყისი ინვესტიცია.
შექმნა ახალი ტიპის მონაცემები
გადაწყვეტილებები განკუთვნილია შექმნას ახალი მონაცემთა ტიპები. დავუშვათ, რომ პროგრამა იყენებს ორგანზომილებიანი ფასეულობების (მაგალითად კოორდინატები ან გრძედი და განედი), და აქვს სურვილი, რომ გამოხატოს აქცია არითმეტიკული მათ:
Position1 = პოზიცია + წარმოშობის,
სადაც Position1, პოზიცია და წარმოშობის - წყვილი დამოუკიდებელი რიცხვითი ღირებულებებს. შექმნა კლასი, რომელიც მოიცავს ამ ორი ღირებულებები, და ცვლადი დეკლარაციების მისი ობიექტების ქმნის ახალი მონაცემები ტიპის.
პოლიმორფიზმი, გადატვირთვის
ოპერატორები = (უდრის), და + (სასურველია) გამოიყენება არითმეტიკული თანამდებობრივი ზემოთ არ იმოქმედებს, ისევე როგორც ჩაშენებული სახის, როგორიცაა int. პოზიცია ობიექტების და სხვა. არ წინასწარ და დადგენილი პროგრამული. როგორ ოპერატორები, თუ როგორ უნდა გაუმკლავდეს მათ? პასუხი იმაში მდგომარეობს, რომ ახალი ქცევა შეიძლება მითითებული მათთვის. ეს ოპერაციები იქნება წევრი ფუნქციები კლასი თანამდებობა.
გამოყენება ოპერატორები და პროცედურების მიხედვით, თუ რა ისინი მუშაობენ ეწოდება პოლიმორფიზმი. როდესაც არ არის ოპერატორი, როგორიცაა + ან =, იღებს შესაძლებლობა მუშაობა ახალი მონაცემები ტიპის, ნათქვამია, რომ ეს არის გადატვირთული. გადატვირთვისაგან პალესტინა - სახის პოლიმორფიზმი. ეს არის მისი მნიშვნელოვანი ფუნქცია.
წიგნი პალესტინა "ობიექტზე ორიენტირებული პროგრამირების for Dummies" საშუალებას მისცემს ყველას, გაეცნოს ამ თემაზე უფრო დეტალურად.
Similar articles
Trending Now