This course
note continues the development of
programming and problem-solving skills, focusing on object-oriented programming
and design (OOP/OOD), and improved programming practices. Topics include: an
introduction to the Java programming language, encapsulation and information
hiding, proper program and class design, inheritance, polymorphism, and
generics. Other topics may be added, time permitting.
Author(s): University of Maryland, Baltimore County
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.
Following
is an exploration of object-oriented program design with an emphasis on how to
make the transition from Scheme to Java. Covers: Java mechanics and data types;
static fields and the Singleton pattern; simple graph algorithms, object
oriented data structures-all in a very hands-on way. Discusses GUI programming,
graphical user interfaces, including design. This resource, therefore, presents
theoretical findings appropriately supported with practical examples that are
very crucial in the understanding of object-oriented design principles and their
application in Java; thus, it is suitable for learners seeking to upgrade their
programming skills and knowledge in design.