SlideShare a Scribd company logo
1 of 38
Java & JEE Training
Session 7 – Object Oriented Analysis and Design with
Java
Page 1Classification: Restricted
Agenda
• Object Oriented Programming Concepts
• Introduction to OO Analysis and Design
Java & JEE Training
Object Oriented Programming
Page 3Classification: Restricted
Object Oriented Programming
• Why OO programming?
• What is OOAD? Why?
Page 4Classification: Restricted
Why Object Oriented?
Page 5Classification: Restricted
5
What kind of language can alleviate difficulties with
communication & complexity hopefully well?
Why Object-Oriented?
“The "software crises" came about when people realized the major
problems in software development were … caused by communication
difficulties and the management of complexity” [Budd]
The Whorfian Hypothesis:
Human beings … are very much at the mercy of the particular language
which has become the medium of expression for their society … the 'real
world' is … built upon the language habits …



Page 6Classification: Restricted
Why Object-Oriented?
For conceptual.. Modelling reasons…
What kind of language can be used to create this concept diagram, or Harry’s
mental image?
Harry’s mental image
Page 7Classification: Restricted
Why Object-Oriented?
For conceptual.. Modelling reasons…
What kind of language can be used to create this concept diagram, or Harry’s
mental image?
Harry’s mental image Model with Procedural language
Page 8Classification: Restricted
Why Object-Oriented?
For conceptual.. Modelling reasons…
What kind of language can be used to create this concept diagram, or Harry’s
mental image?
Water
Rivers Oceans
Fish
Penguins
Crocodiles
Fresh water
Salt water
have
have
have
live in
have
have
Harry’s mental image Model with Object Oriented
Page 9Classification: Restricted
Why Object-Oriented?
Why Model?
• To understand why a software system is needed, what it should do, and
how it should do it.
• To communicate our understanding of why, what and how.
• To detect commonalities and differences in your perception, my
perception, his perception and her perception of reality.
• To detect misunderstandings and miscommunications.
Page 10Classification: Restricted
Object Oriented Programming
• Consists of classes and object.
• Object communicates with each other by passing messages
What is an
object????
Page 11Classification: Restricted
Object States
An Object has State and Behavior
Page 12Classification: Restricted
Objects
• Objects have state and behavior
State: What an object knows about itself
Behavior :What an object can do.
Object
Name
State =
charecter
stics
Behaviou
r:
Dog
State:
Name
Breed
Height
Weight
Behavi
our:
eat()
run()
walk()
Page 13Classification: Restricted
Class
• Class is Blue Print
• Logical structure
• Set of instructions given to JVM , how to create instance ( object ) out of
it.
Page 14Classification: Restricted
Class
• Class consists of
• Member variables and member methods.
• State/ characteristics is represented via member variables
• Member methods defines the responsibility of the class
• Data within object represents its state.
• State - Member Variables
• To:
• Text:
• Behavior – Member functions
• sendSms
• Forward
• delete
Page 15Classification: Restricted
Messages
To
Text
sendSms
Forward
cancel
Messages1: Tom
To : 123-456-
7896
Text : Hi Tom,
sendSms
Forward
cancel
Messages2: Jack
To : 478-963-
7896
Text : Hi Jack
sendSms
Save
Delete
Class
Object Tom
Object Jack
Page 16Classification: Restricted
Contacts
Name:
Number
email
createContact
updateContact
deleteContact
Contacts1: Tom
Name: Tom
Number : 456-789-
7895
Email
:tom@gmail.com
createContact
updateContact
Contacts2: Jack
Name: Jack
Number 789-896-
8965
Email:
jack@gmail.com
createContact
updateContact
Page 17Classification: Restricted
Features of OOP: 4 pillars
• Inheritance: When one object acquires all the properties and behaviours of
parent object i.e. known as inheritance. It provides code reusability.
• Polymorphism: When one task is performed by different ways i.e. known as
polymorphism. For example: to convince the customer differently, to draw
something, shape or rectangle etc. In Java, we use method overloading and
method overriding to achieve polymorphism.
• Abstraction: Hiding internal details and showing functionality. In Java, we
use abstract class and interface to achieve abstraction.
• Encapsulation: Binding (or wrapping) code and data together into a single
unit is known as encapsulation. For example: capsule, it is wrapped with
different medicines. A Java class is the example of encapsulation. Java
bean is the fully encapsulated class because all the data members are
private here.
Page 18Classification: Restricted
18
Encapsulation
a.k.a. information hiding
Objects encapsulate:
property
behavior as a collection of methods invoked by messages
…state as a collection of instance variables
Abstraction
Focus on the essential
Omits tremendous amount of details
…Focus on what an object “is and does”
What is Object-Orientation
- Abstraction and Encapsulation
Page 19Classification: Restricted
What is Object-Orientation
- Subclass vs. Superclass / Inheritance
• Specialization: The act of defining one class as a refinement of another.
• Subclass: A class defined in terms of a specialization of a superclass using
inheritance.
• Superclass: A class serving as a base for inheritance in a class hierarchy
• Inheritance: Automatic duplication of superclass attribute and behavior definitions
in subclass.
multiple inheritance?
Person
name
SSN
Student
std-id
level
Employee
emp-id
age
Page 20Classification: Restricted
What is Object-Orientation
- Polymorphism
Objects of different classes respond to the same message differently.
Page 21Classification: Restricted
Advantages of Object Oriented Approach
• Realistic Modelling
Page 22Classification: Restricted
Advantages of Object Oriented Programing
• Realistic Modelling
Bike
String color;
String model;
Integer speed;
Accelerate()
Decelerate()
Break()
Page 23Classification: Restricted
Advantages of Object Oriented Approach
• Code Reusability
Contacts1: Tom
Name: Tom
Number : 456-
789-7895
Email
:tom@gmail.com
createContact
updateContact
deleteContact
Page 24Classification: Restricted
Advantages of Object Oriented Programing
• Flexibility to change:
WordAppV1 WordAppV2
Page 25Classification: Restricted
Advantages of Object Oriented
• Modularity
Java & JEE Training
Object Oriented Analysis and Design
Page 27Classification: Restricted
Difference between Analysis and Design…
• A basic system (or subsystem)
SystemInput Output
Page 28Classification: Restricted
Difference between Analysis and Design…
• Analysis
• Design
SystemInput ????
????Input Output
Page 29Classification: Restricted
29
What is OOAD?
• Analysis — understanding, finding and describing concepts in the problem
domain.
• Design — understanding and defining software solution/objects that
represent the analysis concepts and will eventually be implemented in
code.
• OOAD — Analysis is object-oriented and design is object-oriented. A
software development approach that emphasizes a logical solution based
on objects.
Maintainability through Traceability!
Page 30Classification: Restricted
30
Traceability => Maintainability
Artificial problem
Accidental design
Page 31Classification: Restricted
More later…
• More practical examples of OOAD in later sessions…
• Now let us start looking at Object Oriented Programming concepts using
Java
Java & JEE Training
Object Oriented Programming with Java
- Basic Class Demo
Page 33Classification: Restricted
Naming Conventions
Name Convention
class name should start with uppercase letter and be a noun e.g.
String, Color, Button, System, Thread etc.
interface name should start with uppercase letter and be an adjective
e.g. Runnable, Remote, ActionListener etc.
method name should start with lowercase letter and be a verb e.g.
actionPerformed(), main(), print(), println() etc.
variable name should start with lowercase letter e.g. firstName,
orderNumber etc.
package name should be in lowercase letter e.g. java, lang, sql, util
etc.
constants name should be in uppercase letter. e.g. RED, YELLOW,
MAX_PRIORITY etc.
Page 34Classification: Restricted
Object and Class in Java - Demo
A basic example of a class:
class Student1{
int id;//data member (also instance variable)
String name;//data member(also instance variable)
public static void main(String args[]){
Student1 s1=new Student1();//creating an object of Student
System.out.println(s1.id);
System.out.println(s1.name);
}
}
Page 35Classification: Restricted
Another Example of Objects and Classes in Java
class Student2{
int rollno;
String name;
void insertRecord(int r, String n){ //method
rollno=r;
name=n;
}
void displayInformation(){System.out.println(rollno+" "+name);}//method
public static void main(String args[]){
Student2 s1=new Student2();
Student2 s2=new Student2();
s1.insertRecord(111,"Karan");
s2.insertRecord(222,"Aryan");
s1.displayInformation();
s2.displayInformation();
}
}
Page 36Classification: Restricted
Topics to be covered in next session
• Deep dive into coding OOP with Java… with practical examples.
• How to create a class
• How to create objects
• How to create instance variables
• How to create class variables
• Constructors
Page 37Classification: Restricted
Thank You!

