OOP _in_JAVA

OOP in Java

Introduction to the world of software engineering, objectbject– oriented programming and Java

Presentation to the 18th Java User Group Meet Up (JaMU), January 14, 2006

Thomas Wiradikusuma

thomas@wiradikusuma.com

Agenda

  • Quick tour on software engineeringing
  • Object-oriented concept
  • Introduction to Java
  • OO approach in Java

Objective

To attract newcomers into the field ofof programming and software development,ment, practically using Java as their languagege ofof choice.


Programming Defined

  • Algorithm and Program
  • Programming language
  • A short tour into Software Development Lifecycle (SDLC), fromfrom Waterfall to Iterative Developmentnt

Joys and Woes of Programminging

  • The joys
  • The woes

Program Evolution

Program                      Programmingming  Systemtem

Common Pitfalls

  • Schedule slippage
  • Project objectives slippage
  • Unrealistic budget
  • Lack of documentation
  • Hard to extend

Essence of Modern Systemss

  • Complexity
  • Conformity
  • Changeability
  • Invisibility

Hope for Silver Bullets

  • High-level language advancements
  • Object-oriented programming
  • Graphical programming (diagramming)
  • Incremental and iterative development
  • Rapid prototyping
  • Great designers

Object-oriented Programminging

  • Essence: Abstraction
  • Principals:
  • Encapsulation
  • Inheritance
  • Polymorphism

Abstraction

  • Humans manage complexity through abstractiontraction
  • For example, people do not think a car ass aa setset of tens of thousands of individual parts. TheyThey think of it as a well-defined object with itsts ownown unique behavior
  • A powerful way to manage abstraction is through the use of hierarchical classificationsions (layers)

Encapsulation

  • The mechanism that binds together code and thethe datadata itit manipulates
  • Protective wrapper that prevents the code and datadata from being misused outside the wrapper
  • Controlled through a well-defined interface
  • Allows migration of implementation without breakingreaking contract with users of that class
  • In Java, the basis of encapsulation is the class

Inheritance

  • The process by which one object acquiress thethe properties of another object
  • Supports the concept of hierarchical classification
  • Using inheritance, object needs only definene qualities that make it unique. General attributesributes are inherited from its parent
  • The concept of super class and sub class

Polymorphism

  • Feature that allows one interface to be usedsed forfor aa general class of actions. The specific actionon isis determined by the exact nature of the situationuation
  • One interface, multiple methods
  • Allows creation of clean, sensible, readablele andand resilient code

Benefits of OO Approachh

  • Objects are more “real-world”
  • Objects provide the flexibility and controll necessary to deal with evolving requirementsents
  • Object use facilitates collaboration
  • Objects help manage complexity
  • Reusability, maintainability and extensibilitylity

Introducing Java

  • A little history
  • Buzzwords: simple, object-oriented, robust,st, multithreaded, architecture-neutral, interpretedpreted and high performance, distributed, dynamicic
  • Java platforms: JavaME, JavaSE, JavaEE

Applied OOP in Java

  • Class as the unit of work
  • Everything but primitive types are objectsts
  • Encapsulation, inheritance and polymorphismhism inin action
  • Interface
  • Design patterns

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 (suchh asas Java User Groups)

Berikut video dan file yang bisa membantu materi :