KEMBAR78
OOP in Java | PPT
OOP in Java Introduction to the world of software engineering, object-oriented programming and Java Thomas Wiradikusuma [email_address] www.wiradikusuma.com Presentation to the 18 th  Java User Group Meet Up (JaMU), January 14, 2006
Agenda Quick tour on software engineering Object-oriented concept Introduction to Java OO approach in Java
Objective To attract newcomers into the field of programming and software development, practically using Java as their language of choice.
Programming Defined Algorithm and Program Programming language A short tour into Software Development Lifecycle (SDLC), from Waterfall to Iterative Development
Joys and Woes of Programming The joys The woes
Program Evolution Program Programming System Programming Product Programming Systems Product
Common Pitfalls Schedule slippage Project objectives slippage Unrealistic budget Lack of documentation Hard to extend
Essence of Modern Systems 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 Programming Essence: Abstraction Principals: Encapsulation Inheritance Polymorphism
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)
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
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
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
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
Introducing Java A little history Buzzwords: simple, object-oriented, robust, multithreaded, architecture-neutral, interpreted and high performance, distributed, dynamic Java platforms: JavaME, JavaSE, JavaEE
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
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) …

OOP in Java

  • 1.
    OOP in JavaIntroduction to the world of software engineering, object-oriented programming and Java Thomas Wiradikusuma [email_address] www.wiradikusuma.com Presentation to the 18 th Java User Group Meet Up (JaMU), January 14, 2006
  • 2.
    Agenda Quick touron software engineering Object-oriented concept Introduction to Java OO approach in Java
  • 3.
    Objective To attractnewcomers into the field of programming and software development, practically using Java as their language of choice.
  • 4.
    Programming Defined Algorithmand Program Programming language A short tour into Software Development Lifecycle (SDLC), from Waterfall to Iterative Development
  • 5.
    Joys and Woesof Programming The joys The woes
  • 6.
    Program Evolution ProgramProgramming System Programming Product Programming Systems Product
  • 7.
    Common Pitfalls Scheduleslippage Project objectives slippage Unrealistic budget Lack of documentation Hard to extend
  • 8.
    Essence of ModernSystems Complexity Conformity Changeability Invisibility
  • 9.
    Hope for SilverBullets High-level language advancements Object-oriented programming Graphical programming (diagramming) Incremental and iterative development Rapid prototyping Great designers …
  • 10.
    Object-oriented Programming Essence:Abstraction Principals: Encapsulation Inheritance Polymorphism
  • 11.
    Abstraction Humans managecomplexity 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)
  • 12.
    Encapsulation The mechanismthat 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
  • 13.
    Inheritance The processby 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
  • 14.
    Polymorphism Feature thatallows 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
  • 15.
    Benefits of OOApproach 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
  • 16.
    Introducing Java Alittle history Buzzwords: simple, object-oriented, robust, multithreaded, architecture-neutral, interpreted and high performance, distributed, dynamic Java platforms: JavaME, JavaSE, JavaEE
  • 17.
    Applied OOP inJava Class as the unit of work Everything but primitive types are objects Encapsulation, inheritance and polymorphism in action Interface Design patterns
  • 18.
    Being a ProgrammerRead 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) …