More Related Content

What's hot

Object oriented programming concepts
Object oriented programming conceptsObject oriented programming concepts
Object oriented programming conceptsrahuld115
 
Chapter2 array of objects
Chapter2 array of objectsChapter2 array of objects
Chapter2 array of objectsMahmoud Alfarra
 
04. Review OOP with Java
04. Review OOP with Java04. Review OOP with Java
04. Review OOP with JavaOum Saokosal
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPTAjay Chimmani
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingMoutaz Haddara
 
Classes And Objects
Classes And ObjectsClasses And Objects
Classes And Objectsrahulsahay19
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية Mahmoud Alfarra
 
Java Programming - Polymorphism
Java Programming - PolymorphismJava Programming - Polymorphism
Java Programming - PolymorphismOum Saokosal
 
Session 13 - Exception handling - continued
Session 13 - Exception handling - continuedSession 13 - Exception handling - continued
Session 13 - Exception handling - continuedPawanMM
 
Ruby OOP: Objects over Classes
Ruby OOP: Objects over ClassesRuby OOP: Objects over Classes
Ruby OOP: Objects over ClassesAman King
 
Object oriented programming concept- Saurabh Upadhyay
Object oriented programming concept- Saurabh UpadhyayObject oriented programming concept- Saurabh Upadhyay
Object oriented programming concept- Saurabh UpadhyaySaurabh Upadhyay
 
