SlideShare a Scribd company logo
OOp, core language & principles
OOP, Core language & principles
- Object Oriented Programming
- Core Languages (Java != Android, Swift != iOS, C# != Xamarin)
- Some Programming Principles You Should Know:
- KISS
- DRY
- OPEN/CLOSE
- Composition > Inheritance
- Single Responsibility
- YAGNI
- Avoid Premature Optimization
- Refactor, Refactor, Refactor
- Clean code > Clever code
OOP - What
OOP
Monolithic
Modules & Components
OOP - Why
- Reusable
- Replaceable
- Upgradable
- Testable
- Easier maintenance
OOP - How
- OOP is A-P-I-E
OOP - Inheritance
OOP - Abstraction
OOP - Abstraction
OOP - Abstraction
OOP - Encapsulation
OOP - Abstraction vs
Encapsulation
OOP - Abstraction vs
Encapsulation
OOP - Polymorphism
Core Languages
Reference type vs Value type
Stack
Memory
Heap
Memory
Ref vs Value (cont)
STACK HEAP
- very fast access
- don’t have to explicitly de-allocate
variables
- space is managed efficiently by CPU,
memory will not become fragmented
- local variables only
- limit on stack size (OS-dependent)
- variables cannot be resized
- variables can be accessed globally
- no limit on memory size
- (relatively) slower access
- no guaranteed efficient use of space,
memory may become fragmented
over time as blocks of memory are
allocated, then freed
- you must manage memory (you’re in
charge of allocating and freeing
variables)
- variables can be resized using realloc()
Boxing/Unboxing
Reflection & Generic
Serialization/Deserialization
Design Pattern
Singleton Pattern
Builder Pattern
Bridge Pattern
Filter Pattern
Composite Pattern
Decorator Pattern
Strategy Pattern
Material & references
Type Name Link
Web OOD & Design patterns http://www.oodesign.com
Web SOLID in images https://lostechies.com/derickbailey/2009/02/11/soli
d-development-principles-in-motivational-pictures/
Web SOLID in series https://realm.io/news/donn-felker-solid-part-1/
Book Clean Code https://www.amazon.com/Clean-Code-Handbook-
Software-Craftsmanship/dp/0132350882
https://www.amazon.com/Code-Complete-
Practical-Handbook-
Construction/dp/0735619670/ref=sr_1_1?s=books
&ie=UTF8&qid=1490605061&sr=1-
1&keywords=code+complete
https://www.amazon.com/Design-Patterns-
Elements-Reusable-Object-
Oriented/dp/0201633612/ref=sr_1_1?s=books&ie
=UTF8&qid=1490605240&sr=1-
1&keywords=gang+of+four+design+patterns
Assignments
● Refactor your project code with OOP techniques that you’ve learnt in this course (Models,
Services/Manager…..)

More Related Content

Similar to OOp, core language & principles (20)

PPTX
Bab satu
Aida Ramlan II
 
PDF
babsatu-140703233001-phpapp666666601.pdf
kashafishfaq21
 
PDF
Understanding the Basics of Object-Oriented Programming for Beginners
Emma Jacob
 
PDF
TWINS: OOP and FP - Warburton
Codemotion
 
PPTX
Object Oriented Programming Principles
Andrew Ferlitsch
 
PDF
SOLID Principles, Building reusable, maintainable, scalable and testable soft...
Icaro Sousa
 
PDF
Object Oriented Programming | class | object
Asim217608
 
PDF
6_Object-oriented-using-java.pdf object oriented programming concepts
harinipradeep15
 
PDF
Introduction to Object Oriented Programming & Design Principles
Michael Redlich
 
PPT
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
sagarjsicg
 
PDF
Introduction to Object Oriented Programming & Design Principles
Michael Redlich
 
PPTX
1 intro
abha48
 
PDF
OOP vs COP
Gianluca Padovani
 
PPT
Basics of object oriented programming interview tips for Java
Martin A
 
PPTX
SKILLWISE - OOPS CONCEPT
Skillwise Group
 
PPT
Introduction.ppt JAVA SCRIPT PROGRAMMING AND
Jifarnecho
 
PPTX
Creativity vs Best Practices
Supun Dissanayake
 
PPT
OOPS(CS8392)_Unit-I_Notes.ppt
ganeshkarthy
 
PDF
oops.pdf
AnirudhReddy659342
 
PPTX
Java - A broad introduction
Birol Efe
 
Bab satu
Aida Ramlan II
 
babsatu-140703233001-phpapp666666601.pdf
kashafishfaq21
 
Understanding the Basics of Object-Oriented Programming for Beginners
Emma Jacob
 
TWINS: OOP and FP - Warburton
Codemotion
 
Object Oriented Programming Principles
Andrew Ferlitsch
 
SOLID Principles, Building reusable, maintainable, scalable and testable soft...
Icaro Sousa
 
Object Oriented Programming | class | object
Asim217608
 
6_Object-oriented-using-java.pdf object oriented programming concepts
harinipradeep15
 
Introduction to Object Oriented Programming & Design Principles
Michael Redlich
 
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
sagarjsicg
 
Introduction to Object Oriented Programming & Design Principles
Michael Redlich
 
1 intro
abha48
 
OOP vs COP
Gianluca Padovani
 
Basics of object oriented programming interview tips for Java
Martin A
 
SKILLWISE - OOPS CONCEPT
Skillwise Group
 
Introduction.ppt JAVA SCRIPT PROGRAMMING AND
Jifarnecho
 
Creativity vs Best Practices
Supun Dissanayake
 
OOPS(CS8392)_Unit-I_Notes.ppt
ganeshkarthy
 
Java - A broad introduction
Birol Efe
 

More from Nhan Cao (6)

PPTX
Android asynchronous programming
Nhan Cao
 
PPTX
Android component programming
Nhan Cao
 
PPTX
Flutter talkshow
Nhan Cao
 
PPTX
Ar
Nhan Cao
 
PPTX
Android tdd
Nhan Cao
 
PPTX
React native starter
Nhan Cao
 
Android asynchronous programming
Nhan Cao
 
Android component programming
Nhan Cao
 
Flutter talkshow
Nhan Cao
 
Android tdd
Nhan Cao
 
React native starter
Nhan Cao
 
Ad

Recently uploaded (20)

PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
July Patch Tuesday
Ivanti
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Français Patch Tuesday - Juillet
Ivanti
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
July Patch Tuesday
Ivanti
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Ad

OOp, core language & principles

  • 2. OOP, Core language & principles - Object Oriented Programming - Core Languages (Java != Android, Swift != iOS, C# != Xamarin) - Some Programming Principles You Should Know: - KISS - DRY - OPEN/CLOSE - Composition > Inheritance - Single Responsibility - YAGNI - Avoid Premature Optimization - Refactor, Refactor, Refactor - Clean code > Clever code
  • 4. OOP - Why - Reusable - Replaceable - Upgradable - Testable - Easier maintenance
  • 5. OOP - How - OOP is A-P-I-E
  • 11. OOP - Abstraction vs Encapsulation
  • 12. OOP - Abstraction vs Encapsulation
  • 15. Reference type vs Value type Stack Memory Heap Memory
  • 16. Ref vs Value (cont) STACK HEAP - very fast access - don’t have to explicitly de-allocate variables - space is managed efficiently by CPU, memory will not become fragmented - local variables only - limit on stack size (OS-dependent) - variables cannot be resized - variables can be accessed globally - no limit on memory size - (relatively) slower access - no guaranteed efficient use of space, memory may become fragmented over time as blocks of memory are allocated, then freed - you must manage memory (you’re in charge of allocating and freeing variables) - variables can be resized using realloc()
  • 28. Material & references Type Name Link Web OOD & Design patterns http://www.oodesign.com Web SOLID in images https://lostechies.com/derickbailey/2009/02/11/soli d-development-principles-in-motivational-pictures/ Web SOLID in series https://realm.io/news/donn-felker-solid-part-1/ Book Clean Code https://www.amazon.com/Clean-Code-Handbook- Software-Craftsmanship/dp/0132350882 https://www.amazon.com/Code-Complete- Practical-Handbook- Construction/dp/0735619670/ref=sr_1_1?s=books &ie=UTF8&qid=1490605061&sr=1- 1&keywords=code+complete https://www.amazon.com/Design-Patterns- Elements-Reusable-Object- Oriented/dp/0201633612/ref=sr_1_1?s=books&ie =UTF8&qid=1490605240&sr=1- 1&keywords=gang+of+four+design+patterns
  • 29. Assignments ● Refactor your project code with OOP techniques that you’ve learnt in this course (Models, Services/Manager…..)