Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 2 (more)

OOP in Java

From wiradikusuma, 8 months ago

727 views  |  0 comments  |  1 favorite  |  121 downloads
 

Categories

Add Category
 
 
 
 

Groups / Events

 
Embed
options

More Info

This slideshow is Public
Total Views: 727
on Slideshare: 727
from embeds: 0

Slideshow transcript

Slide 1: OOP in Java Introduction to the world of software engineering, object- oriented programming and Java Presentation to the 18th Java User Group Meet Up (JaMU), January 14, 2006 Thomas Wiradikusuma thomas@wiradikusuma.com www.wiradikusuma.com

Slide 2: Agenda  Quick tour on software engineering  Object-oriented concept  Introduction to Java  OO approach in Java

Slide 3: Objective To attract newcomers into the field of programming and software development, practically using Java as their language of choice.

Slide 4: Programming Defined  Algorithm and Program  Programming language  A short tour into Software Development Lifecycle (SDLC), from Waterfall to Iterative Development

Slide 5: Joys and Woes of Programming  The joys  The woes

Slide 6: Program Evolution Program Programming System Programming Programming Product Systems Product

Slide 7: Common Pitfalls  Schedule slippage  Project objectives slippage  Unrealistic budget  Lack of documentation  Hard to extend

Slide 8: Essence of Modern Systems  Complexity  Conformity  Changeability  Invisibility

Slide 9: Hope for Silver Bullets  High-level language advancements  Object-oriented programming  Graphical programming (diagramming)  Incremental and iterative development  Rapid prototyping  Great designers  …

Slide 10: Object-oriented Programming  Essence: Abstraction  Principals:  Encapsulation  Inheritance  Polymorphism

Slide 11: Abstraction  Humans manage complexity through abstraction  For example, people do not think a car as a set of tens of thousands of individual parts. They think of it as a well-defined object with its own unique behavior  A powerful way to manage abstraction is through the use of hierarchical classifications (layers)

Slide 12: Encapsulation  The mechanism that binds together code and the data it manipulates  Protective wrapper that prevents the code and data from being misused outside the wrapper  Controlled through a well-defined interface  Allows migration of implementation without breaking contract with users of that class  In Java, the basis of encapsulation is the class

Slide 13: Inheritance  The process by which one object acquires the properties of another object  Supports the concept of hierarchical classification  Using inheritance, object needs only define qualities that make it unique. General attributes are inherited from its parent  The concept of super class and sub class

Slide 14: Polymorphism  Feature that allows one interface to be used for a general class of actions. The specific action is determined by the exact nature of the situation  One interface, multiple methods  Allows creation of clean, sensible, readable and resilient code

Slide 15: Benefits of OO Approach  Objects are more “real-world”  Objects provide the flexibility and control necessary to deal with evolving requirements  Object use facilitates collaboration  Objects help manage complexity  Reusability, maintainability and extensibility

Slide 16: Introducing Java  A little history  Buzzwords: simple, object-oriented, robust, multithreaded, architecture-neutral, interpreted and high performance, distributed, dynamic  Java platforms: JavaME, JavaSE, JavaEE

Slide 17: Applied OOP in Java  Class as the unit of work  Everything but primitive types are objects  Encapsulation, inheritance and polymorphism in action  Interface  Design patterns

Slide 18: Being a Programmer  Read literatures  Exercise  Take course in computer science  Get involved in actual projects (start from something simple and advancing!)  Get involved in discussions/forums (such as Java User Groups)  …