Inner Classes & Multi Threading in JAVA
Inner Classes & Multi Threading in JAVAInner Classes & Multi Threading in JAVA
Inner Classes & Multi Threading in JAVATech_MX
 

What's hot (20)

OOPS Characteristics
OOPS CharacteristicsOOPS Characteristics
OOPS Characteristics
 
Object oriented programming With C#
Object oriented programming With C#Object oriented programming With C#
Object oriented programming With C#
 
Object oriented programming concepts
Object oriented programming conceptsObject oriented programming concepts
Object oriented programming concepts
 
Chapter2 array of objects
Chapter2 array of objectsChapter2 array of objects
Chapter2 array of objects
 
04. Review OOP with Java
04. Review OOP with Java04. Review OOP with Java
04. Review OOP with Java
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Characteristics of oop
Characteristics of oopCharacteristics of oop
Characteristics of oop
 
Classes And Objects
Classes And ObjectsClasses And Objects
Classes And Objects
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
Oops concept on c#
Oops concept on c#Oops concept on c#
Oops concept on c#
 
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
 
Java Programming - Polymorphism
Java Programming - PolymorphismJava Programming - Polymorphism
Java Programming - Polymorphism
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Session 13 - Exception handling - continued
Session 13 - Exception handling - continuedSession 13 - Exception handling - continued
Session 13 - Exception handling - continued
 
Ruby OOP: Objects over Classes
Ruby OOP: Objects over ClassesRuby OOP: Objects over Classes
Ruby OOP: Objects over Classes
 
Object oriented programming concept- Saurabh Upadhyay
Object oriented programming concept- Saurabh UpadhyayObject oriented programming concept- Saurabh Upadhyay
Object oriented programming concept- Saurabh Upadhyay
 
Inner Classes & Multi Threading in JAVA
Inner Classes & Multi Threading in JAVAInner Classes & Multi Threading in JAVA
Inner Classes & Multi Threading in JAVA
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 

Similar to Session 07 - Intro to Object Oriented Programming with Java

Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Hitesh-Java
 
