<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Abstraction Archives - Francesco Lelli %</title> <atom:link href="https://francescolelli.info/tag/abstraction/feed/" rel="self" type="application/rss+xml" /><link>https://francescolelli.info/tag/abstraction/</link> <description>Information Management, Computer Science,  Economics, Finance and more</description> <lastBuildDate>Sat, 19 Aug 2023 14:59:51 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.8.5</generator><image> <url>https://francescolelli.info/wp-content/uploads/2018/11/cropped-InstrumentElement-32x32.jpg</url><title>Abstraction Archives - Francesco Lelli %</title><link>https://francescolelli.info/tag/abstraction/</link> <width>32</width> <height>32</height> </image> <site
xmlns="com-wordpress:feed-additions:1">156264324</site> <item><title>Object Oriented Programming: A curated set of resources</title><link>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/</link> <comments>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/#respond</comments> <dc:creator><![CDATA[Francesco Lelli]]></dc:creator> <pubDate>Fri, 02 Aug 2019 11:36:03 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Abstraction]]></category> <category><![CDATA[code best practices]]></category> <category><![CDATA[Encapsulation]]></category> <category><![CDATA[naming convention]]></category> <category><![CDATA[oop]]></category> <guid
isPermaLink="false">https://francescolelli.info/?p=1573</guid><description><![CDATA[<p>Object Oriented Programming or OOP organizes code around the concept of objects, encapsulating data and functions within cohesive units. Object-Oriented Programming has permeated almost every facet of modern software development. Its principles and concepts are applied in diverse domains, from software architecture and frameworks to user interfaces, game development, real-time systems, and beyond. OOP&#8217;s ability [&#8230;]</p><p>The post <a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">Object Oriented Programming: A curated set of resources</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Object Oriented Programming or OOP organizes code around the concept of objects, encapsulating data and functions within cohesive units.</p><p>Object-Oriented Programming has permeated almost every facet of modern software development. Its principles and concepts are applied in diverse domains, from software architecture and frameworks to user interfaces, game development, real-time systems, and beyond. OOP&#8217;s ability to enhance code organization, reusability, and maintainability has solidified its role as a foundational approach in the creation of complex and reliable software systems.</p><p>OOP leverage the concept of <em>Classes</em> and <em>Objects</em> and the following 4 paradigms:</p><figure
class="wp-block-image alignright is-resized"><img
fetchpriority="high" decoding="async" data-attachment-id="1574" data-permalink="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/attachment/java-oops/" data-orig-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png" data-orig-size="557,429" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="java-oops" data-image-description="&lt;p&gt;Object Oriented Programming &lt;/p&gt;
" data-image-caption="&lt;p&gt;Object Oriented Programming &lt;/p&gt;
" data-medium-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops-300x231.png" data-large-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png" src="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png?8011c3&amp;8011c3" alt="Object oriented Programming" class="wp-image-1574" width="279" height="215" srcset="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png 557w, https://francescolelli.info/wp-content/uploads/2019/08/java-oops-300x231.png 300w" sizes="(max-width: 279px) 100vw, 279px" /><figcaption>Object Oriented Programming</figcaption></figure><ul
class="wp-block-list"><li><strong>Abstraction: </strong>a process where you show only “relevant” data and “hide” unnecessary details of an object from the user.</li><li><strong>Encapsulation</strong>: a practice that bind the data with the code that manipulates it and keeps the data and the code safe from external interference</li><li> <strong>Inheritance</strong>: the mechanism by which an object acquires the some (or all) properties of another object.</li><li> <strong>Polymorphism:</strong> a way to process objects differently based on their data type. In other words objects can have the same name for a method but the implementation may differ.</li></ul><p>If you are not familiar with these concepts I would recommend you to watch the following video that explains what is object oriented programming in a few minutes.</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="Object-Oriented Programming, Simplified" width="800" height="450" src="https://www.youtube.com/embed/pTB0EiLXUC8?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div></figure><p>If you are familiar with Python and you want to see how these things work in practice I would recommend to follow the instructions in this video that explains how to create Python Classes using the Spyder IDE:</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="How to Create Python Classes Using the Spyder IDE from Firebox Training" width="800" height="600" src="https://www.youtube.com/embed/Jss3u2s_jKs?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption> how to create Python Classes using the Spyder </figcaption></figure><p>In the case you do not know what is an Integrated Developing Environment (IDE) this article will give you the basic and explains <a
href="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/">why you need an IDE</a>.</p><p>If you put attention to the way the author of the video is writing the code you would probably notice that is following a certain naming convention. Some of these conventions are imposed by the compiler and there is no work around that. Other are best practices that will improve the readability of your code. As the majority of the example that you can find in internet follow these conventions I would recommend you to get familiar with the basic as you will save a lot of time in the long run.</p><p>This video introduce the basic (and most popularly accepted) conventions in JAVA. Python follow something similar as well:</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="Java Naming Conventions in Java. Java tutorial for beginners #14" width="800" height="450" src="https://www.youtube.com/embed/RHshkaJxsAc?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption>Notes on Naming Conventions</figcaption></figure><p>More resources on naming conventions include:</p><ul
class="wp-block-list"><li><a
href="https://en.wikipedia.org/wiki/Camel_case">Camel Case in Wikipedia</a></li><li><a
href="https://en.wikipedia.org/wiki/Naming_convention_(programming)">Naming Convention on Programming </a></li></ul><p>Clearly this is just the tip of the iceberg of Object Oriented Programming. If you want to know more you could follow this class of MIT OpenCourseWare that should set a more concrete foundation if you are not familiar with the concept at all.</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="8. Object Oriented Programming" width="800" height="450" src="https://www.youtube.com/embed/-DP1i2ZU9gk?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption>Object Oriented Programming in Python </figcaption></figure><hr
/><p><em> Get the basic of Object Oriented #programming and build better #Software . Practical examples in #Java and #python . #softwaredevelopment #SoftwareEngineer </em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fobject-oriented-programming-a-curated-set-of-resources%2F&#038;text=%20Get%20the%20basic%20of%20Object%20Oriented%20%23programming%20and%20build%20better%20%23Software%20.%20Practical%20examples%20in%20%23Java%20and%20%23python%20.%20%23softwaredevelopment%20%23SoftwareEngineer%20&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>A few more resources that can help you grasping the context surround OOP include the following:</p><ul
class="wp-block-list"><li><a
href="https://en.wikipedia.org/wiki/Object-oriented_programming">Object Oriented Programming in Wikipedia</a></li><li><a
href="https://en.wikipedia.org/wiki/Software_engineering">Software Engineering in Wikipedia</a></li></ul><p>The post <a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">Object Oriented Programming: A curated set of resources</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></content:encoded> <wfw:commentRss>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id
xmlns="com-wordpress:feed-additions:1">1573</post-id> </item> </channel> </rss>