Object Oriented Programming by University of KwaZulu Natal
Object Oriented Programming by University of KwaZulu Natal
Object Oriented Programming by University of KwaZulu Natal
This
note explains the following topics: The Practice of Programming, Tools for
Working with Abstractions, Inheritance, Polymorphism, and Abstract Classes,
Interfaces, Nested Classes, and Other Details, Graphical User Interfaces in
JAVA, Generic Programming, Correctness and Robustness.
Carl Erickson's
note on Object-Oriented Programming introduces the OOP paradigm in detail. It
first gives an explanation of Motivation for Object-Oriented Programming and The
Object-Oriented Paradigm, including insights as to why OOP is effective. The
note discusses essential concepts of OOP: Abstraction, Identity, Encapsulation,
and Modularity, object-oriented messaging, and object-oriented hierarchy. It
also discussed naming conventions, object-oriented typing, and concurrency and
persistence. Other heads-up are on practical aspects of OOP: the Object-Oriented
Development Process and ObjectOriented Analysis Techniques. It also provides
tools for effective design through the use of UML notation, CRC cards, and
object-oriented class relationships. In simple terms, this can be a useful
resource to understand the theoretical and practical aspects of OOP regarding
its pitfalls and best practices.
This note provides a broad coverage of
object-oriented design and modeling, ranging from basic concepts of modeling to
class and state modeling techniques, from basic to advanced. Finally,
interaction modeling is dealt with-a very important aspect in the design and
analysis of interactions of a system. Other key areas of discussion are process
overview, system conception, domain analysis, application analysis, system
design, class design, and implementation modeling. Legal systems and design
patterns conclude most discussions in the document to give an all-rounded
outlook on OOD and its application in many contexts.