Core Java for Selenium
Core Java for SeleniumCore Java for Selenium
Core Java for SeleniumRajathi-QA
 
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxPHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxAtikur Rahman
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP conceptsAhmed Farag
 
Object oriented vs. object based programming
Object oriented vs. object based  programmingObject oriented vs. object based  programming
Object oriented vs. object based programmingMohammad Kamrul Hasan
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingRatnaJava
 
Introduction to Java Object Oiented Concepts and Basic terminologies
Introduction to Java Object Oiented Concepts and Basic terminologiesIntroduction to Java Object Oiented Concepts and Basic terminologies
Introduction to Java Object Oiented Concepts and Basic terminologiesTabassumMaktum
 
power poitnt of oops
power poitnt of oopspower poitnt of oops
power poitnt of oopsDhiraj Kumar
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.pptTigistTilahun1
 
C++ unit-1-part-3
C++ unit-1-part-3C++ unit-1-part-3
C++ unit-1-part-3Jadavsejal
 
Introduction to oop and java fundamentals
Introduction to oop and java fundamentalsIntroduction to oop and java fundamentals
Introduction to oop and java fundamentalsAnsgarMary
 
Java OOPs Concepts.docx
Java OOPs Concepts.docxJava OOPs Concepts.docx
Java OOPs Concepts.docxFredWauyo
 
OO Development 4 - Object Concepts
OO Development 4 - Object ConceptsOO Development 4 - Object Concepts
OO Development 4 - Object ConceptsRandy Connolly
 
Java OOP Concept
Java OOP ConceptJava OOP Concept
Java OOP ConceptNikitaGour5
 

Similar to Session 07 - Intro to Object Oriented Programming with Java (20)

Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java
 
Core Java for Selenium
Core Java for SeleniumCore Java for Selenium
Core Java for Selenium
 
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxPHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptx
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP concepts
 
Object oriented vs. object based programming
Object oriented vs. object based  programmingObject oriented vs. object based  programming
Object oriented vs. object based programming
 
C# by Zaheer Abbas Aghani
C# by Zaheer Abbas AghaniC# by Zaheer Abbas Aghani
C# by Zaheer Abbas Aghani
 
C# by Zaheer Abbas Aghani
C# by Zaheer Abbas AghaniC# by Zaheer Abbas Aghani
C# by Zaheer Abbas Aghani
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Introduction to Java Object Oiented Concepts and Basic terminologies
Introduction to Java Object Oiented Concepts and Basic terminologiesIntroduction to Java Object Oiented Concepts and Basic terminologies
Introduction to Java Object Oiented Concepts and Basic terminologies
 
javaopps concepts
javaopps conceptsjavaopps concepts
javaopps concepts
 
OOP.pptx
OOP.pptxOOP.pptx
OOP.pptx
 
power poitnt of oops
power poitnt of oopspower poitnt of oops
power poitnt of oops
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.ppt
 
Oops concepts
Oops conceptsOops concepts
Oops concepts
 
C++ unit-1-part-3
C++ unit-1-part-3C++ unit-1-part-3
C++ unit-1-part-3
 
Introduction to oop and java fundamentals
Introduction to oop and java fundamentalsIntroduction to oop and java fundamentals
Introduction to oop and java fundamentals
 
Java OOPs Concepts.docx
Java OOPs Concepts.docxJava OOPs Concepts.docx
Java OOPs Concepts.docx
 
OOP intro.ppt
OOP intro.pptOOP intro.ppt
OOP intro.ppt
 
OO Development 4 - Object Concepts
OO Development 4 - Object ConceptsOO Development 4 - Object Concepts
OO Development 4 - Object Concepts
 
Java OOP Concept
Java OOP ConceptJava OOP Concept
Java OOP Concept
 

More from PawanMM

Session 48 - JS, JSON and AJAX
Session 48 - JS, JSON and AJAXSession 48 - JS, JSON and AJAX
Session 48 - JS, JSON and AJAXPawanMM
 
