{"id":37063,"date":"2024-11-01T09:54:32","date_gmt":"2024-11-01T09:54:32","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37063"},"modified":"2024-11-01T12:58:50","modified_gmt":"2024-11-01T12:58:50","slug":"%ec%bd%94%ed%8b%80%eb%a6%b0-%ec%95%88%eb%93%9c%eb%a1%9c%ec%9d%b4%eb%93%9c-%ec%95%b1%ea%b0%9c%eb%b0%9c-%ea%b0%95%ec%a2%8c-%ed%8b%80%eb%a6%b0-%ea%b0%9d%ec%b2%b4%ec%a7%80%ed%96%a5-%ed%94%84%eb%a1%9c-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37063\/","title":{"rendered":"Kotlin Android app development course, incorrect object-oriented programming"},"content":{"rendered":"<p><body><\/p>\n<p>\n        Recently, mobile application development has become active, and among them, Android application development is gaining attention.<br \/>\n        Kotlin is the official Android app development language supported by Google, loved by many developers for its concise and safe syntax.<br \/>\n        In this course, we will explore the basic concepts of Object-Oriented Programming (OOP) and how to apply them in Android app development using Kotlin.<br \/>\n        Specifically, we will discuss common mistakes in Object-Oriented Programming through the topic of &#8216;Mistakes in Object-Oriented Programming&#8217; and their solutions.\n    <\/p>\n<h2>1. Basics of Object-Oriented Programming<\/h2>\n<p>\n        Object-Oriented Programming (OOP) is a method of developing programs by dividing them into independent structures called objects.<br \/>\n        An object is a unit that contains both data and methods to process that data, and the program operates through interactions between objects.<br \/>\n        The four principles of OOP are as follows:\n    <\/p>\n<ul>\n<li><strong>Encapsulation<\/strong>: Bundling data and methods into a single unit and restricting external access to protect data.<\/li>\n<li><strong>Inheritance<\/strong>: Reusing the properties and methods of existing classes in new classes.<\/li>\n<li><strong>Polymorphism<\/strong>: Having the same method name, but performing different functions depending on the type of object.<\/li>\n<li><strong>Abstraction<\/strong>: Hiding unnecessary implementation details and only showing essential characteristics.<\/li>\n<\/ul>\n<h2>2. Common Mistakes in Object-Oriented Programming<\/h2>\n<p>\n        The common mistakes that many developers make while learning Object-Oriented Programming are as follows:\n    <\/p>\n<ul>\n<li>Poor class design: Creating classes with too many functions without clearly defining the responsibilities and roles of objects, thereby increasing complexity.<\/li>\n<li>Excessive inheritance: Creating unnecessary inheritance structures without understanding the complexity of multiple inheritance.<\/li>\n<li>Unnecessary global state usage: Abusing global variables, which decreases code readability and maintainability.<\/li>\n<li>Lack of dependency injection: Writing code that is difficult to test and reuse.<\/li>\n<\/ul>\n<h2>3. Object-Oriented Programming Design Using Kotlin<\/h2>\n<p>\n        Kotlin provides powerful features that support class and object-oriented programming.<br \/>\n        Below is an example of a basic class definition and object usage in Kotlin:\n    <\/p>\n<pre><code class=\"language-kotlin\">\n    \/\/ Class definition\n    class Car(val brand: String, val model: String) {\n        fun drive() {\n            println(\"$brand $model is driving.\")\n        }\n    }\n\n    \/\/ Object creation\n    fun main() {\n        val myCar = Car(\"Hyundai\", \"Sonata\")\n        myCar.drive() \/\/ Hyundai Sonata is driving.\n    }\n    <\/code><\/pre>\n<h2>4. Advanced Object-Oriented Programming Concepts<\/h2>\n<p>\n        Now we will discuss advanced concepts such as inheritance, polymorphism, abstraction, and interfaces.\n    <\/p>\n<h3>4.1 Inheritance<\/h3>\n<p>\n        Inheritance is a feature that allows newly defined classes to reuse the properties and methods of existing classes.<br \/>\n        This reduces code duplication and allows for more efficient design.<br \/>\n        Below is an example utilizing inheritance:\n    <\/p>\n<pre><code class=\"language-kotlin\">\n    \/\/ Base class\n    open class Vehicle(val brand: String) {\n        open fun start() {\n            println(\"$brand vehicle has started.\")\n        }\n    }\n\n    \/\/ Inherited class\n    class Motorcycle(brand: String) : Vehicle(brand) {\n        override fun start() {\n            println(\"$brand motorcycle has started.\")\n        }\n    }\n\n    \/\/ Object creation\n    fun main() {\n        val myMotorcycle = Motorcycle(\"Honda\")\n        myMotorcycle.start() \/\/ Honda motorcycle has started.\n    }\n    <\/code><\/pre>\n<h3>4.2 Polymorphism<\/h3>\n<p>\n        Polymorphism is an important characteristic of OOP that allows the same method to behave differently depending on the actual type of the object.<br \/>\n        Below is an example utilizing polymorphism:\n    <\/p>\n<pre><code class=\"language-kotlin\">\n    fun startVehicle(vehicle: Vehicle) {\n        vehicle.start() \/\/ Starts with Vehicle type.\n    }\n\n    \/\/ Object creation\n    fun main() {\n        val car = Car(\"Kia\", \"K5\")\n        startVehicle(car) \/\/ Kia vehicle has started.\n        val motorcycle = Motorcycle(\"BMW\")\n        startVehicle(motorcycle) \/\/ BMW motorcycle has started.\n    }\n    <\/code><\/pre>\n<h3>4.3 Abstraction<\/h3>\n<p>\n        Abstraction means representing only the essential properties and hiding unnecessary details.<br \/>\n        In Kotlin, abstract classes can be used.<br \/>\n        Below is an example of abstraction:\n    <\/p>\n<pre><code class=\"language-kotlin\">\n    abstract class Animal {\n        abstract val name: String\n        abstract fun makeSound()\n    }\n\n    class Dog : Animal() {\n        override val name = \"Dog\"\n        override fun makeSound() {\n            println(\"$name: Woof\")\n        }\n    }\n\n    fun main() {\n        val myDog = Dog()\n        myDog.makeSound() \/\/ Dog: Woof\n    }\n    <\/code><\/pre>\n<h3>4.4 Interfaces<\/h3>\n<p>\n        An interface provides a blueprint of the methods that an object must implement.<br \/>\n        This allows classes to benefit from multiple inheritance.<br \/>\n        Below is an example utilizing interfaces:\n    <\/p>\n<pre><code class=\"language-kotlin\">\n    interface Drivable {\n        fun drive()\n    }\n\n    class Truck : Drivable {\n        override fun drive() {\n            println(\"Truck is driving.\")\n        }\n    }\n\n    fun main() {\n        val myTruck = Truck()\n        myTruck.drive() \/\/ Truck is driving.\n    }\n    <\/code><\/pre>\n<h2>5. Conclusion<\/h2>\n<p>\n        In this course, we explored the concepts of object-oriented programming in Kotlin.<br \/>\n        In particular, we discussed common mistakes made in OOP design and proposed solutions to them.<br \/>\n        Proper object-oriented programming can enhance the readability, maintainability, and reusability of code, and<br \/>\n        these concepts will shine even more in Android app development using Kotlin.<br \/>\n        I encourage you to refer to the examples above and design and create your own app.\n    <\/p>\n<footer>\n<hr\/>\n<p>Author: [Author Name]<\/p>\n<p>Date: [Date]<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, mobile application development has become active, and among them, Android application development is gaining attention. Kotlin is the official Android app development language supported by Google, loved by many developers for its concise and safe syntax. In this course, we will explore the basic concepts of Object-Oriented Programming (OOP) and how to apply them &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37063\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin Android app development course, incorrect object-oriented programming&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[143],"tags":[],"class_list":["post-37063","post","type-post","status-publish","format-standard","hentry","category-kotlin-android-app-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37063\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Recently, mobile application development has become active, and among them, Android application development is gaining attention. Kotlin is the official Android app development language supported by Google, loved by many developers for its concise and safe syntax. In this course, we will explore the basic concepts of Object-Oriented Programming (OOP) and how to apply them &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin Android app development course, incorrect object-oriented programming&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37063\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:54:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:58:50+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin Android app development course, incorrect object-oriented programming\",\"datePublished\":\"2024-11-01T09:54:32+00:00\",\"dateModified\":\"2024-11-01T12:58:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/\"},\"wordCount\":512,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin Android app development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37063\/\",\"name\":\"Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:54:32+00:00\",\"dateModified\":\"2024-11-01T12:58:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37063\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37063\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin Android app development course, incorrect object-oriented programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/37063\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Recently, mobile application development has become active, and among them, Android application development is gaining attention. Kotlin is the official Android app development language supported by Google, loved by many developers for its concise and safe syntax. In this course, we will explore the basic concepts of Object-Oriented Programming (OOP) and how to apply them &hellip; \ub354 \ubcf4\uae30 \"Kotlin Android app development course, incorrect object-oriented programming\"","og_url":"https:\/\/atmokpo.com\/w\/37063\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:54:32+00:00","article_modified_time":"2024-11-01T12:58:50+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37063\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37063\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin Android app development course, incorrect object-oriented programming","datePublished":"2024-11-01T09:54:32+00:00","dateModified":"2024-11-01T12:58:50+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37063\/"},"wordCount":512,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin Android app development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37063\/","url":"https:\/\/atmokpo.com\/w\/37063\/","name":"Kotlin Android app development course, incorrect object-oriented programming - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:54:32+00:00","dateModified":"2024-11-01T12:58:50+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37063\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37063\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37063\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin Android app development course, incorrect object-oriented programming"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37063"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37063\/revisions"}],"predecessor-version":[{"id":38126,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37063\/revisions\/38126"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}