{"id":931,"date":"2024-05-17T11:03:45","date_gmt":"2024-05-17T08:03:45","guid":{"rendered":"https:\/\/neflor1n9.wordpress.com\/?page_id=931"},"modified":"2024-10-18T08:04:24","modified_gmt":"2024-10-18T08:04:24","slug":"objekt-orienteeritud-programmeerimine-oop","status":"publish","type":"page","link":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/","title":{"rendered":"Objekt orienteeritud programmeerimine (OOP)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Objekt<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/ru.wikipedia.org\/wiki\/Python\"><strong>Python<\/strong><\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objekt kirjeldab \u00e4ra konkreetse loogilise kogumi\n<ul class=\"wp-block-list\">\n<li>n\u00e4iteks \u00f5ues olev punane auto on \u00fcks objekt<\/li>\n\n\n\n<li>selle taga olev roheline auto on teine objekt jne<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tavaliselt m\u00f5tleme me arvust kui \u00fchest v\u00e4\u00e4rtusest <\/li>\n\n\n\n<li>Objekt koosneb tavaliselt mitmest v\u00e4\u00e4rtusest\n<ul class=\"wp-block-list\">\n<li>v\u00e4rv, mark, mudel, pikkus, registrimass jne.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><a href=\"https:\/\/docs.python.org\/3\/tutorial\/classes.html\">Klass<\/a><\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klass kirjeldab \u00e4ra struktuuri\n<ul class=\"wp-block-list\">\n<li>n\u00e4iteks autol on v\u00e4rv, pikkus jne<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Klass (\u00fcldiselt) ei sisalda andmeid<\/li>\n\n\n\n<li>Klass on andmet\u00fc\u00fcp<\/li>\n\n\n\n<li>Samat\u00fc\u00fcpi andmed p\u00e4rinevad k\u00f5ik \u00fchest klassist\n<ul class=\"wp-block-list\">\n<li>punane auto on auto, roheline auto on auto jne<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Kuigi meil on maailmas mitu autot (objekti), siis meil on \u00fcks klass auto<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><a href=\"https:\/\/realpython.com\/python3-object-oriented-programming\/\"><strong><a href=\"https:\/\/realpython.com\/python3-object-oriented-programming\/\">OOP<\/a><\/strong><\/a><\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objekt-orienteeritud programmeerimine <strong>(OOP)<\/strong> on prgrammeerimise paradigma, mis kasutab objekte<\/li>\n\n\n\n<li>Python on objekti-orienteeritud programmeerimiskeel <strong>(OOP)<\/strong><\/li>\n\n\n\n<li>Pythonis k\u00f5ik asjad on objektid<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>OOP Tehnikad <\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kapseldamine (encapsulation) \n<ul class=\"wp-block-list\">\n<li>funktsionaalsus peidetakse<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Modulaarsus (modularity)\n<ul class=\"wp-block-list\">\n<li>programm jagatakse iseseisvateks t\u00fckkideks<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Pol\u00fcmorfism (Polymorfism)\n<ul class=\"wp-block-list\">\n<li>alamklass saab meetodeid \u00fcle kirjutada<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>P\u00e4rimine (inheritance)\n<ul class=\"wp-block-list\">\n<li>alamklass p\u00e4rib omadused ja meetodid<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>S\u00f5ne<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00f5ne on objekt<\/li>\n\n\n\n<li>Kui loote uue s\u00f5ne, siis tegelikult luuakse uus objekt, mille t\u00fc\u00fcp on <em>str<\/em><\/li>\n\n\n\n<li>S\u00f5ne &#8220;funktsioone&#8221; kutsutakse meetoditeks \n<ul class=\"wp-block-list\">\n<li>ehk siis klassis kirjeldatud funktsioonid on meetodid<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">s = \"Hello\"\nprint(type(s)) # &lt;class 'str' &gt;\nprint(id(s)) # 30773472\nprint(id(s.replace(\"H\", \"h\"))) # 61507648<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Loome s\u00f5ne <strong><em>s<\/em><\/strong> ja k\u00fcsime selle t\u00fc\u00fcbi. T\u00fc\u00fcp on str klass<\/li>\n\n\n\n<li><strong><em>id<\/em><\/strong> tagastab objekti kohta unikaalse arvu. Kui id on erinev, siis on ka objekt erinev (st m\u00e4lus erinevas kohas)<\/li>\n\n\n\n<li><strong><em>replace<\/em><\/strong> teeb uue s\u00f5ne, seda n\u00e4eme ka id-ga<\/li>\n\n\n\n<li>replace on s\u00f5ne meetod ehk funktsioon, mida saab v\u00e4lja kutsuda objektil<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><a href=\"https:\/\/docs.python.org\/3\/tutorial\/datastructures.html\">List<\/a><\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">a = [1, 2, 3]\nb = [1, 2, 3]\nc = b\nprint(id(a)) # 44058024\na.append(4)\nprint(id(a)) # 44058024 - still as b \nprint(id(b)) # 44059184\nprint(id(c)) # 44059184 - still as b\nb.pop()\nprint(id(b)) #44059184 - still the same\nprint(id(c)) # 44059184 - and same<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Listi muutes <strong><em>id<\/em><\/strong> ei muutu<\/li>\n\n\n\n<li><strong><em>c<\/em><\/strong> ja <strong><em>b<\/em><\/strong> viitavad saamule listile<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Veel objekte<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">print(type(1))     # &lt;class 'int'&gt;\nprint(type(True))  # &lt;class 'bool'&gt;\nprint(type(1.2))   # &lt;class 'float'&gt;\nprint(type(None))  # &lt;class 'NoneType'&gt;\nprint(type(len))   # &lt;class 'builtin_function_or_method'&gt;\nprint(type(type))  # &lt;class 'type'&gt;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Klass kui andmet\u00fc\u00fcp<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Iga klass on andmet\u00fc\u00fcp<\/li>\n\n\n\n<li>N\u00e4iteks on Pythonis klass <strong><em>str<\/em><\/strong><\/li>\n\n\n\n<li>Iga konkreetne s\u00f5ne, n\u00e4iteks <strong>&#8220;Tere&#8221;<\/strong>, on selle klassi objekti (ehk isend)<\/li>\n\n\n\n<li>\u00dchest klassist saab luua l\u00f5pmata palju objekte <\/li>\n\n\n\n<li>Objekti kohta \u00f6eldakse ka isend ja instants\n<ul class=\"wp-block-list\">\n<li>\u00dcldiselt m\u00f5eldakse &#8220;objekt&#8221;, &#8220;isend&#8221;, &#8220;instants&#8221; terminitega samu asju<\/li>\n\n\n\n<li>Erinevates allikates v\u00f5ivad neil erinevused olla<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Teeme oma klassi<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">class Student:\n    pass\ns = Student()\nprint(type(s))  # &lt;class '__main__.Student'&gt;\nprint(id(s))    # 12448112\nt = Student()\nprint(type(t))  # &lt;class '__main__.Student'&gt;\nprint(id(t))    # 12423408<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klass <strong><em>Student<\/em><\/strong>. <strong><em>pass<\/em><\/strong> on t\u00fchi korraldus<\/li>\n\n\n\n<li>Loome kaks isendit &#8211; nende <strong><em>id<\/em><\/strong> on erinev (nad on m\u00e4lus erinevas kohas) <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Objektide v\u00f5rdlemine<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objektide v\u00f5rdlemine <code>==<\/code> v\u00f5rdlusega kontrollib vaikimisi seda, kas nad viitavad samale objektile<\/li>\n\n\n\n<li>Seda, mida t\u00e4pselt kontrollitakse, saab \u00fcle kirjutada\n<ul class=\"wp-block-list\">\n<li>N\u00e4iteks s\u00f5ne puhul kontrollitakse seda, kas sisu (st s\u00fcmbolid) on samad jne<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">s1 = Student()\ns2 = Student()\ns3 = s1\nprint(s1 == s2)   # False\nprint(s1 == s3)   # True\nprint(s2 == s3)   # False<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Meetod<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klassis sisalduvaid funktsioone nimetatakse meetoditeks<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">class Student:\n    \"\"\"Student class.\"\"\"\n    def hello(self):  # method, \"self\" is a special parameter\n        \"\"\"Method (function) which just prints out \"Hello!\".\"\"\"\n        print(\"Hello!\")\ns = Student()   # s is an object of class Student\ns.hello()       # no \"self\" argument<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Self<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>K\u00f5ik objekti meetodid sisaldavad esimest parameetrit self\n<ul class=\"wp-block-list\">\n<li>selle parameetri nimi v\u00f5ib ka midagi muud olla; kasutage self<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>self viitab isendile<\/li>\n\n\n\n<li>Eelmises n\u00e4ites oli v\u00e4ljakutse s.hello()\n<ul class=\"wp-block-list\">\n<li>kui hello() meetod k\u00e4ima pannakse, antakse sellele <code>s<\/code> kaasa<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Meetodi jaoks vajalike v\u00e4\u00e4rtuste jaoks lisatakse need peale self parameetrit<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objekt Python Klass OOP OOP Tehnikad S\u00f5ne List Veel objekte Klass kui andmet\u00fc\u00fcp Teeme oma klassi Objektide v\u00f5rdlemine Meetod Self<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-931","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio<\/title>\n<meta name=\"description\" content=\"Objekt orienteeritud programmeerimine (OOP)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/\" \/>\n<meta property=\"og:locale\" content=\"et_EE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio\" \/>\n<meta property=\"og:description\" content=\"Objekt orienteeritud programmeerimine (OOP)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/\" \/>\n<meta property=\"og:site_name\" content=\"Bogdan Sergachev &otilde;pimapp | portfoolio\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-18T08:04:24+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/objekt-orienteeritud-programmeerimine-oop\\\/\",\"url\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/objekt-orienteeritud-programmeerimine-oop\\\/\",\"name\":\"Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/#website\"},\"datePublished\":\"2024-05-17T08:03:45+00:00\",\"dateModified\":\"2024-10-18T08:04:24+00:00\",\"description\":\"Objekt orienteeritud programmeerimine (OOP)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/objekt-orienteeritud-programmeerimine-oop\\\/#breadcrumb\"},\"inLanguage\":\"et\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/objekt-orienteeritud-programmeerimine-oop\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/objekt-orienteeritud-programmeerimine-oop\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Objekt orienteeritud programmeerimine (OOP)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/\",\"name\":\"Bogdan Sergachev &otilde;pimapp | portfoolio\",\"description\":\"Noorem Tarkvaraarendaja eriala\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"et\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio","description":"Objekt orienteeritud programmeerimine (OOP)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/","og_locale":"et_EE","og_type":"article","og_title":"Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio","og_description":"Objekt orienteeritud programmeerimine (OOP)","og_url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/","og_site_name":"Bogdan Sergachev &otilde;pimapp | portfoolio","article_modified_time":"2024-10-18T08:04:24+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/","url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/","name":"Objekt orienteeritud programmeerimine (OOP) - Bogdan Sergachev &otilde;pimapp | portfoolio","isPartOf":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/#website"},"datePublished":"2024-05-17T08:03:45+00:00","dateModified":"2024-10-18T08:04:24+00:00","description":"Objekt orienteeritud programmeerimine (OOP)","breadcrumb":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/#breadcrumb"},"inLanguage":"et","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/objekt-orienteeritud-programmeerimine-oop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bogdansergachev23.thkit.ee\/wp\/"},{"@type":"ListItem","position":2,"name":"Objekt orienteeritud programmeerimine (OOP)"}]},{"@type":"WebSite","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/#website","url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/","name":"Bogdan Sergachev &otilde;pimapp | portfoolio","description":"Noorem Tarkvaraarendaja eriala","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bogdansergachev23.thkit.ee\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"et"}]}},"_links":{"self":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/comments?post=931"}],"version-history":[{"count":1,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/931\/revisions"}],"predecessor-version":[{"id":1069,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/931\/revisions\/1069"}],"wp:attachment":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/media?parent=931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}