Session 46 - Spring - Part 4 - Spring MVC
Session 46 - Spring - Part 4 - Spring MVCSession 46 - Spring - Part 4 - Spring MVC
Session 46 - Spring - Part 4 - Spring MVCPawanMM
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPPawanMM
 
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based Configuration
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based ConfigurationSession 44 - Spring - Part 2 - Autowiring, Annotations, Java based Configuration
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based ConfigurationPawanMM
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansPawanMM
 
Session 42 - Struts 2 Hibernate Integration
Session 42 - Struts 2 Hibernate IntegrationSession 42 - Struts 2 Hibernate Integration
Session 42 - Struts 2 Hibernate IntegrationPawanMM
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionPawanMM
 
Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2PawanMM
 
Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1PawanMM
 
Session 38 - Core Java (New Features) - Part 1
Session 38 - Core Java (New Features) - Part 1Session 38 - Core Java (New Features) - Part 1
Session 38 - Core Java (New Features) - Part 1PawanMM
 
Session 37 - JSP - Part 2 (final)
Session 37 - JSP - Part 2 (final)Session 37 - JSP - Part 2 (final)
Session 37 - JSP - Part 2 (final)PawanMM
 
Session 36 - JSP - Part 1
Session 36 - JSP - Part 1Session 36 - JSP - Part 1
Session 36 - JSP - Part 1PawanMM
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design PatternsPawanMM
 
Session 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsSession 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsPawanMM
 
Session 33 - Session Management using other Techniques
Session 33 - Session Management using other TechniquesSession 33 - Session Management using other Techniques
Session 33 - Session Management using other TechniquesPawanMM
 
Session 32 - Session Management using Cookies
Session 32 - Session Management using CookiesSession 32 - Session Management using Cookies
Session 32 - Session Management using CookiesPawanMM
 
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsSession 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsPawanMM
 
Session 30 - Servlets - Part 6
Session 30 - Servlets - Part 6Session 30 - Servlets - Part 6
Session 30 - Servlets - Part 6PawanMM
 
Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5PawanMM
 
Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4PawanMM
 

More from PawanMM (20)

Session 48 - JS, JSON and AJAX
Session 48 - JS, JSON and AJAXSession 48 - JS, JSON and AJAX
Session 48 - JS, JSON and AJAX
 
Session 46 - Spring - Part 4 - Spring MVC
Session 46 - Spring - Part 4 - Spring MVCSession 46 - Spring - Part 4 - Spring MVC
Session 46 - Spring - Part 4 - Spring MVC
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOP
 
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based Configuration
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based ConfigurationSession 44 - Spring - Part 2 - Autowiring, Annotations, Java based Configuration
Session 44 - Spring - Part 2 - Autowiring, Annotations, Java based Configuration
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI Beans
 
Session 42 - Struts 2 Hibernate Integration
Session 42 - Struts 2 Hibernate IntegrationSession 42 - Struts 2 Hibernate Integration
Session 42 - Struts 2 Hibernate Integration
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
 
Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2
 
Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1
 
Session 38 - Core Java (New Features) - Part 1
Session 38 - Core Java (New Features) - Part 1Session 38 - Core Java (New Features) - Part 1
Session 38 - Core Java (New Features) - Part 1
 
Session 37 - JSP - Part 2 (final)
Session 37 - JSP - Part 2 (final)Session 37 - JSP - Part 2 (final)
Session 37 - JSP - Part 2 (final)
 
Session 36 - JSP - Part 1
Session 36 - JSP - Part 1Session 36 - JSP - Part 1
Session 36 - JSP - Part 1
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design Patterns
 
Session 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsSession 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design Patterns
 
Session 33 - Session Management using other Techniques
Session 33 - Session Management using other TechniquesSession 33 - Session Management using other Techniques
Session 33 - Session Management using other Techniques
 
Session 32 - Session Management using Cookies
Session 32 - Session Management using CookiesSession 32 - Session Management using Cookies
Session 32 - Session Management using Cookies
 
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsSession 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
 
Session 30 - Servlets - Part 6
Session 30 - Servlets - Part 6Session 30 - Servlets - Part 6
Session 30 - Servlets - Part 6
 
Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5
 
Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4
 

