Lesson: Object-Oriented Programming Concepts
If you've never used an object-oriented programming language before,
you'll need to learn a few basic concepts before
you can begin writing any code. This lesson will introduce you to objects,
classes, inheritance, interfaces, and packages.
Each discussion focuses on how these concepts relate to the real world,
while simultaneously providing an introduction to the syntax of the
Java programming language.
An object is a software bundle of related state and behavior.
Software objects are often used to model the real-world objects that you find in everyday life. This lesson explains how state and behavior are represented
within an object, introduces the concept of
data encapsulation, and explains the benefits of designing your software
in this manner.
A class is a blueprint or prototype from which objects are created.
This section defines a class
that models the state and behavior of a real-world object.
It intentionally focuses on the basics,
showing how even a simple class can cleanly model state and behavior.
Inheritance
provides a powerful and natural mechanism for organizing and structuring
your software. This section explains how classes inherit state and behavior from their superclasses, and explains how to derive one class from another using
the simple syntax provided by the Java programming language.
An interface is a contract between a class and the outside world.
When a class implements an interface,
it promises to provide the behavior published by that interface.
This section defines a simple interface and explains the necessary
changes for any class that implements it.
A package is a namespace for organizing classes
and interfaces in a logical manner. Placing your code into packages
makes large software projects easier to manage. This section
explains why this is useful, and introduces
you to the Application Programming Interface (API) provided
by the Java platform.
Use the questions and exercises presented in this section to test your
understanding of objects, classes, inheritance, interfaces, and packages.