Recently uploaded

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Session 07 - Intro to Object Oriented Programming with Java

  • 1. Java & JEE Training Session 7 – Object Oriented Analysis and Design with Java
  • 2. Page 1Classification: Restricted Agenda • Object Oriented Programming Concepts • Introduction to OO Analysis and Design
  • 3. Java & JEE Training Object Oriented Programming
  • 4. Page 3Classification: Restricted Object Oriented Programming • Why OO programming? • What is OOAD? Why?
  • 6. Page 5Classification: Restricted 5 What kind of language can alleviate difficulties with communication & complexity hopefully well? Why Object-Oriented? “The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd] The Whorfian Hypothesis: Human beings … are very much at the mercy of the particular language which has become the medium of expression for their society … the 'real world' is … built upon the language habits …   
  • 7. Page 6Classification: Restricted Why Object-Oriented? For conceptual.. Modelling reasons… What kind of language can be used to create this concept diagram, or Harry’s mental image? Harry’s mental image
  • 8. Page 7Classification: Restricted Why Object-Oriented? For conceptual.. Modelling reasons… What kind of language can be used to create this concept diagram, or Harry’s mental image? Harry’s mental image Model with Procedural language
  • 9. Page 8Classification: Restricted Why Object-Oriented? For conceptual.. Modelling reasons… What kind of language can be used to create this concept diagram, or Harry’s mental image? Water Rivers Oceans Fish Penguins Crocodiles Fresh water Salt water have have have live in have have Harry’s mental image Model with Object Oriented
  • 10. Page 9Classification: Restricted Why Object-Oriented? Why Model? • To understand why a software system is needed, what it should do, and how it should do it. • To communicate our understanding of why, what and how. • To detect commonalities and differences in your perception, my perception, his perception and her perception of reality. • To detect misunderstandings and miscommunications.
  • 11. Page 10Classification: Restricted Object Oriented Programming • Consists of classes and object. • Object communicates with each other by passing messages What is an object????
  • 12. Page 11Classification: Restricted Object States An Object has State and Behavior
  • 13. Page 12Classification: Restricted Objects • Objects have state and behavior State: What an object knows about itself Behavior :What an object can do. Object Name State = charecter stics Behaviou r: Dog State: Name Breed Height Weight Behavi our: eat() run() walk()
  • 14. Page 13Classification: Restricted Class • Class is Blue Print • Logical structure • Set of instructions given to JVM , how to create instance ( object ) out of it.
  • 15. Page 14Classification: Restricted Class • Class consists of • Member variables and member methods. • State/ characteristics is represented via member variables • Member methods defines the responsibility of the class • Data within object represents its state. • State - Member Variables • To: • Text: • Behavior – Member functions • sendSms • Forward • delete
  • 16. Page 15Classification: Restricted Messages To Text sendSms Forward cancel Messages1: Tom To : 123-456- 7896 Text : Hi Tom, sendSms Forward cancel Messages2: Jack To : 478-963- 7896 Text : Hi Jack sendSms Save Delete Class Object Tom Object Jack
  • 17. Page 16Classification: Restricted Contacts Name: Number email createContact updateContact deleteContact Contacts1: Tom Name: Tom Number : 456-789- 7895 Email :tom@gmail.com createContact updateContact Contacts2: Jack Name: Jack Number 789-896- 8965 Email: jack@gmail.com createContact updateContact
  • 18. Page 17Classification: Restricted Features of OOP: 4 pillars • Inheritance: When one object acquires all the properties and behaviours of parent object i.e. known as inheritance. It provides code reusability. • Polymorphism: When one task is performed by different ways i.e. known as polymorphism. For example: to convince the customer differently, to draw something, shape or rectangle etc. In Java, we use method overloading and method overriding to achieve polymorphism. • Abstraction: Hiding internal details and showing functionality. In Java, we use abstract class and interface to achieve abstraction. • Encapsulation: Binding (or wrapping) code and data together into a single unit is known as encapsulation. For example: capsule, it is wrapped with different medicines. A Java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here.
  • 19. Page 18Classification: Restricted 18 Encapsulation a.k.a. information hiding Objects encapsulate: property behavior as a collection of methods invoked by messages …state as a collection of instance variables Abstraction Focus on the essential Omits tremendous amount of details …Focus on what an object “is and does” What is Object-Orientation - Abstraction and Encapsulation
  • 20. Page 19Classification: Restricted What is Object-Orientation - Subclass vs. Superclass / Inheritance • Specialization: The act of defining one class as a refinement of another. • Subclass: A class defined in terms of a specialization of a superclass using inheritance. • Superclass: A class serving as a base for inheritance in a class hierarchy • Inheritance: Automatic duplication of superclass attribute and behavior definitions in subclass. multiple inheritance? Person name SSN Student std-id level Employee emp-id age
  • 21. Page 20Classification: Restricted What is Object-Orientation - Polymorphism Objects of different classes respond to the same message differently.
  • 22. Page 21Classification: Restricted Advantages of Object Oriented Approach • Realistic Modelling
  • 23. Page 22Classification: Restricted Advantages of Object Oriented Programing • Realistic Modelling Bike String color; String model; Integer speed; Accelerate() Decelerate() Break()
  • 24. Page 23Classification: Restricted Advantages of Object Oriented Approach • Code Reusability Contacts1: Tom Name: Tom Number : 456- 789-7895 Email :tom@gmail.com createContact updateContact deleteContact
  • 25. Page 24Classification: Restricted Advantages of Object Oriented Programing • Flexibility to change: WordAppV1 WordAppV2
  • 26. Page 25Classification: Restricted Advantages of Object Oriented • Modularity
  • 27. Java & JEE Training Object Oriented Analysis and Design
  • 28. Page 27Classification: Restricted Difference between Analysis and Design… • A basic system (or subsystem) SystemInput Output
  • 29. Page 28Classification: Restricted Difference between Analysis and Design… • Analysis • Design SystemInput ???? ????Input Output
  • 30. Page 29Classification: Restricted 29 What is OOAD? • Analysis — understanding, finding and describing concepts in the problem domain. • Design — understanding and defining software solution/objects that represent the analysis concepts and will eventually be implemented in code. • OOAD — Analysis is object-oriented and design is object-oriented. A software development approach that emphasizes a logical solution based on objects. Maintainability through Traceability!
  • 31. Page 30Classification: Restricted 30 Traceability => Maintainability Artificial problem Accidental design
  • 32. Page 31Classification: Restricted More later… • More practical examples of OOAD in later sessions… • Now let us start looking at Object Oriented Programming concepts using Java
  • 33. Java & JEE Training Object Oriented Programming with Java - Basic Class Demo
  • 34. Page 33Classification: Restricted Naming Conventions Name Convention class name should start with uppercase letter and be a noun e.g. String, Color, Button, System, Thread etc. interface name should start with uppercase letter and be an adjective e.g. Runnable, Remote, ActionListener etc. method name should start with lowercase letter and be a verb e.g. actionPerformed(), main(), print(), println() etc. variable name should start with lowercase letter e.g. firstName, orderNumber etc. package name should be in lowercase letter e.g. java, lang, sql, util etc. constants name should be in uppercase letter. e.g. RED, YELLOW, MAX_PRIORITY etc.
  • 35. Page 34Classification: Restricted Object and Class in Java - Demo A basic example of a class: class Student1{ int id;//data member (also instance variable) String name;//data member(also instance variable) public static void main(String args[]){ Student1 s1=new Student1();//creating an object of Student System.out.println(s1.id); System.out.println(s1.name); } }
  • 36. Page 35Classification: Restricted Another Example of Objects and Classes in Java class Student2{ int rollno; String name; void insertRecord(int r, String n){ //method rollno=r; name=n; } void displayInformation(){System.out.println(rollno+" "+name);}//method public static void main(String args[]){ Student2 s1=new Student2(); Student2 s2=new Student2(); s1.insertRecord(111,"Karan"); s2.insertRecord(222,"Aryan"); s1.displayInformation(); s2.displayInformation(); } }
  • 37. Page 36Classification: Restricted Topics to be covered in next session • Deep dive into coding OOP with Java… with practical examples. • How to create a class • How to create objects • How to create instance variables • How to create class variables • Constructors